Skip to content

Install the CLI

The CLI is the bridge between your coding agent and your tenant. It installs hooks that fire automatically when Claude Code or Codex run, and it provides the commands you’ll use to recap, review, and evaluate sessions. This page walks through a fresh install.

Terminal window
npm install -g @kurrent/kapacitor

npm picks the right native binary for your platform automatically:

PlatformArchitectures
macOSARM64 (Apple Silicon)
Linuxx64, ARM64
Linux (Alpine / musl)x64, ARM64
Windowsx64

The binary is NativeAOT-compiled — fast startup, no .NET runtime needed.

Terminal window
kapacitor setup

You don’t need to know your tenant URL ahead of time. The wizard talks to Kurrent’s auth service, signs you into GitHub once, and discovers every tenant your GitHub identity has access to.

The flow you’ll actually see:

  1. GitHub login — your browser opens to GitHub OAuth. Approve the auth and come back to the terminal. Tokens land in ~/.config/kapacitor/tokens.json.
  2. Pick your tenant — the wizard prints the list of tenants you can sign into (one per GitHub org with a Kapacitor install). On a single-tenant team this is one-click; if you belong to multiple orgs you get a picker.
  3. Default visibilityprivate, org_public (default), or public. Changeable later via kapacitor config set default_visibility …. See Visibility & sharing for what each value means.
  4. Coding-agent hooks — the wizard detects Claude Code (claude) and Codex (codex) on your PATH and offers to install hooks for each. Pick yes for whichever you use.
  5. Daemon — names the daemon process used for hosted agents. Defaults to your OS username; accept the default unless you’ll run multiple daemons on the same machine.
Terminal window
kapacitor whoami # confirms you're logged in
kapacitor status # checks the server is reachable

If both succeed, you’re connected.

Codex requires you to explicitly trust every hook before it fires. After the wizard installs Codex hooks, open Codex and run:

/hooks

…then trust each kapacitor entry. Until you do, the hooks are installed but inert and no sessions will be captured.

Claude Code has no equivalent trust step — its hooks fire immediately.

The auto-discovery path is the right default for almost everyone. The two cases where you’d pass --server-url explicitly:

  • Non-interactive setup--no-prompt requires --server-url because there’s no terminal to show the picker on.
  • Multiple tenants per org, or off-discovery tenants — when discovery wouldn’t pick the right one and you want to point at a known URL.
Terminal window
kapacitor setup \
--server-url https://acme.kapacitor.ai \
--default-visibility org_public \
--no-prompt

In --no-prompt mode, hooks install for every detected agent by default. Opt out per agent:

Terminal window
kapacitor setup --server-url --no-prompt --skip-codex-hooks # Claude only
kapacitor setup --server-url --no-prompt --skip-claude-hooks # Codex only

If you join a new org or want to add a second tenant to your profiles after the initial setup:

Terminal window
kapacitor login --discover

This runs just the GitHub-login-plus-tenant-picker leg of the wizard. New tenants are added to your profile list; you can switch between them with kapacitor use <name>.

If you install a new agent later, or want hooks scoped to a single repo instead of user-wide:

Terminal window
kapacitor plugin install # Claude, user scope (default)
kapacitor plugin install --codex # Codex hooks + agent skills, user scope
kapacitor plugin install --skills # Agent skills only (~/.agents/skills/), no Codex hooks
kapacitor plugin install --project # Claude, current repo only
kapacitor plugin install --codex --project # Codex hooks in <repo>/.codex/hooks.json, skills user-wide

Use --skills if you want Cursor (or another agent that reads ~/.agents/skills/) to have the kapacitor skills without installing Codex hooks.

Project-scope installs write to <repo>/.claude/settings.local.json (Claude) or <repo>/.codex/hooks.json (Codex). The command must run from inside a git working tree.

You’re ready. Capture your first session in Your first session.