docs · reference

Configuration#

bite keeps its configuration in one file, ~/Library/Application Support/bite/config.toml, created on first run. Every key is optional; bite works with an empty file. Read and write it with bite config (bite config get <key>, bite config set <key> <value>), or edit the file — it is read once per process at startup.

Keys#

KeyTypeDefaultWhat it does
default_calendarstring—Calendar id or name used when a create omits calendar_id.
default_mail_accountstring—Account name used when a mail tool omits account.
timeout_secsinteger300Per-request bridge timeout, in seconds — how long one Apple Event call may take before the helper is recycled.
release_repostringthe GitHub repoWhere release artifacts come from (used by the planned prebuilt-helper channel).
auto_refresh_hoursinteger24Entity-index auto-refresh threshold: how stale the index may get before a crawl is respawned.

Environment#

VariableOverrides
BITE_TIMEOUT_SECStimeout_secs — wins over the config file. Useful for a slow Mail setup or a one-off long bulk operation.

What's where#

Everything bite stores lives under one directory, ~/Library/Application Support/bite, enforced to 0700 (files 0600) at every startup:

PathContents
config.tomlthe configuration above
bin/bite-helperthe native Swift helper, at a stable path so macOS permission grants survive refreshes
bin/bite-crawlthe detached Mail crawl worker
index.lance/the LanceDB entity index
batches/staged crawl batches, ingested then deleted
batches/quarantine/unparseable batches, capped at 200 files
crawl-state.json, crawl.pidcrawl progress and worker pid
purge-scopes.jsondurable index_forget tombstones

Deleting the directory is the complete uninstall — nothing else on the system references it.

The CLI flags every command takes#

FlagEffect
--jsoncompact machine-readable JSON instead of the pretty default
--force-liveaccept slow live Apple Events queries even while Mail indexing runs, instead of the deferred feedback