Docs navigation
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

Ten harnesses are supported. The first three take every component type the CLI syncs; the other seven take skills, instructions and files only.

HarnessComponent types
claude-code (Claude Code)skills, mcps, agents, commands, playbooks, instructions, files
codex (Codex)skills, mcps, commands, playbooks, instructions, files
kafka (Kafka)skills, mcps, agents, commands, playbooks, instructions, files
qwen-code (Qwen Code)skills, instructions, files
opencode (OpenCode)skills, instructions, files
openclaw (OpenClaw)skills, instructions, files
cursor (Cursor)skills, instructions, files
factory (Factory Droid)skills (inlined into AGENTS.md), instructions, files
qoder (Qoder)skills, instructions, files
pi (Pi)skills, instructions, files

For the seven newer harnesses the CLI writes no MCP config, commands, sub-agents or playbooks; a component of those types is skipped when it is installed into one of them.

Where each component lands

ComponentClaude CodeCodexKafka
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
InstructionBlock in CLAUDE.mdBlock in AGENTS.mdBlock in KAFKA.md
FileArbitrary copy to a target pathSameSame

The newer harnesses, project scope first and global scope second. Each global root can be moved with the environment variable in the last column.

HarnessSkillInstructionsGlobal root
qwen-code.qwen/skills/<slug>/ · ~/.qwen/skills/<slug>/Block in QWEN.md · ~/.qwen/QWEN.mdQWEN_HOME
opencode.opencode/skills/<slug>/ · ~/.opencode/skills/<slug>/Block in AGENTS.md · ~/.opencode/AGENTS.mdOPENCODE_HOME
openclawskills/<slug>/ at the folder root · ~/.openclaw/skills/<slug>/Block in AGENTS.md · ~/.openclaw/AGENTS.mdOPENCLAW_HOME
cursor.cursor/rules/<slug>.mdc · ~/.cursor/rules/<slug>.mdcBlock in AGENTS.md · ~/.cursor/AGENTS.mdCURSOR_HOME
factoryInlined as a block in the instructions fileBlock in AGENTS.md · ~/.factory/AGENTS.mdFACTORY_HOME
qoder.qoder/skills/<slug>/ · ~/.qoder/skills/<slug>/Block in AGENTS.md · ~/.qoder/AGENTS.mdQODER_HOME
pi.pi/skills/<slug>/ · ~/.pi/agent/skills/<slug>/Block in AGENTS.md · ~/.pi/agent/AGENTS.mdPI_CODING_AGENT_DIR
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>. Conversation tracking is available for claude-code and codex only.