Core Concepts
Harnesses
A harness is the coding agent the CLI installs into. Each component type lands in the place that harness already reads from at runtime — the CLI never imposes its own layout. The CLI auto-detects the harness in the current folder; override it with --harness <id>.
Supported harnesses
| Harness | Component types |
|---|---|
claude-code | skills, mcps, agents, commands, playbooks, instructions, files |
codex | skills, mcps, commands, playbooks, instructions, files |
kafka | skills, mcps, agents, commands, playbooks, instructions, files |
Where each component lands
| Component | Claude Code | Codex | Kafka |
|---|---|---|---|
| Skill | .claude/skills/<slug>/ | ~/.codex/skills/<slug>/ or .agents/skills/<slug>/ | .kafka/skills/<slug>/ |
| MCP server | .mcp.json (project) / ~/.claude.json → mcpServers (global) | ~/.codex/config.toml [mcp_servers.<slug>] | .kafka/kafka.json |
| Command | .claude/commands/<slug>.md | ~/.codex/prompts/<slug>.md | .kafka/commands/<slug>.md |
| Sub-agent | .claude/agents/<slug>.md | — | .kafka/agents/<slug>.md |
| Playbook | .claude/playbooks/<slug>.md + table in CLAUDE.md | .codex/playbooks/<slug>.md + table in AGENTS.md | .kafka/playbooks/<slug>.md + table in KAFKA.md |
| Instruction | Block in CLAUDE.md | Block in AGENTS.md | Block in KAFKA.md |
| File | Arbitrary copy to a target path | Same | Same |
Marker-based instruction blocks
Instruction and playbook blocks are bracketed by
<!-- brainbase:start … --> / :end markers in the harness's instructions file, and the playbook table is regenerated on every pull — so removed playbooks drop out automatically and your hand-written prose is never clobbered.Force a harness or install scope for onboard / sync with --harness <id> and --scope <global|project>.