Your sessions
Your rules

Choose what gets recorded, who can see it and where it lives

Record by choice

Enable recording per coding agent. Exclude projects you don’t want captured, or switch recording off.

Redact before upload

Known credential patterns are removed on your machine. Redaction is a safety net; exclude sensitive projects.

Inspect the client

The code that runs on your machine is public. See how it works on GitHub.

Every session
has an audience

Keep it private, share it with a project or organization, or choose specific teams and people

Your access follows you
Search and agent recall are limited to sessions you can open
Set the detail level
Choose how much of the conversation others can read
Choose your default
Set new sessions to start private in your profile
VisibilityShared with people & teams

Know what
you’re recording

kcap records agent activity, rather than scanning your repository. Files an agent reads or changes can appear in the recording.

Prompts and replies
The conversation between you and your agent
Tool calls and results
Commands, file contents, edits, output and timing
Reasoning
Reasoning text exposed by the agent
Token usage
Input, output and cache counts reported per turn
Subagents
Linked activity and usage from supported child agents
Repository context
The repository, branch and linked pull request

Available fields depend on the agent and what it reports

Turn 2 of 4 · 16:04
FullSummary
USER 16:04:18

Reproduce it locally first — run the suite in a loop.

CLAUDE 16:04:22

I'll run the refresh test 50 times to get a failure rate before touching anything, then read TokenCache to see how it decides a token is still valid.

Worked for 3m 41s· 4 calls · 1 agent● 1 error
Run the refresh test 50×vitest run token-cache.test.ts
$ for i in $(seq 50); do pnpm vitest run test/auth/token-cache.test.ts --reporter=dot; done
…
FAIL  test/auth/token-cache.test.ts > refreshes before expiry
  AssertionError: expected 401 to be 200
   ❯ test/auth/token-cache.test.ts:88:31

Runs: 50   Passed: 43   Failed: 7
… 38 more lines
Read 142 linessrc/auth/token-cache.ts
Read 61 linessrc/auth/refresh.ts
GrepDate.now\(\)4 matches
ExploreFind every caller of TokenCacheDone18 calls · 2m 04s
CLAUDE 16:08:03

7 of 50 runs fail. The cause is in the TTL, not the test:

  • TokenCache sets its TTL straight from expires_in, ignoring the 30s refresh skew.
  • refresh() reads Date.now() directly, so jest.useFakeTimers never controls it — mocking the clock can't make this deterministic.

Proposed fix: inject a Clock into TokenCache and derive the TTL as expires_in − skew. The public API stays the same. Shall I go ahead?

Worked for 1m 12s· 2 calls
6 tool calls· 9m 32s ·41k → 7.2k · Cache r612k w48k·≈ $0.61·1 error

Your data
has a home

Start locally, or bring your team into a hosted workspace

Local stays on your machine
Your local session record is stored on your machine. Model-powered features use the provider you configure.
Hosted in the EU
Hosted workspaces use an isolated workspace for your organization, with encryption in transit. Sign-in uses WorkOS in the US.
Enterprise identity
SSO and directory integration are available with Enterprise
No training on your sessions
We don’t use your session data to train models or sell it. Service providers are listed in our privacy policy.

Before you share the work

Could a recording contain source code?

Yes. Files your agent reads or changes can be part of its recorded tool activity. Exclude a project if that content should not be captured.

Does redaction catch every secret?

No. Redaction matches known credential patterns before upload. Unrecognized formats and sensitive prose can remain. Exclude sensitive projects rather than relying on redaction alone.

Who can see a new session?

Organization sessions are visible to your organization by default unless you choose a private default in your profile. You can change a session’s audience to a project, team, named people or just yourself.

Can I delete a session?

You can delete your sessions from kcap. For retention requirements or deployment-specific policies, talk to the team.

Questions about security?

Talk through your team’s requirements with us

Talk to the team