Write it once. morf converts and installs your agents, skills, rules, prompts, hooks and MCP servers into every AI coding tool - each in its native format.
$ npm i -g @romivol/morf
A skill, an agent, a rule — each tool wants a different shape, a different folder, different frontmatter. Today you copy files around and hand-fix each one, then do it again for the next tool. morf is the translator: one command, converted for every tool you use.
Others copy your file as-is and hope it works. morf rewrites the frontmatter, permissions and paths into each tool's own format. Pick a target to see what morf produces:
--- name: bug-finder description: Finds bugs tools: [Read, Grep, Bash] model: sonnet --- # Bug Finder Reviews diffs for logic errors and edge cases…
Frontmatter, permissions, event names and paths are rewritten per tool — the only manager that truly adapts agents.
Not just rules, not just skills — all of it, each written to the shape its tool expects.
Claude, Cursor, Kilo, Copilot, Windsurf and OpenCode — install to one, several, or all at once.
No manifest to learn. morf install <url> and you're done. A manifest is optional, never required.
GitHub, GitLab, or any git URL — public or private. Install by URL or short name.
Zero runtime dependencies. Auditable, forkable, and yours.
morf reads each primitive once, then emits a native version for every target you asked for.
| primitive | claude | cursor | kilo | copilot | windsurf | opencode |
|---|---|---|---|---|---|---|
| Skills | ↝ | ↝ | ↝ | ↝ | ↝ | ↝ |
| Agents | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Rules | ✓ | ✓ | ↝ | ✓ | ✓ | ↝ |
| Prompts | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Hooks | ✓ | — | ✓ | — | ✓ | ✓ |
| MCP | ↝ | ↝ | ↝ | ↝ | ↝ | ↝ |
$ morf install <url>$ morf install <repo> --agent <name> --target claude$ morf install <repo> --skill <name> --target cursor$ morf list --all$ morf update --all$ morf config default <tool>| multi-tool | converts agents | all primitives | zero-config | any git host | |
|---|---|---|---|---|---|
| morf | ✓ | ✓ | ✓ | ✓ | ✓ |
| APM | ✓ | — | ✓ | — | ✓ |
| Ruler | ✓ | — | — | ✓ | ✓ |
| copy-paste by hand | — | — | — | — | ✓ |
Ruler does rules. APM does packaging. morf does all of it — and it's the only one that actually converts your agents.
No. morf reads your source repo and writes converted copies into each tool's directory. Your source is never modified.
morf marks it and skips only that piece — everything else still installs. For example, a tool without a hooks system shows "not supported" for hooks and installs the rest normally.
No. morf install <url> works with zero config. A default target and optional manifest exist for convenience, but nothing is required to start.
Any. GitHub, GitLab, self-hosted — public or private. Install by full URL, or by short name once a repo is in the registry.
No. If morf detects local changes to an installed item, it skips it and tells you to re-run with --force if you really want to overwrite.
Re-run morf install <url> to pull the latest version. morf updates installed items in place, skips anything you've edited locally, and leaves everything else untouched.
morf sync for reproducible setupsmorf publish flow$ npm i -g @romivol/morf