Devin
Devin terminal and desktop sessions provide richer local event stores than the cloud API. Import local sources for complete tools and usage; add the cloud source when cloud-only chats or pull-request attribution are needed.
Source IDs
Section titled “Source IDs”| Source | Use it for |
|---|---|
devin-cli |
Devin for Terminal sessions from the local session database. |
devin-desktop |
Devin Desktop ACP event logs. |
devin-cloud |
Explicit, read-only Devin API import. |
How the import works
Section titled “How the import works”The terminal importer reads Devin’s local session database and reconstructs a conversation by walking its ordered message nodes and recorded branches. The desktop importer reads the application’s ACP event logs in their original order. Both paths normalize user and assistant turns, tools, modes, usage, and project context when those fields exist, while keeping branch and session boundaries intact.
The explicit cloud importer reads Devin’s API for cloud-only sessions and repository or pull-request context. If a local and cloud record carry the same provider identity, the richer local event trace supplies the conversation and the cloud record can add hosted metadata. Cloud-only chat remains useful and searchable, but the API does not expose its tool trace, model, or token usage; Hansard leaves those fields empty rather than estimating them. Repeat imports refresh the same session snapshots.
Import and keep current
Section titled “Import and keep current”hansard import --sources devin-cli,devin-desktop --since allhansard import devin-cloud --since allhansard index rebuilddevin-cloud uses DEVIN_API_KEY or devin.apiKey in Hansard config.
hansard config sources add devin-clihansard config sources add devin-desktophansard watcher restartCloud imports remain explicit and are not part of all.
Review the import in the app
Section titled “Review the import in the app”After the import finishes, open Conversations and selectFilter & sort. Set Source tothe matching Devin CLI, Desktop, or cloud source, choose the backfill window underTime, and use Folder when the same harness appears in several projects. Select a result to inspect its messages, tool calls and results, files, commits, model and usage fields, and source provenance in one conversation view.
For a local source that should stay current, open Settings → Indexing & Imports. Automatic follows detected local harnesses; Custom lets Sources scannedselect an explicit set. Explicit cloud and account-export sources do not turn into background network jobs here. If the expected result is absent after resetting the conversation filters, return to the terminal import in this guide and add --explain-skips where supported.
What Hansard preserves
Section titled “What Hansard preserves”- Devin CLI branches, tools, usage, working directories, linked subagents, selected model, backend, and agent mode.
- Desktop plans, modes, thinking, tool activity, usage, and workspace metadata from ordered ACP events.
- Cloud chat, status, repository and pull-request attribution, and API metadata for sessions that do not have a richer desktop copy.
- Local transcripts take precedence when a cloud session is already mirrored by Devin Desktop.
Known limitations
Section titled “Known limitations”- Current desktop logs preserve ordering and session bounds but not exact per-message times. Hansard hides generated ordering timestamps.
- Devin cloud exposes chat but no tool calls, shell commands, models, or token counts. Cloud-only sessions therefore remain unmodelled and unpriced.
- Cloud sessions whose origin is the CLI are skipped by default because the local CLI store has the fuller record.
Refresh an existing archive
Section titled “Refresh an existing archive”hansard import --sources devin-cli,devin-desktop --since allhansard index rebuildRun hansard import devin-cloud --since all separately when cloud records also
need to be refreshed.