This walks you from zero to a deployed, runnable tool. It takes a few minutes and one login shared by the CLI, your project, and Cargo Skills.
1. Install
npx @cargo-ai/cli instead of cargo-ai.
2. Authenticate
You do not need an account first.--email mails a one-time code and creates the account and a workspace on first use, so there is no separate sign-up step and no browser at any point:
cargo-ai login --agentid signs an agent in as its own AgentID.
The command prints an Auth0 URL and waits for the redirect. Open that URL once. A second visit starts a different sign-in. It does
not open the Cargo app. When AgentID shows an auth token, approve it within 5
minutes with agentmail inboxes authorize --inbox-id <inbox> --auth-token <token> --accept-disclosure true.
cargo-ai login --oauth signs a person in through the browser using the OAuth
device flow, and cargo-ai login --token <your-api-token> uses a token you
created under Settings > API.
To target a specific workspace, pass --workspace-name "Acme GTM" or
--workspace-uuid <uuid> at login, or set the CARGO_WORKSPACE_UUID environment
variable — otherwise commands run against your default workspace.
Verify:
3. Scaffold a workspace
project init scaffolds a project repo from the Cargo template (getcargohq/cargo-manifest), with the project in infra/. Run it without a directory to be asked instead. init installs the dependencies for you; the npm install above is only there if you declined or it failed. There is one install, at the repo root — infra/ is a source directory with no manifest of its own.
Every project command below finds infra/ from the repo root, so you can stay where you are. Declaring a resource is writing a file under infra/ and importing it — here is one AI-powered tool that needs no third-party API keys, so you can deploy and run it with nothing but your Cargo login:
infra/tools/enrich.ts
4. Generate types (optional but recommended)
uses.<key>.<action> action registry into .cargo-ai/, so your editor autocompletes real action slugs.
5. Plan and deploy
deploy applies in dependency order and records each resource’s real uuid in this project’s deploy state, which lives in your workspace. Commit cargo.state.json — it is the pointer that finds it. The next deploy only changes what changed.
6. Run your tool
7. Wire a real data source (optional)
Connectors bring your CRM, warehouse, and enrichment providers into the same project — for example HubSpot, using a private-app token kept out of git withsecret():
infra/connectors/hubspot.ts
Next steps
Project layout
How the loader turns a folder of files into a workspace.
Commands, project & skills
The three ways to drive Cargo — and when to reach for each.
Connectors
Link your CRM, warehouse, enrichment, and AI providers.
Deploying
plan, deploy, prune, refresh, import, and destroy.
CLI
Run tools, trigger plays, and query your data from the terminal.

