What kcap captures
kcap is a session recorder. If you’re evaluating kcap for a codebase where confidentiality matters, read this page first — and know that everything here is under your control before a team-wide rollout.
Click here for more about the system architecture. For every piece kcap setup installs into your agent — MCP servers, skills, injected context — see The installed harness.
What’s captured
Section titled “What’s captured”When a session is captured, kcap sends the transcript and supported lifecycle events to your server. The available detail depends on what the agent writes:
| Data | Detail |
|---|---|
| Prompts | Full text of every user message to the agent |
| Responses | Full text of every agent reply |
| Tool calls and results | Commands, file reads, and edits, including recorded inputs, outputs, timing, and diffs |
| Thinking blocks | Reasoning text exposed in the agent’s transcript, when available |
| Token counts | Input, output, and cache usage where the agent records them |
| Subagent trees | Parent/child relationships and child transcripts for supported agent formats |
| Repository context | Git repo, branch, and PR linkage |
| Commits | SHA, repository, branch, and message of each commit or merge the agent makes, from the git hook or the agent’s shell commands |
Treat the transcript as sensitive by default: if a prompt or a command’s output contains a secret or a proprietary discussion, that content is part of the transcript and will be stored on your kcap server.
- Source code in context. Recording does not upload your repository wholesale. File contents and diffs included in prompts or tool results are part of the transcript. Other features can deliberately send additional context: declaring a plan document, for example, records its content up to 256 KB along with its path and hash.
- Capture scope. Sessions outside configured allow lists or inside exclusions are skipped by live capture and imports. These rules do not delete recordings already stored.
- Secret handling. Capture has redaction for recognized secret patterns, but it cannot identify every sensitive value or discussion. Choose the capture scope and visibility appropriate for the transcript. Commit messages from the git hook are redacted the same way.
- Record size. Each transcript record is kept up to 4 MiB. A record that cannot be processed safely is replaced by a capture-loss marker, and the session shows a warning; see Repair a session with missing records.
- Commits. The git hook runs on every commit on the machine, but files a commit only when a coding agent’s session made it. Your own terminal commits are not recorded.
The controls
Section titled “The controls”Two kinds of control apply, and they’re worth knowing before a team-wide rollout:
- What is captured — allow lists and exclusions, configured in the CLI configuration.
- Who can see it — per-session visibility, hiding, and deletion, covered in Visibility & sharing.
For how capture works mechanically — hooks, the watcher, and the event store — see System architecture.
