Data Locations
sivtr is local-first. Most data it uses is already on your machine, and generated data is written under platform config or state directories unless you explicitly export it elsewhere.
Config file
Section titled “Config file”| Platform | Path |
|---|---|
| Windows | %APPDATA%\sivtr\config.toml |
| macOS | ~/Library/Application Support/sivtr/config.toml |
| Linux | ~/.config/sivtr/config.toml |
Shell session logs
Section titled “Shell session logs”Shell integration writes per-process structured session logs.
| Shell/platform | Typical path |
|---|---|
| Windows PowerShell / PowerShell 7 | %APPDATA%\sivtr\session_<pid>.log |
| Bash / Zsh | $XDG_STATE_HOME/sivtr/session_<pid>.log or ~/.local/state/sivtr/session_<pid>.log |
| Nushell | Nushell config/state area with a sivtr session file |
These logs power:
sivtr import;sivtr copycommand-block workflows;sivtr diff;- command-block navigation in the browser.
History database
Section titled “History database”Captured terminal output is stored in a local SQLite history database when [history].auto_save = true.
Use CLI commands instead of editing the database directly:
sivtr history listsivtr history search "panic"sivtr history show 42Retention is controlled by:
[history]max_entries = 00 means unlimited.
Agent provider data
Section titled “Agent provider data”sivtr reads provider-owned local data. It does not upload transcripts.
| Provider | Data source |
|---|---|
| Codex | ~/.codex/sessions rollout JSONL files |
| Claude Code | Current transcript/session environment and local Claude transcripts |
| Hermes | Primary: $HERMES_HOME/state.db (Windows default %LOCALAPPDATA%\hermes, else ~/.hermes). Residual: sessions/*.jsonl under the same home. |
| OpenCode | OpenCode local database |
| Cursor | ~/.cursor/projects/**/agent-transcripts/**/*.jsonl (override home with CURSOR_HOME) |
| OpenClaw | ~/.openclaw/agents/<id>/agent/openclaw-agent.sqlite (legacy JSONL under sessions/) |
| Grok | ~/.grok/sessions/** (summary.json + chat_history.jsonl; override home with GROK_HOME) |
| Pi | Pi agent session JSONL files |
Provider formats differ; sivtr normalizes them into sessions and dialogue units for copy, picker, search, and show workflows.
Codex exported mirrors
Section titled “Codex exported mirrors”codex export writes a copy of local Codex session files into a destination you choose:
sivtr codex export --dest /srv/sivtr/root-codexThe destination receives a sessions/ tree. Another account can read it by adding:
[codex]session_dirs = ["/srv/sivtr/root-codex/sessions"]Use read-only permissions for shared mirrors when possible.
Generated launchers
Section titled “Generated launchers”Linux shortcut generation writes:
~/.local/bin/sivtr-pick-codex;~/.local/share/applications/sivtr-pick-codex.desktop.
macOS shortcut generation writes:
~/.local/bin/sivtr-pick-codex;~/Library/LaunchAgents/dev.sivtr.pick-codex.plist.
Windows hotkey state is stored under sivtr’s platform config/state area and is managed by:
sivtr hotkey statussivtr hotkey stopRemote daemon state
Section titled “Remote daemon state”Cross-device remote memory uses a device-scoped daemon. Override the root with SIVTR_DATA_DIR; otherwise it is the platform config directory under sivtr (same root as data_dir()).
| File | Purpose |
|---|---|
identity.key | Stable device identity for iroh |
remote-state.db | SQLite peers, shares, grants, invites, mounts, audit |
daemon.json | Running daemon control info (port, token, node id) |
daemon.lock | Single-instance lock |
daemon.log | Daemon log file (sivtr serve logs) |
sivtr serve statussivtr serve logssivtr share listsivtr remote listsivtr peer listsivtr ws listRemote access is opt-in. Nothing is shared until sivtr share (or share add) runs. Mounts are workspace-local aliases registered with sivtr remote add. Feature guide: Remote Access.