T3 Code is an "agent harness control surface". It enables control of the agents on your machine with a best-in-class mobile app (iOS, Android), web app and Electron-based desktop app.
Works with your subscriptions on Claude Code, Codex, Cursor, Grok Build, OpenCode, and Google Antigravity. If they're set up on your computer, T3 Code can control them.
Nothing. We built T3 Code because we wanted the best possible development experience with agents. We were inspired by existing solutions like the Codex desktop app, Conductor, Claude Desktop and Cursor Glass, but none met our bar.
We wanted something performant, remote-ready, and truly open. If we ever go the wrong direction, we want you to have everything you need to fork and build the editor that you want.
This repository is T3o, a fork of pingdotgg/t3code that adds
Board mode: work is managed as cards moving through a fixed engineering pipeline (Backlog → Sprint →
Planning → Ready → Building → Code review → Ready for merge → Done), and the app spawns, supervises and
restarts the agent threads that do the work.
T3o is not published to any registry. npx t3@latest, the desktop installers and the package-manager
recipes under Installation all give you upstream, without the board. To run T3o you
build it from this checkout.
- Node.js 24.13.1 or newer —
engines.nodeis pinned to^24.13.1. Distro packages are usually far older; use nvm, fnm or NodeSource. - pnpm 11.10.0 — the workspace uses pnpm catalogs (the
catalog:versions inpackage.json), which npm and yarn cannot resolve. AnEUNSUPPORTEDPROTOCOL/Unsupported URL Type "catalog:"failure means the wrong package manager, not a broken lockfile. - A C++ toolchain —
node-ptyships no Linux prebuild and compiles during install. On Debian/Ubuntu:sudo apt install -y build-essential python3. gitandrsync, plussudorights if you want the systemd service.- At least one provider CLI, installed and authenticated as the user that will run the server. See the warning under Installation.
corepack enable pnpm # or: npm install -g pnpm@11.10.0
pnpm install # not `npm install`, and not `--frozen-lockfile`
pnpm run build # every app; the service install below builds the server on its ownpnpm install is what puts vp (Vite+, the build tool) at node_modules/.bin/vp. Until it has run, every
script in package.json dies with node_modules/.bin/vp … ENOENT, install-t3o-service included. The
global vp install described near the bottom of this file is optional — the repo carries its own copy.
Install the provider CLIs first: the unit is written with a PATH resolved at install time, and a provider
that was not on your PATH then will fail to spawn with ENOENT. Re-run the install after adding one.
pnpm run install-t3o-service builds the server, copies the build to ~/.t3/app so the service never runs
out of the worktree, and writes a t3o.service unit serving http://127.0.0.1:3773 from your ~/.t3 data
directory:
pnpm run install-t3o-service # install, enable and start
pnpm run install-t3o-service -- --takeover # ...and switch off whatever else holds the port
pnpm run t3o-service-status
pnpm run uninstall-t3o-service # remove the unit, restore whatever --takeover displaced--takeover only matters on a machine already running another T3 Code server (upstream's
t3code.service, say). On a fresh one, nothing holds port 3773 and the plain install starts straight away.
The pairing URL is printed once at startup, and you need it to reach the web app:
journalctl -u t3o.service -n 200 --no-pager | grep -i 'Pairing URL'Do not use upstream's t3 service install here. It runs npm install t3@<version> against the public
registry, and would serve upstream's build against this fork's data — no board, and no error to say so.
Flags, redeploying after a pull, running without systemd, and troubleshooting: docs/t3o/install.md.
Warning
T3 Code currently supports Codex, Claude, Cursor, Grok Build, OpenCode, and Antigravity. Install and authenticate at least one provider before use:
- Codex: install Codex CLI and run
codex login - Claude: install Claude Code and run
claude auth login - Cursor: install Cursor CLI and run
agent login - Grok Build: install Grok Build CLI and run
grok login - OpenCode: install OpenCode and run
opencode auth login - Antigravity: enable it in Settings, then use Install Antigravity and Sign in with Google. No CLI is required.
The easiest way to test T3 Code is to run the server in your terminal (requires Node.js 22.16+, 23.11+, or 24.10+):
npx t3@latestThis will launch T3 Code's backend on your machine as well as the local web app to control your agents.
Tip: Use npx t3@latest --help for the full CLI reference.
Install the latest version of the desktop app from GitHub Releases, or from your favorite package registry:
winget install T3Tools.T3Codebrew install --cask t3-codeStable:
yay -S t3code-binNightly:
yay -S t3code-nightly-binThe AUR packaging is maintained in this repository under packaging/aur.
We are very very early in this project. Expect bugs.
We are (mostly) not accepting contributions yet. Small fixes may be considered. Big features will not be.
Full docs live in docs/. There's no docs site yet.
- Install and first run
- Permission modes
- Keyboard shortcuts
- Project settings
- Remote access from a phone or another machine
- Keeping app and server in sync
- Source control integrations
- Multiple accounts: Codex · Claude
- Run T3 Code as a background service
Building from source? Start at docs/internals/overview.md.
T3 Code uses Vite+ so you'll need to install the global vp command-line tool.
curl -fsSL https://vite.plus | bashirm https://vite.plus/ps1 | iexCheckout their getting started guide for more information: https://viteplus.dev/guide/
vp iRead CONTRIBUTING.md before reporting a bug or opening a PR.
Have a feature request? Start an Ideas discussion.
Need support? Join the Discord.