@alsdd/t3-import
v0.1.8-alsd.1
Published
Import and sync Codex, Claude Code, and OpenCode conversations into T3 Code
Maintainers
Readme
t3-import
Import and sync local Codex, Claude Code, and OpenCode conversations into T3 Code, with native session bindings for continuation, interactive previews, and verified backups.
Maintained fork by alsd4git, based on
CarlosGtrz/t3-import. This repository's
main is the development and release base. Existing upstream pull requests stay
open on their original branches. This is an independent tool, unaffiliated with
T3 Code or its providers.
Demo

These captures use the actual TUI with synthetic conversations and an isolated target. They stop at review before writing history. Reproduce the demo.
Install
The fork package is named @alsdd/t3-import; the command remains t3-import.
Install the scoped npm package, or use the pinned GitHub release tarball below.
The upstream @carlosgtrz/t3-import package does not contain this fork's features.
npm i -g @alsdd/t3-import --allow-scripts=better-sqlite3
t3-import --versionFor a pinned GitHub release without the npm registry:
npm i -g --allow-scripts=better-sqlite3 https://github.com/alsd4git/t3-import/releases/download/v0.1.8-alsd.1/alsdd-t3-import-0.1.8-alsd.1.tgzVersions follow <T3 version>-alsd.<revision>. 0.1.8-alsd.1 targets T3 0.1.8
and retains the earlier compatibility shown below. npm installs the default
latest channel; no @next suffix is required.
The script approval allows the native SQLite dependency to install with recent npm versions. Older npm versions may report the option as unknown; their normal install-script behavior still applies.
Compatibility
| T3 database | Supported migrations | Sources | | --- | --- | --- | | V1 | 40–54 | Codex, Claude Code | | T3 0.1.0 / Orchestrator V2 | 62 | Codex, Claude Code, OpenCode | | T3 0.1.1–0.1.2 / Orchestrator V2 | 67 | Codex, Claude Code, OpenCode | | T3 0.1.3 / Orchestrator V2 | 69 | Codex, Claude Code, OpenCode | | T3 0.1.4–0.1.5 / Orchestrator V2 | 72 | Codex, Claude Code, OpenCode | | T3 0.1.6 / Orchestrator V2 | 76 | Codex, Claude Code, OpenCode | | T3 0.1.7 / Orchestrator V2 | 79 | Codex, Claude Code, OpenCode | | T3 0.1.8 / Orchestrator V2 | 80 | Codex, Claude Code, OpenCode |
Use Node.js 22.21.1+ or 24+. Unknown schemas, including intermediate V2 migrations, are refused. T3 owns database upgrades; the importer never migrates your installation. OpenCode requires its 2.x SQLite session format.
Codex discovery and import read both .jsonl and Zstandard .jsonl.zst
rollouts directly. If both forms coexist, the plain rollout takes precedence.
History sync goes from the provider into T3. It is an explicit operation, without a background watcher or reverse transcript writer. Continuing a bound session from T3 uses the provider's native session. Titles remain separate from transcript sync. See compatibility and validation.
t3-import runtime status reports persisted activity and the verified runtime
owner. The interactive importer can pause an idle Linux systemd service or
packaged Windows T3 Desktop in the same user/session, and restore it on exit.
Scripts can opt in with
--manage-runtime. See runtime maintenance.
Import and sync
Close T3 before writing imported, synced, or replacement history. Read-only
commands and explicit --dry-run selections work with T3 open. Every write creates a
verified database backup. Keep that backup and back up the external import ledger
separately when needed. See storage and recovery.
Running t3-import opens the interactive flow. Choose a source and working folder,
review each conversation's status, select imports or safe updates, and confirm.
New imports offer compatible destination projects while preserving the source cwd.
Native "No project" is available only for eligible T3 scratch folders.
Press v in the workspace/conversation chooser to switch to all conversations, ordered by most recent update, or return to workspace selection. The list scrolls with the highlighted row and retains batch selections when changing views. Enter reviews the highlighted eligible conversation when none are selected; Space selects conversations for a batch. The selected count is always shown. Batches spanning workspaces keep each source directory and use its matching T3 project. Select a single workspace when choosing a specific compatible project.
View a static screenshot of the conversation selector.
t3-import # interactive import and sync
t3-import import --source opencode # start with OpenCode
t3-import sync --source codex # focused interactive sync
t3-import sync --source codex --all --dry-run --summary
t3-import sync --source codex --all --yes --summary
t3-import links --json # read-only identity reportlinks distinguishes current bindings, retained V1 identities and verified V2
context handoffs. It does not compare transcripts, rename threads, or establish
identity from similar titles. It can run while T3 is open, with provisional results.
For a title change with T3 open, rename-plan --thread T3_THREAD_ID --title
"New title" --json prepares the native t3_thread_update MCP call and its
expected identity/title. It does not apply the rename. See
native title updates for the agent/skill workflow.
The TUI explains pending additions, active turns, conflicts and unavailable
sources. Safe sync appends settled history only after verifying the existing
transcript prefix. Divergent or ambiguous histories need review. Exit code 7
reports skipped reconciliation cases, even when other updates in the batch succeed.
Documentation
- Commands, destinations, safety and storage
- Compatibility, pinned runtimes and vendoring
- OpenCode and T3 0.1.1 validation
- Native continuation test and its limits
- Packed install and CI checks
- Fork history and release process
- Changelog
Optional title normalization can consume links evidence. The personal
codex-thread-normalizer skill
is maintained separately and is not required to use the importer.
Development
To build from source:
git clone https://github.com/alsd4git/t3-import.git
cd t3-import
npm ci
npm run build
node dist/cli.jsnpm ci
npm run typecheck
npm test
npm run build
npm run package:checkCI checks Node 22/24 on Windows, macOS and Ubuntu. The package check installs a tarball with independent dependencies, imports a synthetic conversation, appends a turn, and verifies that repeated sync is a no-op. Additional pinned-runtime checks and regeneration commands are described in the compatibility guide.
Credits and license
Originally created by CarlosGtrz; fork maintenance and extensions by Alessandro
Digilio and contributors. Licensed under MIT. Bundled T3 runtimes retain
their licenses, source references and third-party notices under vendor/.
