Youāve spent weeks tuning your AI coding agent. Rules for how it handles your React components. Skills for your deployment workflow. Ignore patterns so it stays out of generated code. Slash commands for common operations. It all works beautifully.
Then your team gets Claude Code licenses. Or you want to try Cursor on a side project. Or half your team uses one tool and half uses the other.
Your choices: re-create everything by hand, or lose it.
I built a16n so neither has to happen.
What It Does#
npx a16n convert --from cursor --to claude
That reads your Cursor rules, skills, commands, and ignore patterns, and writes equivalent Claude Code configuration. The reverse works too:
npx a16n convert --from claude --to cursor
Your carefully-crafted agent setup comes with you. One command, both directions.
Getting Started#
No install required. npx handles it:
# See what you have (without changing anything)
npx a16n discover --from cursor
# Preview the conversion
npx a16n convert --from cursor --to claude --dry-run
# Do it for real
npx a16n convert --from cursor --to claude
Thatās the whole recipe. Three commands: inspect, preview, convert.
If you want it permanently:
What Converts#
a16n understands six kinds of agent customization:
| What | Cursor | Claude Code |
| Global prompts |
alwaysApply: true rules |
CLAUDE.md, .claude/rules/*.md
|
| File rules |
globs: [...] rules |
.claude/rules/*.md with paths:
|
| Skills | Rules with description:, .cursor/skills/
| .claude/skills/*/SKILL.md |
| Manual prompts | .cursor/commands/*.md | Skills with disable-model-invocation
|
| Ignore patterns | .cursorignore | permissions.deny |
| Full skill packages |
AgentSkills.io format | AgentSkills.io format |
Things that translate cleanly just translate. Things that canāt (like Claudeās hooks, or Cursor commands that use $ARGUMENTS) get skipped with a clear warning telling you why. No silent data loss.
a16n isnāt hardwired to Cursor and Claude. It uses a plugin architecture: each tool is a plugin that knows how to read and write its own format. Cursor and Claude are built in. More can be added.
Thereās also a neutral format - the a16n IR - that you can convert to and from:
# Store your config in a tool-agnostic format
npx a16n convert --from cursor --to a16n
# Render it for any supported tool
npx a16n convert --from a16n --to claude
This makes a16n useful as a hub. Maintain one canonical set of agent customization and generate tool-specific configuration on demand - per developer, per project, per CI run.
Third-party plugins are auto-discovered from npm. If a package is named a16n-plugin-* and implements the plugin interface, a16n will find it. Thereās already one: a16n-plugin-cursorrules adds support for the legacy .cursorrules format:
npm install -g a16n-plugin-cursorrules
npx a16n convert --from cursorrules --to cursor
Useful Flags#
A few things that came up during real use:
Separate read/write directories. Read from one project, write to another:
npx a16n convert --from cursor --to claude --from-dir ./proj-a --to-dir ./proj-b
Path reference rewriting. If your rule content references file paths (like .cursor/rules/auth.mdc), a16n can rewrite those references to point to the new locations:
npx a16n convert --from cursor --to claude --rewrite-path-refs
Source cleanup. Delete the source files after conversion (only if they were fully consumed - partially-converted sources are preserved):
npx a16n convert --from cursor --to claude --delete-source
Git integration. Control whether output files are tracked or ignored:
npx a16n convert --from cursor --to claude --gitignore-output-with match
The Name#
a16n is a numeronym, like i18n (internationalization) or l10n (localization). Smash āagent customizationā together and count the letters between the first and last: a-[gentcustomizatio]-n. Sixteen. Itās short, itās npm-able, and it was available.
Status#
a16n is on npm at v0.13.0. Iāve been running it in my own workflow for a couple of weeks without incident. The documentation covers the CLI, conversion semantics, and plugin development.
Itās open source under AGPL-3.0 at github.com/Texarkanine/a16n. Contributions welcome - especially plugins for tools I donāt use. If youāre curious about how it got built, thereās a companion diary.
If you have agent customization in one tool and wish you had it in another, give it a try:
npx a16n convert --from cursor --to claude --dry-run
The worst that happens is you see what would change.