Skip to content
KurrentDB

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.

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:

DataDetail
PromptsFull text of every user message to the agent
ResponsesFull text of every agent reply
Tool calls and resultsCommands, file reads, and edits, including recorded inputs, outputs, timing, and diffs
Thinking blocksReasoning text exposed in the agent’s transcript, when available
Token countsInput, output, and cache usage where the agent records them
Subagent treesParent/child relationships and child transcripts for supported agent formats
Repository contextGit repo, branch, and PR linkage
CommitsSHA, 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.

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.