This is a personal fork of pingdotgg/t3code. The upstream README starts below the line. Each fork behavior is a setting that starts on when it only adds something, and off when it changes behavior, installs or restarts anything, changes access or needs setup. Settings > Fork shows every fork setting, in the groups of this list. Each line links to its section in docs/fork/features.md. Maintainer procedures: docs/fork/operations.md.
Remote access
- Cloudflare Access login: the server accepts the Cloudflare Access JWT as the owner login.
- Request headers per environment: a saved environment sends its own headers, for example a Cloudflare Access service token.
- Tunnel pairing: a desktop server on loopback makes pairing links with its tunnel URL.
- Trusted sibling environments: one browser page pairs with and reaches the other hosts.
- Quiet reconnect after restart: right after the app starts, the composer waits before it warns that a server is reconnecting (off by default).
Machine map (all lines need machineMap, which a join to a map turns on)
- Portal: one portal at
t3.yarden-zamir.commaps every T3 machine, adds phones with an app invite, and sets access between them. - Environment name from machine map: an optional setting keeps environment names equal to machine map names, also after a name change.
- Portal views: Map, Table, Health, Settings, Queue, Tasks, History, Inbox and Clients.
- Work on other machines: an arrow with agent tools makes the other machine a linked environment, where agents delegate tasks within their own limits. Each arrow lists what it allows, only the owner raises it, and History lists each forwarded call.
- Join and install: "Add machine" shows one command per system that installs the fork and joins.
- Join feedback: the open join dialog shows when a machine uses the code, and whether it connected.
- Emergency pause: a big red button stops all agents and sets all access to none.
- Scheduled tasks: the Tasks view lists the scheduled tasks of every machine.
- Health alerts: CPU, memory, disk, swap and battery alerts per machine.
- Installable portal: the portal installs as an app, with Web Push for alerts.
- Settings and theme sync: a setting with a shared value syncs to every machine, also themes and keybindings.
- Settings > Machines: join or leave the map, and see the machines that this machine can reach.
- Desktop app on the map: the desktop app adds each reachable machine as an environment.
- Zoom and pan: the map zooms, pans and fits all cards, with "Auto layout".
- Approved clients: a new browser waits until the owner approves it.
- Client access: each machine decides which browsers get in through Cloudflare Access; an open browser waits for approval when its access changes.
- Owner-only access changes: only the owner changes
clientAccessandmachineMap, and only the owner raises access between machines. - Sibling client sessions: a browser client session lasts 1 day, also on sibling machines.
- App invites and app tokens: "Invite an app" shows a QR code that a native app uses once.
- Machines panel: a read-only map in the right panel of a thread.
Updates and releases
- Fork releases: nightly desktop builds and Linux server archives from fork main.
- Daily release: each morning a VPS task promotes the newest nightly to a release with highlighted notes.
- Android APK: a signed APK of fork main that installs next to the store app.
- Fork installers: one command installs the fork and joins the machine map.
- Install when idle: while agents run, the update offers "Install when idle".
- Server auto-update: a headless server installs each newer fork release when idle.
- Newer update before install: the desktop app checks for a newer release before it installs.
- Changelog: a timeline of fork releases, upstream commits and Fork Sync runs.
- Local deploy:
scripts/fork-deploy-local.sh <ssh-host>deploys this checkout to a headless Linux server. - Local Mac build:
scripts/fork-desktop-mac.shbuilds and signs the Mac app from this checkout. - Central build caches: opt-in Vite caches and Android app outputs outside checkouts, with central-only pruning.
- Fork Sync: a workflow merges upstream main into fork main; a T3 task on the VPS starts it every 2 hours.
- Fork CI: runs on each push and pull request to main; branch protection requires "Fork CI result".
- Repair agent: a failed Fork Sync, Fork Release or Fork CI run on main calls an agent on the VPS, which repairs it with the scripts of the fork-repair skill.
Agents
- Recover interrupted agents: after a restart, each cut-off thread gets a "Recover and continue" message.
- Background work details: background work notifications name their tasks and output files.
- Pull requests from origin: a fork checkout uses the pull requests of its fork, not of upstream.
- Pull request watch remark filter: select which comments and reviews wake a watching agent.
- Agent session import limits: the import window and the message limit for imported sessions.
- Scheduled task model: a scheduled task runs on any provider instance, or on the project default model.
Threads
- Restore worktrees on resume: recover a missing checkout from its saved branch and run project setup before continuing (off by default).
- Artifact-only worktree cleanup: evict ignored build outputs before dependencies, keep checkouts and branches, and report logical bytes per folder type (off by default; no orphan cleanup).
- Sidebar tabs: tabs above the sidebar list that hold threads, filled by drag or by rules. Mobile shows and edits them too.
- Snooze quick options: edit the choices of the snooze menus.
- Worktree path template: a template decides where new worktrees go.
- Thread link chips: every thread link in chat shows as an attached-thread chip.
- Message links: copy a link from each message to open the thread at that message.
- Thread addresses open the desktop app: a thread address from Slack or GitHub opens the desktop app.
- New thread on mobile: New thread in the mobile app opens the project list, the last project, or no project.
- Camera in the mobile composer: the plus button of the mobile composer can take a photo.
- Android assistant panel: the Android assistant button starts a thread with the screen.
- Read aloud on mobile: hear a reply, or every new reply of a thread.
Filters
- Repository owner filters: filter the pull request page and the sidebar by repository owner.
- Pull request filter chips: the active pull request filters show as chips.
Scripts and terminal
- Global scripts: scripts for every project, pinned buttons, desktop global shortcuts, floating previews and app overlays.
- App toggle shortcuts: global keys that show and hide the desktop app.
- Keyboard focus levels: Escape moves focus between composer, timeline and sidebar; arrow keys move a cursor.
- Shortcuts in tooltips: control tooltips show the keys of the control as chips.
- Keyboard cheat sheet:
mod+/lists every key that works, with the area you are in first. - Terminal settings: app shortcuts first in the terminal, and a confirmation before a terminal closes.
Web app and look
- Installed web app: each server web app installs as an app, with an offline page and an app badge.
- Web Push: a phone gets thread notifications while the app is closed, with registration retries and a separate failure status.
- Thread card layouts: build the thread card from its elements, for desktop and for mobile.
- Local server groups: the browser Local servers list also shows servers that no T3 terminal started.
- Theme style: published themes set shape, fonts, a canvas pattern and user CSS.
- Theme icon packs: a published theme replaces app icons with its own SVGs.
- Themes on mobile: the mobile app uses the published themes of its servers, with their fonts, shape and canvas pattern.
- Fork settings on mobile: a Fork page in the mobile Settings.
- Lightning icon: the fork app and the Android APK use their own icon.
- Back and forward: back and forward buttons in the title bar, and a desktop back history that stays after a restart.
Command line and MCP
t3 tool:t3 tool list,describeandcallrun T3 MCP tools from the command line.- Open workspace with a checkout: the desktop open-workspace request accepts a checkout.
- Themes: border width and radius flow through Tailwind tokens. Composer backdrop, outline and banners follow the theme radius. One theme shadow for nested surfaces and for split buttons.
- MCP:
schedule_task,t3_project_createandt3_project_updateread and write the project model, environment mode, auto-pull and actions through project settings. - Desktop updates: the updater never downgrades, so a local build stays installed. The server recovers when quit-and-install does not quit.
- Worktree launch: a worktree request in Scratch runs in a thread folder. A worktree request outside a Git repository runs in the project folder and says so in the thread. A launch refuses a new worktree branch that already exists.
- Queue: a resumed queued turn shows after the turns that ran before it. A paused queue shows while a turn runs. Resume waits for an edit and for a usage limit. Send now on a stopped thread also waits for a usage limit.
- Machine map: an expired machine arrow ends the sessions that it granted.
- Device panel: a Homebrew Android SDK (
android-commandlinetools) works withoutANDROID_HOME, also when theadbonPATHhas no emulator.
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.
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.
curl -fsSL https://t3.codes/install.sh | shOn Windows, in PowerShell:
irm https://t3.codes/install.ps1 | iexThen run t3 to start the server and open the local web app. t3 service install keeps it running in the background, t3 update moves to a newer release, and t3 --help has the full reference.
To try it once without installing, run npx t3@latest instead.
Install the latest version of the desktop app from GitHub Releases, or from your favorite package registry:
winget install T3Tools.T3Codescoop install extras/t3codebrew install --cask t3-codeDownload the .deb from GitHub Releases, then:
sudo apt install ./T3-Code-*.debStable:
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
- Appearance preferences
- Remote access from a phone or another machine
- Connect Claude Code, Codex, ChatGPT and other agents over MCP
- 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.