Provider history support

Provider support means importing each provider's real local history format, not normalized adapter output.

ctx provider support is specific: for the normal supported provider version, the CLI automatically discovers an ordinary default native history source, imports it, and makes meaningful user and assistant content available through search, show, and durable citations. Repeating an unchanged import is stable and does not duplicate records.

Supported today

The current search CLI imports these native source formats:

ProviderSource format
Codexcodex_session_jsonl_tree, codex_history_jsonl
Grok Buildgrok_build_session_updates_jsonl_tree
DeepSeek Harnessdeepseek_harness_session_jsonl_tree
Pipi_session_jsonl
Claude Codeclaude_projects_jsonl_tree
OpenCodeopencode_sqlite
Kilo Codekilo_sqlite
Kiro CLIkiro_cli_sqlite
Crushcrush_sqlite
Goosegoose_sessions_sqlite
Lingmalingma_sqlite
Qoderqoder_transcript_jsonl_tree
Warpwarp_sqlite
CodeBuddycodebuddy_history_json
OpenClawopenclaw_session_jsonl_tree
Hermes Agenthermes_state_sqlite
NanoClawnanoclaw_project
AstrBotastrbot_data_v4_sqlite
Shelleyshelley_sqlite
Continuecontinue_cli_sessions_json
OpenHandsopenhands_file_events
Antigravityantigravity_cli_transcript_jsonl_tree
Geminigemini_cli_chat_recording_jsonl
Tabninetabnine_cli_chat_recording_jsonl
Cursorcursor_agent_transcript_jsonl_tree
Zedzed_threads_sqlite
Copilot CLIcopilot_cli_session_events_jsonl
Factory AI Droidfactory_ai_droid_sessions_jsonl
Qwen Codeqwen_code_chat_jsonl_tree
Kimi Code CLIkimi_code_cli_wire_jsonl_tree
Auggieauggie_session_json
Juniejunie_session_events_jsonl_tree
Firebenderfirebender_chat_history_sqlite
ForgeCodeforgecode_sqlite
Deep Agentsdeepagents_sessions_sqlite
Mistral Vibemistral_vibe_session_jsonl_tree
Muxmux_session_jsonl_tree
Rovo Devrovodev_session_json_tree
Clinecline_task_directory_json
Roo Coderoo_task_directory_json
MiMo Codemimocode_sqlite

Kiro CLI support currently targets the ordinary SQLite history route. Its opt-in ACP/v3 early release uses a newer session format that remains a documented follow-up limitation and is not imported yet.

Use ctx sources for the truth on the current machine:

ctx sources
ctx sources --json

In JSON output, native_import: true means ctx has parser support for that provider format. importable: true means the current path exists, has supported data, and can be imported on this machine. Source status can be available, empty, unknown, missing, or unsupported.

CLI provider flags include codex, grok-build, deepseek-harness, pi, claude, opencode, kilo, kiro-cli, crush, goose, lingma, qoder, warp, codebuddy, openclaw, hermes, nanoclaw, astrbot, shelley, continue, openhands, antigravity, gemini, tabnine, cursor, zed, copilot-cli, factory-ai-droid, qwen-code, kimi-code-cli, auggie, junie, firebender, forgecode, deepagents, mistral-vibe, mux, rovodev, cline, roo, and mimocode. Structured output uses provider IDs in ctx output; multiword IDs may appear as snake case, such as copilot_cli or factory_ai_droid.

NanoClaw history is project-local and is discovered from the current workspace. Use --path only to target a different project root explicitly.

What support means

Installed hooks, opt-in exporters, and separately configured sinks do not qualify as provider history support because they cannot backfill ordinary existing history. Support does not mean ctx launches or installs the agent, or that every provider-specific field is normalized into the same shape.

Custom formats

For an agent history format ctx does not support natively, use a custom history plugin. A plugin is a local manifest plus a local command that streams normalized history records to ctx.

Import rules

Provider imports must be read-only with respect to provider-owned files, explicit through ctx import, ctx setup, or the bounded ctx search --refresh auto native-source refresh path, safe to interrupt and re-run, conservative around unknown schemas, and clear about source citations.