docs · internals
Security & Privacy#
bite is a local-only tool. This page is the short form of the privacy statement and the security policy in the repository; those are the full words.
What bite can access#
When you grant the corresponding macOS permissions, bite can read and modify, on the machine you run it on:
- Calendar — events in your calendars (EventKit)
- Reminders — your reminder lists and items (EventKit)
- Mail — messages, mailboxes and attachments of accounts configured in Apple Mail (Apple Events — ScriptingBridge in the helper, NSAppleScript in the local crawl worker)
- Notes — your notes in Apple Notes (Apple Events / ScriptingBridge)
- Contacts — your address book (Contacts framework)
- Messages — sending iMessage/SMS via Apple Messages, recent chats, and — only with Full Disk Access — your chat history database (
~/Library/Messages/chat.db)
The prompt matrix behind each grant is on the permissions page.
Where the data goes#
Nowhere. bite has no server, no account system, no analytics, no telemetry, and no crash reporting. All processing happens in three local processes on your machine (bite, its Swift helper, and the detached bite-crawl worker) and stays in bite's 0700 data dir — the one exception being attachments you explicitly save elsewhere via mail_attachment_save. The only network activity in the entire project is the optional, explicit bite install-helper --prebuilt download (roadmap), which fetches a signed helper binary and involves none of your data.
One caveat you control: bite is an agent tool. Whatever AI agent you connect it to (Claude, Codex, ZCode, OpenCode, …) can read the tool results — so the agent's own privacy policy and data handling apply to anything it does with your data. bite itself adds no network hop; choose agents you trust.
Your control#
- Every permission is granted through macOS's own TCC prompts and can be reviewed or revoked at any time in System Settings → Privacy & Security. Revoking takes effect immediately.
bite doctor's status checks show, without triggering any prompt, which permissions are granted, pending, or denied.- Destructive operations always return a preview first and require an explicit
confirm: true. - The local index, and how to purge it. The LanceDB entity index holds full-text copies of indexed Calendar, Reminders, Mail, Notes, Contacts and Messages data for fast local search.
index_forgetdrops a scope after a preview;bite index wiperemoves the entire index. Both act on the LOCAL copy only, and a scoped purge is durable across re-crawls — the details. Body-off rebuilds (--no-body) keep message bodies out of the store entirely.
Reporting a vulnerability#
Please do not open a public issue for a security problem. Use GitHub's private vulnerability reporting, or contact a maintainer directly if that is unavailable. You will get an acknowledgement within a few days and a fix timeline for confirmed issues.
The security-relevant surface:
- The local bridge protocol between
biteand its Swift helper over stdio — e.g. anything that would let another local process impersonate or hijack the helper. - Permission boundaries — anything that lets bite access data without the corresponding macOS TCC grant, or act destructively without the
confirm: truehandshake. - Injection through agent input — bite deliberately runs no shell and no dynamic code (the crawl worker's compiled AppleScript is a fixed program with data parameters, not agent-controlled source); report anything that changes that.
- The toolchain invocation path —
swiftandcodesignare resolved through secure-path rules; report anything that lets an untrustedswift/codesign/xcrunproduce or sign the installed helper. - The config writers — they edit other applications' MCP config files; report anything that could corrupt or clobber unrelated settings.
Out of scope: vulnerabilities in the macOS permission system itself, in the AI agents bite connects to, or social-engineering of the user into granting permissions. Security fixes land on main; given the pre-1.0 stage, only the latest release receives fixes.
Intended use#
bite is designed to operate on the data of the person running it, on their own machine, with their knowledge. It is not designed for monitoring another person, a device you do not own, or anyone without their consent — such use is unlawful in most jurisdictions and outside the purpose of this project.