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
| Source | Canonical policy value | Local store |
|---|---|---|
| Claude Code | claude_code | ~/.claude/projects |
| Cursor | cursor | global and workspace state.vscdb stores |
| Codex | codex | ~/.codex |
| Gemini CLI | gemini_cli | ~/.gemini |
| OpenCode | opencode | $XDG_DATA_HOME/opencode/opencode.db, ~/.local/share/opencode/opencode.db, or ~/.opencode/opencode.db |
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
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:- approved sources
- approved projects
- projects kept private
- case-insensitive blocked terms
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: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.