CLI sources

The CLI discovers source locations before it parses transcript content. Discovery returns paths and source kinds so the setup flow can ask what you approve first.

Supported sources

SourceCanonical policy valueLocal store
Claude Codeclaude_code~/.claude/projects
Cursorcursorglobal and workspace state.vscdb stores
Codexcodex~/.codex
Gemini CLIgemini_cli~/.gemini
OpenCodeopencode$XDG_DATA_HOME/opencode/opencode.db, ~/.local/share/opencode/opencode.db, or ~/.opencode/opencode.db
User-facing aliases such as claude and gemini map to canonical policy values.

Cursor stores

Cursor scanning checks:
  • ~/.cursor/state.vscdb
  • ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb
  • ~/Library/Application Support/Cursor/User/workspaceStorage/*/state.vscdb
Cursor and OpenCode scanning use the system sqlite3 command. If a store cannot be read, the CLI skips it instead of uploading partial unknown data. SellTraces does not discover or ingest ~/.traces/traces.db; that path is not a supported source policy value. The SellTraces-owned local store under ~/.selltraces/traces.db is used only for local trace-index and repeat-sync state.

Source policy

The saved policy lives at:
~/.selltraces/config.json
It records:
  • approved sources
  • approved projects
  • projects kept private
  • case-insensitive blocked terms
The policy is applied by upload, upload --dry-run, onboarding history uploads, and the compatibility preview/sync commands.

Filtering order

Every upload plan applies local controls in this order: Source-policy filtering happens before blocked-term and PII checks so the reported skip reason reflects the earliest control boundary.

Repeat uploads

Successful uploads are recorded in:
~/.selltraces/traces.db
The SQLite ledger stores preflighted content hashes, source labels, source ids, token counts, and preliminary local value estimates. Later runs skip identical traces as already synced while still allowing changed ongoing sessions to be reconsidered. Older installs may have ~/.selltraces/sync-state.json; that file is legacy state migrated into the SQLite ledger on first open.