Agent config compiler
One source.
Every agent.
Write what your AI agents need to know once. wondev compiles it into the config format each one actually reads.
- .wondev/
- memory/
- skills/
- commands/
- + CLAUDE.md
- + AGENTS.md
- + .cursor/rules/
- + .github/copilot-instructions.md
- + GEMINI.md
- + .windsurf/rules/
- …and 6 more, or one you define yourself
npx wondev init
Source on GitHub →
Four files. One truth. Eventually none.
Every agent invented its own config file. You update one, forget the rest, and by Thursday they disagree about how your project works.
Three shapes cover the field
Nearly every agent reads one of three layouts. A target is a config entry, not code, so supporting a new agent takes two lines and no release.
Everything flattened into one markdown file.
Codex, Copilot, Gemini CLI, Aider, Zed, Junie, and the 16 tools that read AGENTS.md.
One file per skill or document, with the frontmatter that tool expects.
Cursor, Windsurf, Cline, Roo Code, Continue, Kiro.
Native layout: memory in CLAUDE.md, skills and commands in their own directories.
Claude Code.
It only owns what it wrote
This paragraph sits outside the region below. wondev never touches text like it —
that is the whole point of the markers. Run wondev clean and the block
disappears while everything around it survives byte for byte.
<!-- wondev:start -->
Adopting a file you already have
Point wondev at a repository with a hand-written AGENTS.md and it appends a managed block instead of overwriting. Edit inside the markers and the next build refuses rather than clobbering your change.
<!-- wondev:end -->
Commands
Nine, and each earns its place.
.wondev/ with six working skills, then build.wondev/ up to the current formatSafe on a repository you did not write
wondev writes across your tree and deletes files it created, so everything under
.wondev/ is treated as untrusted — including the manifest wondev wrote itself.
Never clobbers
A file it did not write, or one you edited since it did, stops the build. --force is yours to give.
Cannot escape the project
Output paths are checked lexically and again after resolving symlinks, so a hostile repo cannot redirect a write outside itself.
Deletes only its own list
A manifest naming a path outside the project is rejected outright. wondev never writes one.
Nothing leaves the machine
No process execution, no telemetry, no postinstall script. One runtime dependency.
Start
Node 20 or newer. Windows, macOS, Linux.
npx wondev init
$npx wondev check