Harness adapters
Apothem harness adapters — one shared profile, seventeen supported targets.
Apothem ships seventeen built-in harness adapters. Each adapter translates the same shared cohorts into platform-native files where the platform supports them and Apothem-owned support trees where it does not.
Supported harnesses
The supported registry contains exactly seventeen adapters. Use these exact
install names with --harness, or use all for the deterministic registry
set:
antigravity
claude-code
codebuddy
codex
cursor
gemini-cli
github-copilot
glm
hermes
kimi-code
kiro
open-claw
opencode
qwen-code
trae
windsurf
zedThe detailed registry matrix, target paths, capability states, MCP support, and convention-pin evidence live in the technical registry reference.
Install multiple harnesses
Install one harness, or use all to select the registry in deterministic
order. Project-scope harnesses require --project PATH; that includes all
because the registry includes both user-scope and project-scope targets.
apothem install --harness claude-code
apothem install --harness cursor --project /path/to/project
apothem install --harness gemini-cli --project /path/to/project
apothem install --harness all --project /path/to/projectVerify your installs
Verify each harness adapter individually, or call apothem doctor for a
per-adapter install-status summary across every registered adapter:
apothem verify --harness claude-code
apothem verify --harness all --project /path/to/project
apothem doctorHow adapters work
Each adapter implements the HarnessAdapter protocol registered via
setuptools entry-points. On install, the CLI loads and validates the shared
YAML profile, resolves the adapter through the registry, validates the
materialization plan, and writes the platform-native config to the harness's
native user or project location. On update, it re-derives from the current
profile state.
profile.yaml + packaged cohorts
identity / preferences / rules
commands / skills / delegated definitions / hooks / templates
|
+-- antigravity --> ~/.gemini/GEMINI.md + ~/.gemini/antigravity-cli/plugins/apothem/
+-- claude-code --> ~/.claude/ native folders + ~/.claude/.apothem/support/
+-- codex --> ~/.codex/ + ~/.agents/skills/ + ~/.config/apothem/{rules,templates}/
+-- cursor --> <project>/.cursor/rules/*.mdc + <project>/.cursor/agents/ + ~/.agents/skills/ + ~/.config/apothem/{rules,templates}/
+-- gemini-cli --> <project>/GEMINI.md + <project>/.gemini/
+-- github-copilot --> <project>/.github/copilot-instructions.md + <project>/.github/agents/ + ~/.agents/skills/ + ~/.config/apothem/{rules,templates}/
+-- windsurf --> <project>/.devin/rules/ + <project>/.devin/agents/ + ~/.agents/skills/ + ~/.config/apothem/{rules,templates}/
+-- ...Skills in your user home
Seven project-scope adapters write one rules file into your project (six of them also write Apothem's helpers there as subagent files; each harness page names the folder), and they also write Apothem's skills, and the rules and templates the skills cite, to folders in your user home:
cursor, github-copilot, windsurf, zed -> ~/.agents/skills/ (codex writes it too)
codebuddy -> ~/.codebuddy/skills/
kiro -> ~/.kiro/skills/
trae -> ~/.trae/skills/
all seven -> ~/.config/apothem/rules/ and templates/ (codex uses them too)- Every install that names a folder writes the same files, so the order you install in does not matter, and one copy serves every project.
- An install writes the home folders first. If that fails, it stops before it changes the project, and it adds no skill or rule file to your repository.
- An uninstall removes a shared folder only when no other Apothem install still uses it, and says which install keeps it.
- A skill folder with an Apothem skill's name that Apothem did not write is left alone, with a warning.
Each harness page lists its folders. The harness registry shows which tools share which folder.
See Harness adapter abstraction for the protocol specification.