wondev

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.

You write
  • .wondev/
  • memory/
  • skills/
  • commands/
wondev writes
  • + 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.

CLAUDE.md
Tests live beside the code.
AGENTS.md
Tests live in /test.
.cursor/rules/
No mention of tests.

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.

single-file

Everything flattened into one markdown file.

Codex, Copilot, Gemini CLI, Aider, Zed, Junie, and the 16 tools that read AGENTS.md.

rule-dir

One file per skill or document, with the frontmatter that tool expects.

Cursor, Windsurf, Cline, Roo Code, Continue, Kiro.

claude

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.

init
Scaffold .wondev/ with six working skills, then build
build
Compile to every enabled target
watch
Rebuild as you edit
check
Validate and detect drift — exits 1, so CI catches it
add
Scaffold one skill, memory doc, or command
upgrade
Take newer starter files, never touching ones you edited
migrate
Bring an older .wondev/ up to the current format
doctor
Diagnose the project and report what is wrong
clean
Remove generated files, and nothing else

Safe 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.

12
agents built in
191
tests
82ms
to compile 886 files
1
runtime dependency

Start

Node 20 or newer. Windows, macOS, Linux.

$npx wondev init $npx wondev check