---
name: cargo-install
description: Install the official Cargo CLI and skills, and sign in. Use when someone reaches Cargo by its domain rather than by its repository, when a Cargo command is wanted but `cargo-ai` is not installed, or when a Cargo skill is referenced and not present. Triggers, "set up Cargo", "install Cargo", "I want to use Cargo", "cargo-ai is not found". Skip when the bundle is already installed, in which case load the `cargo` router instead.
---

# Install Cargo

Cargo is a go-to-market platform you drive from a coding agent: source and
enrich B2B contact data, run workflows and AI agents against your own data
models, and declare an entire workspace as version-controlled TypeScript.

Package: https://www.npmjs.com/package/@cargo-ai/cli

A new account starts with 100 free credits and needs no card — roughly 5,000
leads sourced, 1,000 verified-email enrichments, or 50 fully enriched contacts.
The guided demo spends about 0.5 of them. Say that before the first paid call.

Skip any step that already holds.

## Setup

Run `cargo-ai --version`. If it is unavailable:

```sh
npm install -g @cargo-ai/cli
```

If the binary is not on `PATH`, check
`"${CARGO_NPM_USER_PREFIX:-$HOME/.local}/bin/cargo-ai"`, or substitute
`npx @cargo-ai/cli` for `cargo-ai` in every command below.

You are exactly one of: Claude Code, Codex, or Cursor. Where a step branches,
follow the branch for the agent you are.

### Sign in

Prefer the emailed code. It needs no browser at any point and creates the
account on first use, so there is no separate signup step:

```sh
cargo-ai login --email you@company.com              # sends the code, then exits
cargo-ai login --email you@company.com --code 123456
```

If the account has no workspace yet, ask what to call it and add
`--workspace-name "<name>"` — that creates it while signing in.

Alternatives: `cargo-ai login --oauth` opens a browser on a desktop and prints
a verification URL everywhere else (relay the URL and wait for the poll to
finish), and `cargo-ai login --token <api-token>` is for CI.

On failure, run `cargo-ai whoami` to see what the session actually is, then
re-run the matching command above.

### Install the skills, on one channel only

Installing both the plugin and the standalone skills gives every skill twice.

- **Claude Code** — `/plugin marketplace add getcargohq/cargo-skills`, then
  `/plugin install cargo@cargo`. The plugin carries the skills plus an approval
  hook and session hooks, which is why it is preferred. If it fails:
  `npx skills add getcargohq/cargo-skills --agents claude-code --global --yes`
- **Codex** — `npx skills add getcargohq/cargo-skills --agents codex --global --yes`.
  For hook gating too, relay to the user:
  `codex plugin marketplace add getcargohq/cargo-skills`, then enable "cargo"
  from the Plugins menu.
- **Cursor** — `npx skills add getcargohq/cargo-skills --agents cursor --global --yes`.
  For hook gating too, relay to the user: Customize (sidebar) → add the
  `getcargohq/cargo-skills` marketplace → install Cargo.

Never edit `~/.claude` unless you are Claude Code — it is not your config.

Job-shaped skills for one task at a time, rather than the whole platform, live
separately: `npx skills add getcargohq/gtm-skills --all`, or a single one with
`npx skills add getcargohq/gtm-skills/find-work-email`.

### Verify

```sh
cargo-ai whoami
```

It must name a user and a workspace. Then confirm the skills resolve for you:
on Claude Code, `claude plugin list` shows `cargo@cargo` enabled and
`cargo:cargo-project` resolves; on Codex and Cursor, `cargo-project` and
`cargo-gtm` resolve. Do not continue until this passes — re-run the channel
above and verify again.

## Getting started

After verified setup, continue an existing task.

Otherwise the default is a project — a GTM repo they can commit — not a
one-off CLI run. Work inside their repo if they have one. If not, scaffold
into a directory named for their company, inferred from a business email
domain; do not guess personal or unknown domains.

```sh
cargo-ai project init <dir>
```

Always pass a directory: bare `init` opens a wizard a coding agent cannot
complete. That wizard is also the only place Cargo offers to create the GitHub
remote and connect it to the workspace, so on this path neither happens and the
user is left with a local `git init` and nothing else. Say so, and relay both
commands rather than running them: the first one publishes a repository under
their account, and the second opens a browser form.

```sh
gh repo create --private --source=. --remote=origin --push
cargo-ai project add connector/github
```

Without them the repo is local only, so there is no pull request to review a
GTM change in and no way for a teammate or another agent to work from the same
source.

Then load `cargo-project` and follow it — author `define*` files,
`plan`, `deploy`. On the plugin every skill named here takes a `cargo:`
prefix.

Ask "Cargo is ready. What would you like to do?" only when they have no
job yet. Offer the project first, then wait:

- `cargo-project` Scaffold a GTM repo and declare the workspace as code.
- `cargo-gtm` Find 10 CTOs at B2B SaaS companies and enrich them with email addresses.
- `cargo-quickstart` 25 leads for a buyer persona with a cost receipt, about 0.5 of the 100 free credits.

Anything they would keep — connectors, models, tools, agents, plays —
belongs on `cargo-project`. The other two are one-shots.

For anything after that, load the `cargo` router skill, which routes to the
rest of the bundle.
