Skip to content

Tool Adapters

Underneath it all, the workflow is just plain markdown any capable agent can read. An adapter is nothing more than the directory a given tool happens to look in.

Tool Adapter Invocation
Claude Code .claude/skills/ /feature, /implement, …
Codex .agents/skills/ $feature, $implement, …
GitHub Copilot AGENTS.md + .agents/skills/ Ask it to run the matching skill
OpenCode AGENTS.md + a compatible tree Ask it to run the matching skill
Anything else AGENTS.md + readable skill files Ask it to follow the matching SKILL.md

Codex, Copilot, and OpenCode are all fine sharing a single .agents/ tree. OpenCode will just as happily reuse .claude/ if Claude Code is also selected — which is exactly why the installer never writes a third, separate copy under .opencode/skills/.

At install time, either interactively or with a flag:

Terminal window
npx create-syntaxis@latest -- --claude --codex
npx create-syntaxis@latest -- --all

Adding one afterward:

Terminal window
npx create-syntaxis@latest update -- --codex

Delete the directory and you’re done:

  • Only using Codex, Copilot, or OpenCode: delete CLAUDE.md and .claude/.
  • Only using Claude Code: delete .agents/, but leave AGENTS.md aloneCLAUDE.md imports it.

.agents/skills/<skill>/SKILL.md and .claude/skills/<skill>/SKILL.md match byte for byte except for a single frontmatter key: the Claude version adds disable-model-invocation: true, which keeps it explicit-only — it runs because you asked, never picked up on its own initiative.

Contributors keep the two in sync with:

Terminal window
npm run sync:adapters # regenerate .claude from .agents
npm run check:adapters # fail if they have drifted

The project owns its own state, not any one tool

Section titled “The project owns its own state, not any one tool”

syntaxis/ belongs to the project — no adapter owns it. That means a project can move from one agent to another without dragging its plans and history back through a chat window first. Changing tools is just a matter of installing a different adapter, not re-explaining the whole project from scratch.

Every AI tool Syntaxis supports is instructed not to add AI attribution to commits or pull requests — no Co-Authored-By trailers, no generated-by signatures. Genuine human attribution stays exactly as it was. syntaxis/context/ai-interaction.md has the full rule along with the optional per-tool settings that cut down on unwanted signatures further.