Skip to main content
skill CX Codex

cargo-content — Claude Code skill: what it does, how to install

Manages Cargo workspace files: uploads docs for agent RAG, creates knowledge libraries, and provides path-based storage with signed links.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add getcargohq/cargo-skills --skill cargo-content -a claude-code
Open on GitHub

What cargo-content does

This skill enables the coding agent to handle workspace files and knowledge libraries in Cargo using cargo-ai. It uploads reference documents for RAG and organizes library collections. Files can also act as regular storage addressed by paths such as reports/2026-q3/summary.pdf.

The skill downloads files and creates signed or public links with expiration limits. Every command outputs raw JSON to stdout. Older commands under cargo-ai ai file no longer exist. Without @cargo-ai/cli version 1.0.19 or higher, command execution fails immediately.

Attaching these files to agent releases requires the separate cargo-ai skill. Folder trees belong to cargo-workspace-management instead. Running commands requires an active account via cargo-ai login.

What it helps with

  • upload documents and tables to a Cargo workspace
  • create a knowledge library for agent RAG
  • generate temporary or public file links
  • download stored files using path addressing

Example prompts for the agent

  • Upload knowledge-base.pdf into the Cargo workspace as a knowledge base.
  • Generate a public URL for reports/2026-q3/summary.pdf with a one-hour expiration.
  • List all files and knowledge libraries in the active workspace.

How to install cargo-content

1Skills CLI (Vercel)

npx skills add getcargohq/cargo-skills --skill cargo-content -a claude-code

2Manually: put the files in place

~/.claude/skills/cargo-content/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/cargo-content/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about cargo-content

How to install cargo-content in Claude Code?

Run npx skills add getcargohq/cargo-skills --skill cargo-content -a claude-code in your terminal.

What does the cargo-content skill do?

It manages Cargo workspace files by uploading documents for RAG, organizing knowledge libraries, and handling path-based storage with signed links.

What prerequisites are needed for cargo-content?

You must install @cargo-ai/cli version 1.0.19 or newer from npm and authenticate using cargo-ai login.

Source text

SKILL.md · MIT
---
name: cargo-content
description: "Manage the files a Cargo workspace holds — upload knowledge (PDF, CSV, text) and build native or connector-backed libraries agents retrieve from (RAG), and use files as plain storage: write and read by path, list a folder, hand out a signed or public link. Triggers: \"upload this PDF\", \"add these docs as knowledge\", \"build a knowledge base\", \"sync our help center into Cargo\", \"what files are in the workspace\", \"index this folder\", \"attach our pricing sheet\", \"store this file\", \"save the report somewhere\", \"give me a link to the file\", \"make this file public\". Skip when: wiring the file or library into an agent — use cargo-ai; uploading a CSV that drives a batch run — that is a workspace-management file upload."
version: "1.2.0"
compatibility: Requires @cargo-ai/cli (npm). Sign in or create an account with `cargo-ai login --email` (emailed code, no browser), `--oauth`, or an API token
homepage: https://github.com/getcargohq/cargo-skills
metadata:
  author: getcargo
  openclaw:
    requires:
      bins:
        - cargo-ai
    install:
      - kind: node
        package: "@cargo-ai/cli@latest"
        bins:
          - cargo-ai
    homepage: https://github.com/getcargohq/cargo-skills
---

# Cargo CLI — Content

Workspace **files**: upload and organize them (PDFs, CSVs, text) and group or sync them into **libraries** — the knowledge resources that ground agent responses (retrieval-augmented generation, RAG). Files are also **plain storage**: write one at a path, read it back, list a folder, and hand out a link, from the CLI, the HTTP objects API, a hosted worker, a workflow node, or an agent — see [Files as storage](#files-as-storage-paths-and-links).

> **New top-level domain (CLI ≥ 1.0.19).** Files and libraries moved out of the `ai` domain into the `content` domain — `cargo-ai content file …` and `cargo-ai content library …`. The old `cargo-ai ai file …` commands no longer exist; an `unknown command` error means you're on the old path.

> For **attaching** a file or library to an agent (via the release `resources` array), use [`cargo-ai`](../cargo-ai/SKILL.md).
> For **folders** that organize files, use [`cargo-workspace-management`](../cargo-workspace-management/SKILL.md) (`cargo-ai workspaceManagement folder …`).
> For batch-run **input** files (CSVs uploaded to drive a batch), that's a different surface — `cargo-ai workspaceManagement file upload` — documented in [`cargo-workspace-management`](../cargo-workspace-management/SKILL.md).

> See `references/examples/files.md` for end-to-end file, library, and attach-to-agent examples.
> See `references/objects.md` for files as storage: the path model, storage settings and their per-surface defaults, signed and public links, the context mirror, and the HTTP / worker / node / agent surfaces.
> See `references/response-shapes.md` for full JSON response structures.
> See `references/troubleshooting.md` for common errors and how to fix them.

## Bootstrap

Already signed in (`cargo-ai whoami` returns a workspace)? Skip to the next section.

```bash
npm install -g @cargo-ai/cli            # no global install? prefix every command with `npx @cargo-ai/cli`
cargo-ai login --email [email protected]  # emailed code, no browser; creates the account on first use
                                        # alternatives: --oauth (browser) · --token <api-token> (CI)
cargo-ai whoami                         # confirm the active workspace before any write
```

Every command prints JSON to stdout; failures exit non-zero with `{"errorMessage": "..."}`. Anything that creates a run or a batch is async — pass `--wait-until-finished` or poll the matching `get`. When the full skill bundle is installed, [`../cargo/references/prerequisites.md`](../cargo/references/prerequisites.md) adds the CLI version pin, token scopes, and the admin-only surface.

## Discover resources first

```bash
cargo-ai content file list                 # all uploaded files (uuid, name, contentType, size)
cargo-ai content library list              # knowledge libraries (native or connector-backed)
```

## Files

Upload files (PDFs, CSVs, text) so an agent can ground its responses in specific knowledge. The upload response includes the `uuid` you reference when attaching the file to an agent release (see [`cargo-ai`](../cargo-ai/SKILL.md)).

```bash
# List all files
cargo-ai content file list

# Get a single file
cargo-ai content file get <file-uuid>

# Upload a file (optionally straight into a folder)
cargo-ai content file upload --file ./knowledge-base.pdf
cargo-ai content file upload --file ./knowledge-base.pdf --folder-uuid <folder-uuid>

# Update a file's name or folder
cargo-ai content file update --uuid <file-uuid> --name "Q1 Research Notes"
cargo-ai content file update --uuid <file-uuid> --folder-uuid <folder-uuid>

# Remove a file
cargo-ai content file remove <file-uuid>
```

> **Content files in the context repo.** A file with `mirrorToContext: true` — the default for `upload`, web-app uploads and `defineFile` — is **committed and pushed** into the context repository under `.files/<path>` (commit `content(mirror): upsert <name>`; over 10 MB, a JSON metadata sidecar instead of the bytes), so a command in the context runtime sandbox can read it — e.g. `cargo-ai context runtime execute --command ls --args '["-1",".files"]'` — and anyone with access to that repo can too. Path writes (`put`, the objects API, workers, nodes, agents) default to `mirrorToContext: false` and stay out of git. `.files/` is read-only from the context runtime (`deniedPath`); change those files with `content file` here. See [`cargo-context`](../cargo-context/SKILL.md).

## Files as storage (paths and links)

A file's **path** is its folder chain plus its name (`reports/2026-q3/summary.pdf`). Writing to a path creates missing folders and overwrites the newest file of that name in place (same `uuid`, settings kept unless you pass new ones).

```bash
cargo-ai content file put reports/2026-q3/summary.pdf --file ./summary.pdf   # → { file, path }; any size
#   --content-type <mime> (guessed from the extension) · --index none|vectorStore (none)
#   --visibility private|public (private) · --mirror-to-context (off)
cargo-ai content file ls reports/ --limit 100            # prefix match, ordered by path; --limit ≤ 1000, --cursor <nextCursor>
cargo-ai content file download reports/2026-q3/summary.pdf --out ./copy.pdf
cargo-ai content file url reports/2026-q3/summary.pdf --expires 3600 [--download]   # → { url, expiresAt, publicUrl? }
cargo-ai content file visibility reports/2026-q3/summary.pdf public   # private revokes the public link at once
cargo-ai content file rm reports/2026-q3/summary.pdf
```

| Option | `upload` / web app / `defineFile` | `put` / objects API / worker / `writeFile` node | Agent write |
|---|---|---|---|
| `indexMode` (`--index`) | `vectorStore` | `none` | always `none` |
| `mirrorToContext` | `true` | `false` | always `false` |
| `visibility` | `private` | `private` | always `private` |

The same files over HTTP are **objects** — `PUT` / `GET` (`?meta=true` for details) / `DELETE /v1/content/objects/<path>`, `GET /v1/content/objects?prefix=` — and from a worker `createCargoObjects(env)` (`@cargo-ai/worker-sdk`); in a play, the `writeFile` / `readFile` / `getFileUrl` nodes; on an agent, a writable folder (`capability_file_write`). All of it in [`references/objects.md`](references/objects.md).

## Libraries

A library groups files. Agent release `resources` take file or folder items, not a library UUID, so an agent reaches a library through its files or the folder they land in. There are two kinds:

- **`native`** — workspace-managed collections of uploaded files (not creatable from the CLI: `library create` is connector-only).
- **`connector`** — synced from an external source (e.g. a help center or knowledge base) through an unstructured-data extractor (`--extractor-slug`). Get the `connectorUuid` from [`cargo-connection`](../cargo-connection/SKILL.md).

```bash
# List libraries (filter by kind or connector)
cargo-ai content library list
cargo-ai content library list --kind native
cargo-ai content library list --kind connector --connector-uuid <connector-uuid>

# Get a single library
cargo-ai content library get <library-uuid>

# Create a connector-backed library
cargo-ai content library create \
  --name "Help Center" \
  --connector-uuid <connector-uuid> \
  --extractor-slug <extractor-slug> \
  --folder-uuid <folder-uuid> \
  --config '{}'

# Update / remove
cargo-ai content library update --uuid <library-uuid> --name "Updated Name"
cargo-ai content library remove <library-uuid>
```

## Critical rules

- **A signed URL is unauthenticated.** Anyone holding it opens the file until it expires (default 3600 s, max 10800 s). A `public` file adds a stable no-auth link, `https://api.getcargo.io/files/public/<uuid>/<name>`, that works until the file is made private or deleted. Hand out either only when the user asked for the file to be shared, and never for record-level personal data.
- **`upload` and `put` default differently.** `upload` indexes (`vectorStore`, sent to OpenAI) and mirrors into the context repo; `put` does neither. A `put` file is not searchable by an agent — `capability_file_search` skips it and `capability_file_analyze` refuses it — until written with `--index vectorStore`.
- **A mirrored file is in git.** `mirrorToContext: true` commits the file to the context repository under `.files/`; pass `--index none` and keep mirroring off (`put`) for files that should stay in Content.
- **A path write overwrites without asking.** The newest file of that name in that folder is replaced in place, and its `uuid` (and every agent resource pointing at it) now serves the new bytes. A read-only (connector) folder refuses with `folderReadOnly`.

## Attaching to an agent

Files and libraries are knowledge **resources** — they do nothing until attached to an agent via that agent's draft release `resources` array, then deployed. That wiring lives in [`cargo-ai`](../cargo-ai/SKILL.md) (`ai release update-draft --resources …` → `ai release deploy-draft`). See `references/examples/files.md` for the upload → attach → deploy sequence.

## Help

Every command supports `--help`:

```bash
cargo-ai content file upload --help
cargo-ai content library create --help
```

© getcargo · MIT · getcargohq/cargo-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set19

cargo-billing Checks Cargo credit balances, workflow expenses, and subscription status via your agent. Helps size credit budgets before launching large processing batches. CX Codex +1 9,900installs cargo-analytics This skill downloads Cargo run results and exports segment data to CSV or JSON. Use it to retrieve output files or check run and batch counts. CX Codex +1 9,900installs cargo-orchestration Runs Cargo connector actions, workflows and batches across segments, builds operation graphs, visualizes pipelines and queries execution tables with SQL. CX Codex +1 9,900installs cargo-gtm Coordinates B2B account research, contact enrichment, and draft generation for your outbound sequencer via Cargo. CX Codex +1 9,900installs cargo-hosting Teaches the agent to scaffold, deploy, and promote static web apps and serverless edge workers via the Cargo CLI. Useful when you need a live URL for a dashboard or webhook endpoint. CX Codex +1 9,700installs cargo-cdk A redirect skill that points to cargo-project. It updates legacy installations following the cargo-ai CLI command rename. CX Codex +1 8,800installs cargo-quickstart Walks a new user through Cargo: one persona question, 25 real leads and a credit receipt. Useful when the workspace is empty and you don't know where to start. CX Codex +1 8,800installs cargo-diagnostics A skill that explains what a Cargo run or batch actually did: walks it node by node, draws the executed graph with the failing step marked, groups errors by root cause and attributes credit spend. CX Codex +1 8,700installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor