T4 Code is a personal fork of T3 Code, the open-source GUI for Claude Code, Codex and other coding agents. It is built for running many agents across several machines and subscriptions: threads that reach across machines, an app that keeps running in the tray, a sidebar made for long-lived threads, and a hint which account to use next.
It is based on upstream v0.1.5 and follows upstream releases. Releases have Windows builds and a headless server for Linux.
Note
T4 Code is not affiliated with T3 Tools or the T3 Code team. Please don't report its problems upstream.
Across machines
- Linked environments on by default. Upstream's linked environments are a Beta that starts off; T4 Code turns it on, so links keep working on every machine after an update. Settings → Labs turns it off. Link two machines in Settings → Environments, and agents on one launch, message, wait on and stop threads on the other;
delegate_taskruns a task there and reports back. Link another environment - Find threads by name. Agents find pinned threads across projects and linked machines, and resolve a bare thread ID on whichever machine has it. Copy thread ID is in the thread menu and the command palette.
Long-lived threads
- Experts. Pinned threads form a collapsible Experts section that gathers them from every connected machine, one line per expert with the details on hover. The threads an expert's agent starts nest under it as its topics, and Start new topic in its menu starts one yourself without interrupting it. Work an expert does on its own stays quiet, and an expert that needs you shows Needs you with its reason. Experts
- Experts feed. One list with every expert's latest replies, labeled with expert, machine and status, and a Reply that sends into that expert's own thread. Experts feed
- Memory for pinned threads. A pinned thread keeps a memory file that its agent reads after every compaction and keeps current. A brain icon on the expert's row shows it; Open memory opens the file. Keep a memory
- Thread icons. Give a thread its own emoji or icon instead of its project's with Change icon… in its menu; agents can set one too. Give a thread its own icon
- Background section. Threads that agents start on their own wait there and come forward only while they need you: a question, an approval or a failed run. The Status sort puts the same things first. Keep agents' threads in the background
- Quiet agent turns. A turn that another agent started doesn't notify you when it finishes; its questions, approvals and failures still do. An agent waiting on another thread wakes as soon as a message for it arrives.
- Sidebar. Group threads by project, sort by last message, both in one menu; compact cards; the Background and Settled shelves stay at the bottom. Sort and group threads
Several accounts
- Use next. Usage → Limits ranks your Claude and Codex accounts by the room they have left, and new threads start on the recommended one. Agents see the same ranking in
orchestrator_capabilities. Track subscription limits - Failover at the usage limit. A turn that stops on an account's limit continues once on the recommended account, with the same model and options. At the usage limit in the thread menu keeps a thread on its account. Track subscription limits
Chat
- Every message shows its time, relative by default (
Worked for 26s · 10m ago). A reply longer than the screen shows it at its end too. - Readable citations. Cite a passage of a reply and comment on it: the agent receives the quote in place with your comment after it, and your sent message shows the quote. Quote an assistant response
- Reactions. React 👍 to a reply, or 👍 or 👎 to a passage you select in it, without starting a turn; the agent learns it with your next message. Go ahead approves the reply or the passage and starts a turn. React to a response
- Reply to an earlier reply. Reply beside Go ahead makes your message an answer to that reply, even after newer turns; the agent gets its time and first line, not the reply again. React to a response
- Catch up. A Since your last visit line marks what is new, My last message above the composer scrolls back to what you last wrote, and Catch me up writes a short brief (what needs you, what happened, what's next) without starting a turn, on web and mobile. Catch up on a thread
- In long threads the minimap beside the chat groups turns that agents and scheduled tasks started, so its marks stay readable and easy to hit. Your own messages keep a mark each; hovering a group shows its first and last message.
- A message from an agent on a linked machine folds into one line that names the sending thread and its machine. Link another environment
- The new-thread picker (Ctrl+N) lists projects by name.
- Classic emoticons like
:Dshow as emoji; the message itself keeps what you typed.
Windows desktop
- Keeps running in the tray when the window closes; Quit in the tray menu stops it.
- Its own name and icon, and Catppuccin (Mocha and Latte, Rosewater accent) as the default theme.
- Updates come from this repository's releases, on a single track: there is no Nightly to switch to, and a switch another T3 Code app starts is refused.
Warning
T4 Code replaces T3 Code on a machine. It uses the same data folder (~/.t3), so your threads, settings and T3 Connect sign-in carry over, and the two can't run side by side. The builds are unsigned.
- Install and sign in to at least one agent CLI, for example Claude Code (
claude auth login) or Codex (codex login). See Install and first run. - Download
T3-Code-<version>-x64.exefrom the latest release and run it. Windows SmartScreen may warn first, because the installer is unsigned. The installer and the program folder keep T3 Code's names, so existing shortcuts and updates carry over. - Later versions arrive through the app's update check.
From a clone, pwsh -File scripts/t4/install-t4.ps1 does the same in one step: it checks the download against SHA256SUMS, quits the app, backs up your data and installs. Each release also has the t3 command-line tool as t3-<version>-win32-x64.zip.
Versions read 0.1.6-t4.N: the upstream patch after the base, plus the fork's build number.
Each release also has the server for Linux x64, t3-<version>-linux-x64.tar.gz, to run headless on a machine that keeps threads running while the desktop app connects to it. scripts/t4/install-t4.sh installs and updates it for the current user; scripts/t4/README.md covers the background service and pairing.
Install the official v0.1.4 or later over T4 Code: everything stays, since T4 Code's database migrations are upstream's. Rehearse the switch first; scripts/t4/README.md explains how. Official releases before v0.1.4 can't read the linked environments T4 Code stores.
T4 Code merges each upstream release rather than rebasing, and drops a change once upstream ships it. Until then it carries these upstream pull requests:
| Change | Upstream |
|---|---|
| Tray | #19176 |
| Sort threads by last message | #22032 |
Linked environments (#16653 and its stack), project folders (#21039) and the fixes T4 Code picked from upstream's main shipped in v0.1.4, so T4 Code now uses upstream's code for them.
Everything else is a fork patch, tracked in this repository's issues. A daily workflow comments on the upkeep issue (#13) when upstream publishes a release or a carried pull request changes state.
The docs in docs/ are upstream's, with the fork's features added.
- FAQ
- Install and first run
- Working with threads
- Usage and limits
- Remote access and linked environments
- Connect Claude Code, Codex and other agents over MCP
- Keyboard shortcuts
- Appearance
- Updating
- Multiple accounts: Claude · Codex
- Fork scripts: install, rehearse a switch, undo the fork's migrations
Install Vite+ for the vp command, then run vp i and vp run dev. Start reading at docs/internals/overview.md. Releases are built by .github/workflows/t4-release.yml from a t4-v* tag.
This fork follows its owner's needs and doesn't take contributions. For T3 Code itself, see upstream.
MIT, like T3 Code. See LICENSE.