
I run Claude Code, Cursor, Copilot, and Continue in the same repo. The same TypeScript rule lived in 4 files. Same MCP servers configured 3 different ways. Commands, agents, skills — duplicated per tool. After someone updated CLAUDE.md and forgot the others for the third time, I built agentsmesh.
One canonical .agentsmesh/ folder generates native configs for 12 AI coding tools (Claude Code, Cursor, Copilot, Gemini CLI, Windsurf, Continue, Cline, Kiro, Codex CLI, Junie, Roo Code, Antigravity). Edit once, regenerate everywhere. Or import existing tool configs back into canonical form to adopt without rewriting anything.
A few things it does that I haven't seen elsewhere:
- Cross-references between rules/skills/commands get rewritten per target — an agent linking to a skill works in every tool's path layout, not just one.
- Hooks and permissions are first-class canonical types, not just rules and MCP.
agentsmesh checkis a CI gate that fails on drift, same model aspackage-lock.json.- Plugins ship as standalone npm packages — adding a new tool doesn't need a PR to my repo.
- Native Windows (not WSL).
Quick start:
npm install -D agentsmesh
npx agentsmesh init
npx agentsmesh generate
Adopt existing project:
npx agentsmesh import --from cursor
npx agentsmesh generate
MIT, TypeScript strict, Node 20+. Won't help if you only use one tool — the canonical layer is overhead in that case.
GitHub: https://github.com/sampleXbro/agentsmesh Docs: https://samplexbro.github.io/agentsmesh
Happy to answer questions.