---
name: selltraces
description: Set up and run the selltraces CLI for a user who wants to license their anonymized coding-agent sessions to AI labs. Use when the user asks to install selltraces, preview what would be uploaded, check eligibility, or upload approved traces. The user makes every consent decision; the agent runs commands and explains output.
---

# selltraces: onboarding guide for coding agents

selltraces lets a developer review, redact and upload their own coding-agent sessions (Claude Code, Codex, Cursor, Gemini CLI, OpenCode) and earn a revenue share when licensed datasets sell to AI labs. Docs: https://selltraces.ai/docs

You are helping a person. They own every decision about their data. Your job is to run commands, read output, and explain it in plain words.

## Hard rules

1. **Never upload without the user's explicit yes in this conversation.** Show them the dry-run summary first, then ask. A yes to an earlier step is not a yes to upload.
2. **Never accept terms for the user.** Contributor terms are accepted only by the user in their browser. Give them the link and wait.
3. **Never approve the browser login for the user.** Show the code and the URL. They approve it.
4. **Never approve a project or change its state without asking.** Present the project list and let the user choose. If they are unsure about a work or client project, recommend marking it private.
5. **Never print, quote or summarize session content** from the user's history while doing this. Report counts and kinds only, as the CLI does.
6. **Never pass `--confirm-policy` or `--confirm-upload` on your own initiative.** Use them only after the user has reviewed the dry run and said yes to uploading.
7. Do not edit `~/.selltraces/config.json` or `credentials.json` by hand. Use CLI commands.

## Step 1: install

macOS and Linux:

```bash
curl -fsSL https://selltraces.ai/install | bash
```

Windows (PowerShell):

```powershell
irm https://selltraces.ai/install.ps1 | iex
```

The binary is installed to `~/.selltraces/bin/selltraces` (`%USERPROFILE%\.selltraces\bin\selltraces.exe` on Windows). Your shell may not see the new PATH yet. If `selltraces` is not found, call the full path, for example `~/.selltraces/bin/selltraces --version`. Do not try to fix PATH yourself beyond that.

Check it runs:

```bash
selltraces --version
```

## Step 2: log in

```bash
selltraces login --no-browser
```

The command prints a short user code and a URL, then waits. Tell the user:

> Open this link, sign in, check that the code shown is XXXX-XXXX, and approve it.

The command finishes on its own when they approve. If it times out, run it again. Use `--force` only if the user wants to switch accounts.

## Step 3: check eligibility

```bash
selltraces eligibility --json
```

Read `eligible` and `reason`:

| reason | What to tell the user |
| --- | --- |
| `null` | They can upload once they approve a plan. |
| `contact_required` | They need to add contact details at `contactUrl`. |
| `terms_required` | They need to read and accept the contributor terms at `acceptanceUrl`. Do not summarize the terms as acceptance advice; suggest they read them. |
| `residency_required` | They need to confirm US residency in the dashboard. |
| `us_upload_required` / `country_unknown` | Uploads are US-only at launch. They can still preview. Mention `waitlistUrl`. |
| `contributor_paused` | Their account is paused. They should email hi@selltraces.ai. |

Eligibility is not needed for a dry run. Keep going with the preview either way.

## Step 4: choose sources and projects

`selltraces onboard` is interactive and needs a real terminal. If your shell is not interactive, use the individual commands instead and ask the user each question yourself:

```bash
selltraces sources --json
selltraces projects list --json
```

Then, one question at a time:

1. Which detected agents should be included?
2. For each project: approve, mark private, or leave pending? Pending projects are never uploaded. Remind the user that employer or client work may not be theirs to share.
3. Are there words that must never leave their machine, such as client names, codenames or their street? Add each with `selltraces block "<term>"`.

Apply only what the user chose:

```bash
selltraces projects approve <name>
selltraces projects private <name>
```

If the shell is interactive and the user prefers the guided flow, run `selltraces onboard --no-upload` and let them answer the prompts.

## Step 5: dry run

```bash
selltraces upload --dry-run --json
```

Summarize for the user, in this order:

- traces in the plan and total compressed size
- what was skipped and why
- redaction findings by kind (for example: 84 API keys, 213 email addresses)
- the estimate, stated as an estimate: "Estimates are not payouts. Many traces never sell."

Then ask whether anything looks wrong. If they want to remove something, help them mark projects private or add blocked terms, and run the dry run again.

## Step 6: upload, only if the user says yes

Ask clearly, for example:

> The plan is 422 traces (58 MB). Do you want to upload them now?

Only after a clear yes:

- In an interactive terminal: `selltraces upload` and let the user answer both prompts.
- In a non-interactive shell: `selltraces upload --confirm-policy --confirm-upload --json`

The policy confirmation means the user confirms they have the right to share these projects. Say that out loud before running it.

After upload, the batch status is `queued`. That means received, not reviewed or sold. Check later with:

```bash
selltraces status --json
```

## Errors

With `--json`, errors look like `{"error":{"code":"...","message":"...","hint":"..."}}`. Follow the `hint`. Common codes:

- `auth_required`, `auth_failed`: run `selltraces login --no-browser` again.
- `not_eligible`: run `selltraces eligibility --json` and explain the reason.
- `confirmation_required`: you ran upload non-interactively without both confirmation flags. Do not add them unless the user said yes.
- `interactive_required`: the command needs a terminal. Use the non-interactive commands above.
- `network_error`, `api_error`: retry once, then report the code to the user.

## Feedback

If the CLI behaves in a way that blocks onboarding, you may send a short report, with the user's permission, as described at https://selltraces.ai/.well-known/agent-feedback.json. Never include session content, file paths, tokens or personal information in feedback.
