Data and privacy
co-maintainer runs on your machine or your own server. This page says exactly what it stores, where, and what leaves the machine.
What leaves your machine
| Surface | Sent to | What |
|---|---|---|
probe, init, sync |
GitHub | API reads through gh or a PAT |
init, sync, review |
Your AI provider (OpenRouter or Hetzner) | The prompts: sampled code, pull request text, diffs, and guides |
Remote review |
Your serve instance |
The git diff, plus codegraph tool requests and results |
| GitHub App review | GitHub | The review comment, the check run, and the inline comments |
Nothing is sent to the co-maintainer maintainers. There is no telemetry, no
analytics endpoint, and no call home. The only outbound hosts are the ones you
configured, plus the provider's price list when probe prices an estimate.
review --remote prints a one-time notice per host the first time it connects,
so it is clear where the diff is going.
What is stored, and where
Everything lives under the config and cache directories. Nothing is written into your git clone. Caching has the full layout and the OS paths.
| Item | Location | Contains secrets |
|---|---|---|
config.json |
Config directory | Yes. Tokens, PATs, App private key, webhook and OAuth secrets, a scrypt password hash. Plain text, chmod 0600 where supported |
repos/<slug>/ |
Config directory | No. The generated guides: SKILL.md, CODEBASE.md, review guides |
cache.db |
Cache directory | No. Evidence and AI job cache. It does hold sampled code and PR text from your repository |
app.db |
Cache directory | No. Server state: repos, jobs, reviews, token hashes, webhook dedup |
clones/, wt/ |
Cache directory | No. Disposable bare clones and per-PR worktrees on a serve host |
tools/ |
Cache directory | No. Pinned helper binaries such as codegraph |
Remote review tokens (cmr_) are stored as hashes in app.db, never in plain
text. The dashboard shows a new token once, at creation, and cannot show it
again.
Secret handling
config.jsonis the one file that holds plain-text secrets. On a shared or CI machine, prefer--env=PATHor command-line flags and keep the file out of version control. See Configuration: Secrets on disk.--github-app-private-key-pathstores only the path to the App key, so the secret stays on disk and never entersconfig.json. See Configuration: App private key.co-maintainer config listmasks secrets.config getprints the real value, so treat its output as a secret.- A review never prints a token. The CLI redacts known secret shapes from provider text before it is shown.
What a review sends to the model
The prompt contains the diff, the review guides, the codebase conventions, the
pull request title and body, and any existing review comments. It does not
contain your API keys, your config.json, or your GitHub credentials. Codegraph
results, when a tool is used, are added as text.
Deleting data
| Goal | Action |
|---|---|
| Remove generated guides | Delete repos/<slug>/ under the config directory |
| Remove the CLI evidence cache | Delete cache.db. Guides may remain |
| Wipe the server | Stop serve, back up, then remove app.db (destructive) |
| Stop all data at rest | Uninstall the package and remove the config and cache directories |
Back up app.db and config.json before a major upgrade. See
Dashboard: Updating.
Next: Cloud for running this on a shared host.