cargo-ai project init scaffolds that repo.
The project’s root is the folder holding cargo.json
({ "resources": "infra" }). cargo.state.json and outputs/ sit beside it,
and every cargo-ai project command stops when it finds no cargo.json above
where it runs. See cargo.json.
A project repo has six layers:
The layer that executes (
infra/) needs a Cargo workspace. The rest (context,
skills, evals, outputs, the context linter) work in any repo with no account at
all.
project init
--name <name>— repo name written intopackage.json(default: the directory name)--cookbook <name>— cookbook to install into the new repo, skipping the “Start from” question (cargo-ai project cookbook listnames them)--force— scaffold into a non-empty directory (existing files are still kept, never overwritten)
getcargohq/cargo-manifest). What varies is what you layer on top of it — a
cookbook, either with --cookbook here or cargo-ai project add later.
Everything is one command group: cargo-ai project. Inside a project,
npx @cargo-ai/cdk <command> takes the same subcommands.
Adding a cookbook
A cookbook is a worked example — resources, the procedure that operates them, and the inputs it will ask you for.add installs one into a repo that
already exists, splitting it the way the repo is laid out: infra/ to the
project, the rest to .claude/skills/.
add never deploys. It reports every file it would overwrite and stops unless
you pass --overwrite, then prints what the cookbook still needs from you.
Omit the address to pick from the catalog.
Growing the repo
Once the repo exists, add to it the way you add any other code:- Skills —
npx skills add getcargohq/gtm-skillsinstalls one-job GTM skills your agent can run;npx skills add getcargohq/cargo-skillsteaches it this CLI. - Resources — declare models, plays, tools and agents in
infra/as a project, thencargo-ai project planandcargo-ai project deploy. - A cookbook —
cargo-ai project add cookbook/<name>installs a worked example into the repo you already have.

