one agent,
every tool

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.

$ npx morf install <git-url>
View on GitHub →
ClaudeCursorKilo CopilotWindsurfOpenCode
morf — install
the problem

Every AI tool speaks its own dialect.

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.

real conversion, not copying

The same agent, reshaped for each tool.

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:

sourcebug-finder.md
---
name: bug-finder
description: Finds bugs
tools: [read, grep, bash]
model: sonnet
---
# Bug Finder
Reviews diffs for logic
errors and edge cases…
morfed →cursor

    
what you get

Built to move between tools.

Real format conversion

Frontmatter, permissions, event names and paths are rewritten per tool — the only manager that truly adapts agents.

Every major tool

Claude, Cursor, Kilo, Copilot, Windsurf and OpenCode — install to one, several, or all at once.

Every primitive

Skills, agents, rules, prompts, hooks and MCP servers. Not just rules, not just skills — all of it.

Zero config

No manifest to learn. morf install <url> and you're done. A manifest is optional, never required.

Any git host

GitHub, GitLab, or any git URL — public or private. Install by URL or by short name from the registry.

Open source

MIT licensed, zero runtime dependencies. Auditable, forkable, and yours.

how it works

Clone, parse, convert, route.

morf reads each primitive once, then emits a native version for every target you asked for.

01
clone
fetch the repo
02
parse
read primitives + frontmatter
03
convert
reshape per tool
04
route
write to each native path
primitiveclaudecursorkilocopilotwindsurfopencode
Skills
Agents
Rules
Prompts
Hooks
MCP
✓ converted  ·  ↝ routed  ·  — not supported by tool
the cli

Simple commands, all the way down.

$ morf install <url>
clone & convert into every detected tool
$ morf search <query>
find skills & agents in the registry
$ morf list
see what's installed, in every tool
$ morf update --all
pull latest for everything you installed
$ morf publish
register your repo to the marketplace
$ morf config default <tool>
set your primary target once
who it's for

Made for people who switch tools.

"I built a great agent in Claude — now I want it in Cursor too."
One command. morf reshapes its frontmatter and drops it in, correctly.
"Our team uses three different AI tools and everyone's config drifts."
Install from one repo to all tools — the same source, converted for each.
"I keep a personal library of skills and rules I reuse everywhere."
Keep them in one git repo. morf installs them anywhere in seconds.
how it's different

One command. Every tool. Every primitive.

multi-toolconverts agentsall primitiveszero-configany 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.

quick start

Running in three commands.

$ npx morf install <git-url>clone & convert into every detected tool
$ morf config default <tool>set your primary target once
$ morf listsee what's installed, everywhere
questions

Good to know.

Does morf change my original files?

No. morf reads your source repo and writes converted copies into each tool's directory. Your source is never modified.

What happens for a tool that doesn't support a primitive?

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.

Do I need a manifest or config file?

No. morf install <url> works with zero config. A default target and optional manifest exist for convenience, but nothing is required to start.

Which git hosts work?

Any. GitHub, GitLab, self-hosted — public or private. Install by full URL, or by short name once a repo is in the registry.

Will it overwrite something I edited locally?

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.

Is it really free?

Yes — open source, MIT licensed, zero runtime dependencies. Use it, fork it, contribute back.

roadmap

Where morf is headed.

shippedSkills + agents conversion for Claude, OpenCode & Kilo
in progressCursor, Copilot & Windsurf targets · rules, prompts, hooks & MCP conversion
nextPublic registry with search & short-name installs
nextLockfile & morf sync for reproducible setups
nextVersioning & tags · morf publish flow

Write once. morf it everywhere.

$ npx morf install <git-url>