What kcap installs on your machine
The CLI’s own state
Section titled “The CLI’s own state”| What | Where |
|---|---|
| Profiles and configuration | ~/.config/kcap/config.json (or $KCAP_CONFIG_DIR/config.json) |
| Sign-in tokens, per profile | ~/.config/kcap/tokens/ |
| Watcher state (pid, heartbeat, markers) | ~/.config/kcap/watchers/ |
| Daemon state and logs | ~/.config/kcap/daemon/, daemon.log, daemon-<name>.log |
| Import run logs | ~/.config/kcap/import-<run>.log |
| Local edition | ~/.config/kcap/local/ (or $KCAP_LOCAL_ROOT) |
| Script-install versions | versions/<version>/ beside a current link |
Per agent
Section titled “Per agent”| Agent | Capture | MCP registration | Skills | Steering file |
|---|---|---|---|---|
| Claude Code | plugin registration in ~/.claude/settings.json; hooks, MCP and skills come from the plugin bundle; ~/.claude/.kcap-plugin-version | plugin .mcp.json | plugin bundle | — |
| Codex | ~/.codex/hooks.json | ~/.codex/config.toml (plus sandbox network access) | ~/.agents/skills/ | — |
| Cursor | ~/.cursor/hooks.json | ~/.cursor/mcp.json | ~/.agents/skills/ | — |
| Copilot CLI | ~/.copilot/hooks/kcap.json | ~/.copilot/mcp-config.json | ~/.agents/skills/ | ~/.copilot/copilot-instructions.md |
| Gemini CLI | hooks block in ~/.gemini/settings.json | ~/.gemini/settings.json | ~/.gemini/skills/ | ~/.gemini/GEMINI.md |
| Kiro | cloned default agent ~/.kiro/agents/kcap.json; with Crew, ~/.kiro/hooks/kcap-spawn.sh | ~/.kiro/settings/mcp.json | ~/.kiro/skills/, ~/.kiro/crew/skills | — |
| Pi | extension ~/.pi/agent/extensions/kcap.ts | the same extension (bridge) | ~/.agents/skills/ | ~/.pi/agent/AGENTS.md |
| OpenCode | plugin ~/.config/opencode/plugins/kcap.ts | ~/.config/opencode/opencode.json | ~/.agents/skills/ | ~/.config/opencode/AGENTS.md |
| Antigravity | plugin dir ~/.gemini/config/plugins/kcap/ | ~/.gemini/config/mcp_config.json | ~/.gemini/skills/ | ~/.gemini/GEMINI.md (shared) |
| Muse Code | hooks in ~/.config/muse/settings.json | mcp_servers in the same file | ~/.agents/skills/ | — |
| Grok Build | ~/.grok/hooks/kcap.json | — | ~/.agents/skills/ | — |
| Mistral Vibe | ~/.vibe/hooks.toml | ~/.vibe/config.toml | ~/.agents/skills/ | — |
Project-scoped installs write <repo>/.claude/settings.local.json or <repo>/.codex/hooks.json instead. Steering blocks sit between <!-- BEGIN kcap --> and <!-- END kcap -->. kcap never edits CLAUDE.md except through kcap curate apply, and never writes to an agent’s transcript files
The git hook
Section titled “The git hook”Installing any agent’s hooks adds a config-based hook named kcap on post-commit and post-merge to ~/.gitconfig (git 2.54 or later; older git ignores it). After each commit, kcap git-hook finds the coding agent process above the commit and files the commit (SHA, repository, branch, redacted message) under that agent’s session; your own terminal commits are not stored. It contacts no server, prints nothing and always exits 0, and runs beside core.hooksPath, husky or pre-commit hooks
git hook list post-commit # shows kcap when installedgit config --global hook.kcap.enabled false # turn it offWithout the hook, commits are read from the agent’s shell commands, as they always are for Cursor, OpenCode and Antigravity. Updates repoint the hook but do not add it; kcap uninstall removes it
Background processes
Section titled “Background processes”The watcher follows a live session’s transcript and exits when the session or its agent ends. The daemon runs only if you start it or install it as a service. Each kcap mcp server runs as a child of the agent for the session. Hook processes and kcap git-hook run for moments; Claude Code’s session end spawns a short detached helper so final capture is not cut off by the hook timeout
kcap uninstall removes everything in the tables above. It does not remove the kcap program itself: npm uninstall -g @kurrent/kcap does that for an npm install, and for a script install delete ~/.local/share/kcap and the ~/.local/bin/kcap link