What CrewKit adds to Claude Code
Claude Code already runs on its own. CrewKit adds the parts a team needs around it: one set of agents, skills, commands and rules that every developer gets, conventions that travel with the project, and a dashboard where the sessions everyone ran are visible instead of scattered across laptops.
The Claude Code experience itself does not change. crewkit code launches the
native claude binary, which owns the terminal exactly as if you had run it
directly, while CrewKit loads beside it in the background to sync resources,
inject project context and collect telemetry.
Before you start
- Claude Code installed — the
claudecommand must be available. - Git — CrewKit detects your project from the git remote.
- Node.js 18+ if you install through npm.
Builds ship for macOS on Apple Silicon (arm64) and Linux on x64. Intel macOS builds are not available. On Windows, install the Linux build under WSL; WSL is also what enables background observation, which is Unix-only.
Install and connect
Install the CLI with Homebrew, npm or the install script — one of the three:
brew install karibew/tap/crewkit
npm install -g @crewkit/cli
curl -fsSL https://crewkit.io/install.sh | shThen verify the binary and sign in:
crewkit --version
crewkit auth logincrewkit auth login opens a browser for the device flow; you approve on the web
and the CLI picks up the token. From there, one command does the rest:
cd my-project
crewkitThat authenticates if needed, matches your git remote to a project, syncs your
team's resources into .claude/, and launches Claude Code. To pin the local
mapping or register the project explicitly, use crewkit init and
crewkit project create "My Project" --org acme.
Run a session
Bare crewkit is the same command as crewkit code, and every launch flag
works either way. crewkit sidecar is a second name for the same launch, and
its subcommands inspect the background observers:
crewkit code -c # continue the most recent session
crewkit code --resume # pick a session to resume
crewkit sidecar status # observers running for this directory
crewkit sidecar stop --all # stop every observer for this directory
crewkit status # setup overview: auth, project, sync state
crewkit tui # the same session with CrewKit's live sidebarcrewkit status and crewkit sidecar status answer different questions: the
first is the setup overview, the second lists this directory's observers. If the
observer cannot be set up, the launch fails with the reason rather than starting
an unobserved session — crewkit tui is the way to ask for the wrapped terminal
interface instead.
What gets synced
Agents, skills, commands and rules are fetched as effective content — the
API merges the platform, organization and project tiers server-side and the CLI
writes the result to .claude/agents/, .claude/skills/, .claude/commands/
and .claude/rules/. Inherited resources concatenate: the platform base, then
your organization's additions, then the project's. Every save creates an
immutable version with a SHA-256 hash, so a resource can be rolled back.
CrewKit will not quietly overwrite your edits. Files are checksummed; when a
file has changed locally and the server has a newer version, your copy is backed
up to .claude/.backups/ and the synced version is written alongside it.
CLAUDE.md is the exception worth knowing, in both directions. Your
project-root CLAUDE.md is never touched. .claude/CLAUDE.md is created and
maintained by CrewKit: it appends a reference to .claude/playbooks.md when
playbook conventions sync, and a Verification Requirements block alongside
.claude/verification.md — which it removes again, with its reference, once the
project has no verification requirements. Neither block is a synced resource.
See Inheritance and Agents.
What gets observed
CrewKit registers itself as a hook handler when it launches Claude Code, and
handles 12 event types — 10 standard Claude Code hooks plus SubagentStart and
SubagentStop. Events are batched and sent to the API. When a subagent task
finishes, CrewKit extracts its agent type, duration, tokens, model, turns and
tool usage from the JSONL transcript, which is what the per-agent analytics are
built on. Each task is tied to the resource version hash it ran under, so
the dashboard can compare two versions of an agent side by side — scores,
duration and cost per version, with a significance test and an upgrade or
rollback recommendation.
After a session ends, the analysis pipeline produces a summary and coaching tips, and the dashboard rolls up sessions, cost, tokens and duration. How much is captured is your organization's choice: capture mode is full, metadata only (event types and timing, no content) or disabled. Events are sanitized before they leave the machine either way.
What this does not do yet
- No native Windows build. Native Windows builds are paused: the Chocolatey package is frozen at 0.4.1 and npm no longer ships a Windows binary. WSL is the supported path, and background observation is Unix-only.
- No Intel macOS build. Apple Silicon only on macOS today.
- Convention handler dispatch is still rolling out. Hooks can detect a convention violation and log a challenge, but that dispatch is progressive rather than complete.
- Real-time telemetry needs the network. On a network failure CrewKit degrades gracefully — Claude Code still runs, the session is just not tracked.
For the MCP tools that come with every session, see the CrewKit MCP server.