--- title: Devin description: How ClawMetry observes Devin — where its data lives, the environment variables that move it, what cost data is real, and the traps in its store. eyebrow: Runtime reference --- # Devin ClawMetry reads the **Devin CLI**, which keeps every session in a local SQLite database. Devin Cloud sessions are reachable only through an authenticated vendor API and are deliberately out of scope — a local-first observer should not be making authenticated egress calls with your enterprise key. | | | |---|---| | **Runtime id** | `devin` | | **Category** | Autonomous engineer (CLI) | | **Vendor** | Cognition | | **Tier** | Paid tier (Starter and up) | | **Upstream** | [devin.ai](https://devin.ai) | ## Where the data comes from ClawMetry reads these locations, in order, and never writes to any of them. - `$XDG_DATA_HOME/devin/cli/sessions.db (default ~/.local/share/devin/cli)` - `$XDG_DATA_HOME/devin/cli/logs/devin__.log` **Format.** One SQLite database holding every session: `sessions`, `message_nodes` (a forest, not a list) and `tool_call_state`. ## Environment variables | Variable | Effect | |---|---| | `CLAWMETRY_DEVIN_DB` | point at a specific sessions.db | | `CLAWMETRY_DEVIN_HOME` | home override | | `XDG_DATA_HOME` | honoured for the default path | See [Environment variables](/docs/config/environment/) for the variables that apply to every runtime. ## Tokens and cost **Tokens.** On the message metadata: `num_tokens`, plus committed ACU and credit cost. **Cost.** Committed ACU / credit cost per message, summed over the active chain only. :::note Why this section exists Runtimes differ enormously in what they persist. Rather than showing a plausible number everywhere, ClawMetry reports what the store actually contains and marks the rest unknown. A cost of `$0.00` and a cost of *unknown* mean different things, and the dashboard keeps them different. ::: ## Things worth knowing - `message_nodes` is a forest: `/fork` and `/revert` leave abandoned turns in place as sibling branches. Summing every row bills you for work you threw away, so ClawMetry walks the active chain from `main_chain_id` and reports the abandoned nodes as a count. - `/rm-session` sets `hidden=1` instead of deleting. Those stay out of the list — a session you deleted should not be resurrected. - Devin Desktop (formerly Windsurf) never writes Cascade sessions to disk, so there is nothing local to read. It is not this adapter. ## Verify it is being read ```bash # Is this runtime detected, and would this install unlock it? clawmetry runtimes --json | jq '.runtimes[] | select(.id=="devin")' # Why is it locked, if it is? clawmetry runtimes --why devin # Any sessions ingested yet? curl -s 'http://localhost:8900/api/local/sessions?limit=5' \ | jq '.rows[] | {session_id, agent_id, events, cost_usd}' ``` If detection succeeds but no sessions appear, work through [Troubleshooting](/docs/ops/troubleshooting/) — the usual causes are a relocated data directory (set the override above), a session limit that is hiding older runs, or a runtime that simply has not written anything yet.