Official CLI for installing, configuring, and validating Manifesto projects.
Use it when you want to:
- bootstrap a new Manifesto project
- install and diff registry-backed domains
- build registry artifacts from local domains
- retrofit an existing repo with a bundler or loader integration
- install optional tooling such as codegen or Codex skills
- validate that
manifesto.config.*still matches the real repo state
Most teams should start with runtime=base. Move to runtime=lineage or runtime=gov only after continuity or approval/history become actual requirements.
npm install -D @manifesto-ai/cli
npx manifesto init --runtime base --integration vite --codegen wire --skills off
npx manifesto add trading-agent
npx manifesto doctorIf you already know you need Codex guidance:
npx manifesto setup skills codexIf you want project-local guidance for Claude Code or other supported agents:
npx manifesto setup skills claude
npx manifesto setup skills cursor
npx manifesto setup skills copilot
npx manifesto setup skills windsurf
npx manifesto setup skills allmanifesto init --runtime base --integration vite --codegen wire --skills off
manifesto add trading-agent
manifesto diff trading-agent --apply
manifesto registry build
manifesto integrate vite
manifesto setup codegen wire
manifesto setup skills claude
manifesto setup skills all
manifesto scaffold counter
manifesto doctor --jsoninit: declare Manifesto intent, install runtime/tooling packages, and optionally run selected setup stepsadd: install a domain from the configured Manifesto registry and generate an agent wrapper undermanifesto/agentsdiff: compare an installed local domain with the latest registry item and optionally apply file updatesregistry build: compile local domains undermanifesto/domainsand emit publishable registry JSON artifactsintegrate: patch a host integration surface such asvite,webpack,rollup,esbuild,rspack, ornode-loadersetup: manage stateful tooling modes such ascodegen=off|install|wireandskills=off|install|codex|claude|cursor|copilot|windsurf|allscaffold: generate optional sample files such as the counter MEL runtimedoctor: validate the declared intent inmanifesto.config.*and localmanifesto.jsondomain state against actual repo stateadd <lineage|governance|codegen|skills>: legacy compatibility mode whenmanifesto.jsonis absent
The CLI treats manifesto.config.* as the source of truth:
export default {
runtime: "base",
integration: {
mode: "vite",
},
tooling: {
codegen: "wire",
skills: "off",
},
sample: "counter",
};This makes "packages only", "install but do not wire codegen", and "install skills plus run a specific agent setup" first-class states.
Domain and registry flows use manifesto.json as the source of truth:
{
"$schema": "https://registry.manifesto-ai.dev/schema/manifesto.json",
"domains": "manifesto/domains",
"agents": "manifesto/agents",
"typescript": true,
"registries": {
"manifesto": "https://registry.manifesto-ai.dev"
}
}Supported modes:
runtime:base,lineage,govintegration.mode:none,vite,webpack,rollup,esbuild,rspack,node-loadertooling.codegen:off,install,wiretooling.skills:off,install,codex,claude,cursor,copilot,windsurf,allsample:none,counter
When manifesto init runs in a TTY, it opens an Ink-based wizard that walks through:
- runtime
- integration mode
- codegen mode
- skills mode
- sample mode
- final review
The wizard defaults to the conservative install-only path: runtime=base, integration=none, codegen=off, skills=off, sample=none.
Use --non-interactive when you want explicit flags only.
When the project later needs continuity or approval/history:
- switch
runtimefrombasetolineageorgov - keep the same
manifesto.config.*workflow - rerun
manifesto doctorto confirm repo state matches intent
skills=install means package only. No agent installer runs.
Tool-specific modes run the matching manifesto-skills installer:
codex->manifesto-skills install-codexclaude->manifesto-skills install-claudecursor->manifesto-skills install-cursorcopilot->manifesto-skills install-copilotwindsurf->manifesto-skills install-windsurfall->manifesto-skills install-all
codex installs into the user-level Codex home. The other agent installers default to project-local files so the repo is ready for Claude Code, Cursor, Copilot, or Windsurf immediately after manifesto init or manifesto setup.
GitHub Actions includes a manual Publish npm Package workflow.
- Run it from the Actions tab on
main - Choose
npm-tagsuch aslatestornext - Set
dry-run=truewhen you want to validate the tarball without publishing
If npm trusted publishing is not configured for @manifesto-ai/cli, add a repository secret named NPM_TOKEN with publish access to the @manifesto-ai scope.