Custodian for the assistants in your terminal
Claude Code, Codex CLI, GitHub Copilot CLI and Antigravity keep a log of each session on your computer. The Custodian connector reads those logs and sends what you wrote and what the assistant answered. Nothing else.
One command
Node.js 18 or newer must be installed; the coding tools need it too.
macOS and Linux
curl -LsSf https://custodian.health/install.sh | sh
Windows (Command Prompt or PowerShell, two commands)
curl.exe -LsSf https://custodian.health/install.mjs -o custodian-install.mjs
node custodian-install.mjs
On macOS and Linux the script downloads the program, checks its checksum against the one published on this site, and puts custodian on your path (~/.local/bin). It does not run anything else and sends nothing. Prefer to read it first? install.sh. On Windows a small Node.js script does the same (install.mjs): download, checksum, unpack into %USERPROFILE%\.custodian, and custodian on your path. No PowerShell script and no npm: Windows Defender flags the first, npm 12 refuses the second.
custodian login: sign in with your Custodian account. You need one first: the free trial or your organisation's setup page creates it.custodian on: your consent. From that moment, and not before, new turns can be sent, and they are sent once a day by themselves.custodian sendwhenever you do not want to wait;custodian queueto read what waits.
What leaves your computer, and what does not
A coding session holds far more than a conversation. Only the conversation is taken.
Sent
- The turns you typed to the assistant, after you switched capture on.
- The text of the assistant's replies.
- The time, the name of the tool, and an identifier of the session.
Never sent
- Commands run, their output, files read or written, diffs and code.
- Text you pasted into a prompt: it is replaced by the words "pasted text".
- The assistant's reasoning, its tool calls, and the transcripts of its sub-agents.
- The path of your project, your user name on the computer, anything else on disk.
Before it is sent
custodian queuelists what waits;custodian showprints the text of one session.custodian excludekeeps a session out for good;custodian offpauses, and nothing written while paused is ever sent.- On arrival, names, emails, phone numbers and similar details are replaced before storage, as for the browser extension.
Where each tool keeps its sessions
| Claude Code | ~/.claude/projects/, one file per session. Checked on version 2.1. |
| Copilot CLI | ~/.copilot/session-state/, one folder per session. Checked on version 1.0. |
| Codex CLI | ~/.codex/sessions/. Follows the published format; not yet checked on a machine with Codex installed. |
| Antigravity | ~/.gemini/antigravity-cli/. Only your own turns: the replies are stored in a format the connector cannot read yet. |
A note on the numbers. The model behind Custodian was measured on conversations with assistants, not on coding sessions. Until a sample of real sessions has been scored, the results for coding tools are shown with the same care as any other, but they carry no separate figure yet.
Everything the connector can do
| custodian login | Sign in. The password is never stored; a session token is, in a file only you can read. |
| custodian on / off | Switch capture on or off. On records your consent and the time, and sets the daily send. |
| custodian status | Account, capture, the tools found, what waits, the last send. |
| custodian queue | One line per session that has something to send. |
| custodian show <id> | The pending text of one session, to read before it goes. |
| custodian exclude <id> | Never send this session. include undoes it. |
| custodian send | Send now. |
| custodian schedule on / off | The daily send (launchd on macOS, a systemd timer on Linux, a scheduled task on Windows). on sets it; off leaves sending to you. |
| custodian update | Install the newest version in place. The daily send checks once a day and updates by itself. |
| custodian uninstall | Remove the schedule, the program and the settings. |
Ready to start?
Create your account on the setup page, then run the command above.