Repository navigation
[Feature]: Continue a Codex or Claude Code session started in the terminal as a T3 Code thread #15234
Description
Problem
I start a Codex or Claude Code session in a terminal, get partway through a task, and then want to pick that same conversation up inside T3 Code. Today there is no way to do that:
- The only path that brings outside sessions into T3 Code is the first-run wizard's import step at
/welcome. It bulk-imports every recent transcript for the projects you tick. You cannot pick a single session, and nothing in the app leads back to it once onboarding is done (that reachability gap is tracked in [Bug]: Session import is unreachable after onboarding, so externally started sessions can never be imported #10961). - The server can already continue an imported thread natively:
AgentSessionImporterwrites the thread with a strongnativeThreadRef, andProviderTurnStartServiceresumes it (Codexthread/resume). Thethread.createimportedNativeThreadpath is used only by the ACP registry import. No client surface lets a user choose a specific CLI session and continue it. - The per-session "Native sessions" list in provider settings exists only for ACP registry providers, not for Codex or Claude Code.
This is distinct from #10961, which asks for the bulk wizard import to be reachable again. This asks for continuing one specific session on demand, the way Zed's "Import Threads" (ACP session/list then session/load) and Orca's "Agent Session History" with "Resume in New Chat" work.
Expected behavior
From a project in T3 Code, I can open a list of recent Codex / Claude Code sessions that ran in that project's directory (title, agent, last activity), pick one, and continue it as a T3 thread. The new thread shows the imported history, and the next message resumes the native session.
Proposed slice
Reuse the existing scanner and importer rather than adding new discovery:
agentSessions.listRPC:{ projectId }returns the sessions found for that project root, marking the ones that already have a T3 thread.agentSessions.import: an optionalsessionsfilter so only the selected session is imported, and the createdthreadIdsin the result so the client can open the thread.- Web: a "Continue a CLI session" dialog for a project, reachable from the sidebar project menu and the command palette.
No background sync, no auto-import, no mobile changes in this slice.
Environment
- T3 Code
mainat ce90eec (2026-10-03), macOS, web client.
Related
- [Bug]: Session import is unreachable after onboarding, so externally started sessions can never be imported #10961 (bulk import unreachable after onboarding)
- Ideas [Feature]: continue threads from claude code #6873 (continue threads from Claude Code), request: import or recreate sessions from Codex #6680 (import or recreate sessions from Codex), Re-scan / re-import CLI conversations for existing projects (not just onboarding) #11697 (re-scan CLI conversations for existing projects)
- Observation from reading the code, not addressed here: an imported Claude thread may fail on its first new message because
ClaudeAdapterV2opens the query withsessionIdinstead ofresumewhen T3 has no prior provider turns for the thread.
Filed by alimohammed1624. Drafted with Claude Fable 5.1 in Claude Code.
Activity
juliusmarminge commentedon Oct 3, 2026
Note
Grok responding on behalf of Julius.
Triage
Thanks @alimohammed1624 for the detailed proposal, and for separating the reachability gap from the new workflow. This is a feature request. Proposals for new capabilities usually go in Ideas, and picking one Codex or Claude Code session and continuing it as a thread is already being discussed there:
Adding your per-session picker design to one of those would help keep the conversation in one place. A maintainer will decide what to do with this issue.
What exists today
The reachability gap you called out is #10961, which is still open. After onboarding, the only client caller of
agentSessions.importis the/welcomewizard, which imports every recent transcript for the projects you tick.AgentSessionImportInputis{ projectId }, and the result is counts, not thread ids. Nothing in the app navigates back to/welcomeafter first run. #13510, which added an Import sessions row in project settings, was closed without merging.A per-session picker,
agentSessions.list, and a session filter on import would be a new workflow rather than a fix for #10961. The Native sessions list is ACP-registry-only (AcpSessionManagementSectionrenders whendriver === "acpRegistry"), which matches the docs.One correction, and a possible separate bug
CLI import doesn't go through the
thread.createimportedNativeThreadcommand.AgentSessionImporterwrites the thread and a strongnativeThreadRefdirectly, withnativeConversationHeadRef: nulland no provider turns. Codex continuation of that ref works:ProviderTurnStartServicecallsresumeThread, and the Codex adapter sendsthread/resume.Claude differs. In
ClaudeAdapterV2openQuery, the first follow-up opens the query withsessionIdunless there's a conversation head, the process already opened the session, orproviderTurnOrdinal > 1. An imported Claude thread has none of those, so the first new message reuses an id the CLI already has, which matches the "Session ID … is already in use" failure the adapter comments describe. If you can reproduce that on an already-imported thread, a separate bug report with the session and the error text would be very useful.alimohammed1624 commentedon Oct 3, 2026
Thanks for the triage.
nativeThreadRefdirectly inAgentSessionImporter; thethread.createimportedNativeThreadpath is only used by the ACP registry import. I have fixed that wording in the description.alimohammed1624 commentedon Oct 3, 2026
Reproduced the Claude first-follow-up failure on an imported thread and filed it separately with the error text and the CLI reproduction: #15243.
kaovilai commentedon Oct 9, 2026
This would be so cool to have. I would love this.