Skip to content

Harnesses and source IDs

Start with the harness that created the conversation. Its guide lists the source IDs to import, explains how provider records become a Hansard conversation, and describes what repeated imports or recovery can add. Each guide also identifies the provider-specific gaps that remain visible after import.

Harness family Source IDs Guide
Aider aider Aider
Antigravity antigravity-cli, antigravity, antigravity-ide Antigravity
Claude claude, claude-code-desktop, claude-cowork, claude-sdk, claude-cloud Claude
Cline cline, cline-cli Cline
CodeBuddy codebuddy CodeBuddy
Codex codex-cli, codex-desktop, codex-sdk, codex-cloud Codex
Cursor cursor, cursor-cloud Cursor
Devin devin-cli, devin-desktop, devin-cloud Devin
Factory Droid factory, factory-cloud Factory Droid
Gemini CLI gemini-cli Gemini CLI
GitHub Copilot copilot-cli, copilot-ide, copilot-agent-cloud GitHub Copilot
Grok Build grok-build Grok Build
iFlow iflow iFlow
Jules jules Jules
Kimi kimi-code, kimi-cli Kimi
MiMo Code mimo-code MiMo Code
Mistral Vibe vibe Mistral Vibe
OpenCode opencode OpenCode
pi pi pi
Prime Agent prime-agent Prime Agent
Qwen Code qwen-code Qwen Code
Windsurf windsurf Windsurf

ChatGPT and Claude.ai account downloads use the web-export workflow, not a local harness source ID.

Open Settings → Indexing & Imports to control going-forward local capture. Automatic follows every locally detected harness; Custom exposes Sources scanned so only selected local sources run. The same page controls the watcher rolling window, search-index pause state, referenced-artifact capture, and the link to incomplete-run diagnostics.

After an import, return to Conversations. Open Filter & sort, set Source to the harness that was imported, set Time to the backfill window, and select a result to inspect its normalized transcript and provenance. Settings does not initiate a complete historical backfill or an explicit cloud/account-export read; those remain deliberate terminal commands because their scope or network boundary requires review.

Terminal window
hansard import --source cursor --since 30d

--since accepts windows such as 30d, 12h, and 60m, an ISO date, or all. Preview a backfill before writing archive files:

Terminal window
hansard import --source all --since all --dry-run

Use --explain-skips when a supported importer needs to show why a candidate did not become a conversation:

Terminal window
hansard import --source cursor --since all --explain-skips
hansard import --source cursor --since all --explain-skips --json

Most local source IDs can participate in --source all and the background watcher. These network or account-export sources always require their dedicated command:

Explicit source Command
Claude Code cloud and Remote Control hansard import claude-cloud --since all
Devin cloud hansard import devin-cloud --since all
Jules hansard import jules --since all
GitHub Copilot coding agent hansard import copilot-agent-cloud --since all
Cursor cloud agents hansard import cursor-cloud --since all
Factory cloud sessions hansard import factory-cloud --since all
Codex cloud tasks hansard import codex-cloud --since all
ChatGPT or Claude.ai exports See Web exports.
Downloaded Windsurf trajectories See Windsurf.

Review the current watcher list and add only the local sources that should be scanned automatically:

Terminal window
hansard config sources list
hansard config sources edit
hansard watcher restart
hansard watcher status

The background watcher imports new local activity and refreshes derived indexes. It does not turn explicit cloud or export imports into background network jobs.

Hansard never fills a missing provider field with a plausible guess. A harness guide calls out whether its source records complete messages, tool arguments, usage, models, timestamps, attachments, and linked agents. Missing values stay Not recorded, unpriced, unresolved, or metadata-only as appropriate.

Raw source material remains available for a later parser improvement, subject to the configured privacy and retention policy. Normalized archive metadata reflects the importer version that produced it.

When hansard doctor --deep reports parser-version drift, reimport the affected source from its original provider history:

Terminal window
hansard import --source cursor --since all
hansard index rebuild

hansard rebuild refreshes derived views from files already in the archive. It does not reread a provider store and cannot recover fields that were never imported.