Skip to main content
Session capture streams your coding-agent sessions into the team knowledgebase, so the reasoning behind a run is searchable next to the run itself. It is the one feature that moves your own words off your machine, so this page is explicit about it. Claude Code, Codex, pi and Kimi Code sessions are captured live on this device by the capture plugin. Capy keeps no transcript on your computer, so its threads are captured another way: see Capy threads.

What is sent

Sent

  • Your prompts, and the images you paste into them
  • The assistant’s replies
  • The shell commands you run

Not sent

  • File contents
  • Tool output
Captured sessions are visible to your whole team. Images you paste upload unscanned: a screenshot that shows a credential is uploaded with it. Turn that off in the wizard’s Settings → Upload images you paste. Where the Probe daemon records, it can also have Claude Code and Codex write reasoning summaries for it. Those show in your terminal and upload with the session. The wizard’s Daemon sees the agent’s reasoning row turns them on or off.
Credential-shaped values are replaced before upload — but that is a filter, not a guarantee. Keep live credentials out of your prompts. A secret pasted into a conversation is a secret you should rotate, whether or not the filter caught it.
Capture is per-device, and it is disclosed twice before it starts: once on the wizard’s review screen, and again at the browser approval. Provisioning a fleet from one image does not share a pairing — each machine authorizes itself.

Turning it off

The wizard installs Probe whole and removes it whole, so its Settings screen has no capture row. Uninstall Probe stops capture along with everything else. To turn capture off and keep the rest, use the command.

The killswitch

Turning capture off writes a killswitch alongside clearing the credential. It is what guarantees a daemon that is already running stops, independent of whether the teardown of the credential file succeeded. A device in that state reports off (killswitch set) in the wizard summary and in probe doctor. The wizard will not silently override it.

Three places a credential can come from

This is why “capture is off” needs checking rather than assuming. The wizard names an environment credential when it sees one, because clearing only the file would let capture resume at the next session start while the menu reported it as off.

Verifying it is really running

The response includes a capture block with the daemon’s state and reason — so “tracking is on” and “a daemon is actually capturing” can be told apart.
Working MCP tools do not prove capture is running. On pi in particular, a settings file can carry the package without its extensions: skills and the MCP manifest load, the capture entrypoint does not, and tracking reads as on while no daemon ever spawns. probe doctor names that state explicitly.Worktrees are another case — a worktree misses the project-local settings that re-enable capture, and that re-enable is trust-gated per path.

Capy threads

Capy runs its agent loop on Capy’s servers, so no transcript is written on your machine and no plugin captures it, even for a thread on This Mac. Instead, your computer reads your threads through Capy’s API, with your own Capy API key, and uploads each one as a session. The installer connects it when you pick Capy (or run probe capy connect); setup is on the Capy page.

Sent

  • Your prompts
  • The agent’s replies
  • A one-line summary per tool call
  • Attachment names

Not sent

  • Tool output
  • File contents and diffs
  • The model’s reasoning
  • Only threads you start, in the Capy projects you choose. A Capy key can read your teammates’ threads too, and capturing those would need their consent. Messages a teammate adds to one of your threads are part of it, and are captured.
  • Every 10 minutes, from a timer that connect installs: a systemd user timer on Linux, a launchd agent on macOS. Anywhere else it prints a crontab line for you to add. A computer that was off loses nothing: the next sync catches up. On Linux, user timers stop when you log out unless lingering is on (loginctl enable-linger), and connect tells you when it is off.
  • One thread is one session. Each subagent is a session of its own, linked to its thread. A thread is finished after a day with no new messages, or when you archive it. A new message reopens it.
Sessions already uploaded stay in Probe after disconnect. Signing out or uninstalling Probe disconnects Capy too. The timer, the key, the sync record and the capture credential all go, so nothing keeps uploading after you sign out. The killswitch works here as well: a .disabled file in Capy’s capture folder stops every sync before it reads anything, until probe capy connect runs again. The wizard shows that state as capture off (killswitch set).

What happens to captured sessions

They become documents in the team knowledgebase, searchable by meaning alongside runs, notes and papers, and readable as entities through the MCP transcript view. In the dashboard a session has its own page with its transcript and digest, and can be attributed to a run — which is what keeps “why was this launched” answerable months later. A Claude Code session is named by the title Claude Code gave it (the terminal tab’s title; a /rename wins), from capture tap 0.9.20. A session with no title yet, or from another agent, is named by its agent and start time. Each agent’s sessions carry their own document-type prefix (claude_code.*, codex.*, pi.*), and the bare token session spans all three.

Importing history instead

Capture is live. To bring in transcripts you already have:
See Import research work.

Removing captured data

Uninstalling a client does not delete anything already sent. Deletion is a dashboard and API operation against the stored documents, not a client-side one.