Commands
The CLI command name isselltraces.
Global options
--json may appear before or after a subcommand. For example,
selltraces --json status and selltraces status --json both print the same
machine-readable status object to stdout. Usage errors also become one JSON
object on stdout when --json is present.
Root command
selltraces upload. In
non-interactive configured runs, it stops after cached delta; if credentials are
missing or stale, it prints status and the relogin command instead of waiting on
device login.
selltraces setup
- Authenticate the machine.
- Discover supported source locations.
- Count discovered source records before parsing transcript content.
- Pick which sources may be inspected locally (Tab toggles, Up/Down moves, Enter saves).
- Save the local source policy.
- Index selected sources locally and review the project/repository allowlist.
- Preview local redaction and upload results.
- Require the user to type
uploadbefore historical traces are queued.
Non-interactive flags (agents & CI)
Every interactive step can be answered up front so the flow never blocks on a prompt:| Flag | Effect |
|---|---|
-y, --yes | Accept defaults: approve discovered sources/projects and upload history. |
--sources <list> | Approve only these source kinds, e.g. claude,cursor,codex. |
--upload / --no-upload | Upload historical traces without asking / skip upload. |
--exclude-term <term> | Add a blocked term (repeatable). |
--dry-run | Parse and preview only; never upload. |
--json | Implies non-interactive; prints a machine-readable summary to stdout. |
--json mode the device-login URL and code are written to stderr so
stdout stays a single JSON object. When the terminal is not a TTY and no flags
are given, setup defaults to a safe preview with no upload.
selltraces onboard
selltraces setup.
selltraces login
--force to re-link the machine even when same-origin saved credentials are present.
In --json mode, the verification URL and code are written to stderr so stdout
stays reserved for the final linked/reused JSON object.
selltraces logout
selltraces status
- authenticated user and API base
- detected source locations
- approved sources
- approved/private project counts
- blocked-term count
- local upload trace count
- pending-upload count and retained retry-cache size
- local lifetime queued estimate
--json for scripts and agents.
selltraces upload
--dry-run and --plan print the upload plan without uploading. A real
upload checks saved credentials before transcript discovery; use
selltraces login if the machine is not linked.
First-run and non-returning interactive upload reviews surface the saved policy,
expand only when new sources/projects need review, then show an upload plan and
typed upload checkpoint. Returning interactive uploads instead show a “new
value found” delta screen and use the explicit Upload approved delta menu
action. New projects/repos and new source kinds stay pending review until
approved. If exactly one pending project is waiting, project review asks a
plain two-choice question: keep it private for now or include it in upload
preview. Multi-project review uses a checkbox list with Tab to toggle the
highlighted item, Up/Down to move, and Enter to save. Choosing Show skipped traces opens the skipped detail view and keeps it visible behind an explicit
follow-up prompt instead of immediately redrawing the main menu.
After a successful upload, the CLI prints a human dashboard job-status link at
/dashboard/ingest/jobs/{jobId}, the trace ledger at /dashboard/traces, and
the raw API status URL for scripts. Trace rows appear in the ledger after the
ingest worker finishes the queued job.
Non-interactive agents can perform the same policy changes as a human by making
them explicit:
upload requires
--approve-project / --private-project or an earlier setup policy before
upload.
selltraces policy
- A summary shows the policy file, scan scope, approved/detected sources, saved/current project counts, pending current projects, and blocked-term count.
- Current projects appear in a scroll-limited checkbox list. Checked projects may upload after preview; unchecked projects remain private on this machine. The submitted answer echoes short project labels only; counts, status, and paths stay in hints and the post-submit summary.
- Saved projects not seen in the current scan are preserved but not shown in the checkbox list.
- Source and blocked-term edits are shown as compact command hints after the project editor.
policy reports Project policy unchanged
without rewriting config.json. Exact blocked-term impact is reported by
policy block term / policy unblock term, not by the project checkbox save.
Piped/non-interactive human output keeps the full source/project/blocked-term
report with exact mutation commands. policy --json includes the same granular
information in sources.all and projects.all while preserving aggregate
fields used by older scripts.
policy block term <term> and policy unblock term <term> also report current
local impact: how many current traces match, how many policy-active traces
changed state, how many matches were or remain inactive because of other policy,
and how many traces were checked. These commands still upload nothing.
selltraces doctor
selltraces delta
- already-synced trace count
- pending local upload count
- retained retry-cache payload count and bytes
- local lifetime queued estimate
- saved source/project policy counts
--json for a cached machine-readable object. Use --refresh to print the
cached view first, then run a no-upload refresh preview.
selltraces feedback
selltraces preview
upload.
selltraces sync
selltraces upload. Prefer selltraces upload in new
docs, scripts, and support copy.
selltraces backfill
upload. --dry-run and
--plan preview without uploading. Non-interactive uploads require explicit
policy and upload confirmation or explicit project/source decisions, matching
upload.
Source and term flags
Limit sources:--only overrides saved approved sources for that command. --exclude-term adds to saved blocked terms for that command without rewriting ~/.selltraces/config.json.
Approve or keep private a project key from selltraces policy --json:
JSON output
status --json, delta --json, logout --json, feedback --json,
policy --json, doctor --json, repos --json, reconcile --json,
upload --json, preview --json, sync --json, and backfill --json are
designed for automation. Dry-run and upload modes keep stdout as one
machine-readable JSON object; progress spinners, device-login instructions, and
human-readable diagnostics stay off stdout.