codex clone

Fork any published tool into a local project and start editing it.

The codex CLI is proposed rather than shipped. This page describes the intended command surface; today the equivalent steps run through the workspace scripts and plugin-shell-kit generate.

Usage

npx codex clone fx-mini my-fuzz
cd my-fuzz
npm run dev

You get a working project on the first command — not a stub that needs filling in. It makes the same sound the published tool makes, and you edit from there. For most people this is a better starting point than a blank template: changing numbers in a kernel that already works teaches the shape of the thing faster than writing one from zero.

Why this works

Every published tool is a self-contained manifest unit: a kernel, a parameter schema, and a UI bundle, described by a plugin.config.json that drives all the codegen. There is no server-side state, no proprietary project format, and no build step that only exists inside our infrastructure. The manifest is the whole description of the tool, which means anything the directory can build from it, you can build from it too.

That is a technical property of the manifest format, and it holds today. The licensing position is a separate question and is not settled: Codex Music is a research preview, and the terms for the SDK, CLI, contracts, and example tools are still to be announced. See Licensing before you plan around forking or vendoring them. The hub services (accounts, payments, hosting, review) are intended to be the commercial side.

What you get on disk

The same layout codex create produces, so Project structure describes it exactly: the kernel source, the ParamSchema, the UI source, the manifest, and the build configuration for both the web and plugin-flavored bundles. Any presets the tool published come along, including the demo preset, so the playground state you heard on the tool page is the state your local copy starts in.

You get source, not a decompiled binary. If a tool's source is closed, it is not cloneable — the tool page says so before you try.

What you must change before republishing

Three fields in plugin.config.json, and one of them is not optional in the way the others are.

  • id — the reverse-DNS plugin id. This one is load-bearing. The VST3 class ids are derived deterministically from the plugin id, so two plugins sharing an id are, as far as a DAW is concerned, the same plugin. Install both and the host resolves one of them arbitrarily; sessions saved against one may reopen against the other. Change it to your own namespace before you build anything you intend to share, and change it before your first export, not after — the ids are baked into every artifact.
  • name — what the DAW shows in its plugin list. Sharing a name with the original is legal and confusing.
  • vendor — your name, not the original author's. Leaving it is a misattribution that a reviewer will catch.

version should restart at your own numbering rather than continuing the original's. You are not shipping the next version of their tool.

If you are cloning to learn rather than to publish, none of this matters until you export — but changing the id first costs nothing and saves you from wondering later why your DAW is loading the wrong plugin.

License obligations

The original's license comes with the code and does not stop applying because the file is now in your directory. A copyleft license typically requires your derivative to carry the same license and to publish source. A permissive license typically requires you to keep the copyright notice. Selling a derivative is sometimes fine and sometimes not.

clone writes the original license into your project and records the provenance in your manifest, so the obligation travels with the code rather than living in your memory. codex publish checks that your declared license is compatible with the one you inherited and refuses the submission if it is not — before review, not during it.

Licensing is the full treatment: which licenses the directory accepts, what you keep, what changes if you charge money, and how derivatives are attributed on a tool page.

How it works explains the manifest unit that makes cloning a copy rather than a port. codex export turns your fork into a .vst3 once you have changed the identity fields.