T3 Code is an open-source application that provides a unified interface for managing AI coding resources. Developed by the team behind the T3 ecosystem, it allows developers to run coding resources on their own devices and control them through desktop, web, and mobile applications.
Instead of introducing a new AI coding model, T3 Code works with agents already used by developers, such as Claude Code, OpenAI Codex, Cursor, OpenCode, Grok Build, and Google Antigravity. The application essentially serves as a control center for various existing coding tools, allowing users to manage their work sessions without having to constantly switch between different interfaces.
Features
Multiple AI Coding Agents
T3 Code supports several popular coding agents through their existing installations and authentication systems.
Supported providers include:
Claude Code
OpenAI Codex
Cursor
OpenCode
Grok Build
Google Antigravity
Pi
Muse Code
fx
This bring-your-own-agent approach means users can use their existing subscriptions and authentication rather than purchasing another AI coding service specifically for T3 Code.
Each provider runs in the environment where it is installed. Developers can configure multiple provider instances and accounts, making it easier to switch between different models and coding tools.
Desktop, Web, and Mobile Access
One of T3 Code's strongest features is its cross-platform control system.
The desktop application uses Electron, while the web interface provides browser-based access. Dedicated mobile applications for iOS and Android allow developers to monitor and control coding sessions from their phones.
This is particularly useful when an agent is performing a lengthy task. Developers can start work on their computer and continue monitoring progress from another device.
Remote Development
T3 Code supports remote environments through T3 Connect, direct network pairing, and SSH connections.
This allows developers to run coding agents on a workstation or remote Linux machine while controlling them from another computer or mobile device.
The actual execution remains on the host machine. Project files, provider credentials, terminals, and agent processes stay in their original environment rather than being transferred to the client.
For developers with dedicated development servers, this provides a convenient way to manage AI-assisted coding without keeping the desktop application open on their primary computer.
Parallel Agent Workflows
T3 Code organizes development work into projects and threads. Developers can create separate tasks, manage multiple conversations, and run agents against different projects.
This makes it easier to delegate independent tasks to different agents instead of relying on one conversation for everything.
Project management and thread organization also help keep development context separate, especially when working on several repositories simultaneously.
Permission Management
Running AI coding agents with access to project files and terminal commands requires proper permission controls.
T3 Code provides several permission modes:
Supervised: Requests approval for commands and file changes.
Auto-accept edits: Automatically approves file edits while other actions can still require approval.
Auto: Uses the provider's automatic review capabilities where supported.
Full access: Allows commands and edits without approval prompts.
These settings can be configured for individual threads, with project and environment defaults available.
Permission behavior can differ between providers, so users should not assume that every agent implements the same restrictions.
Git and Source Control Integration
T3 Code includes source control functionality for working with Git repositories and pull requests.
It supports GitHub, GitLab, Forgejo, Gitea, Bitbucket, Azure DevOps, and GitCafe.
Developers can clone repositories, review changes, create branches, commit modifications, push code, and create pull requests through the application.
This integration makes T3 Code more than a simple interface for agent conversations. It also provides tools for managing the development workflow around those agents.
MCP Integration
T3 Code includes an MCP server that allows external AI agents to interact with its projects and threads.
This is useful for developers who want to connect additional AI tools or automation systems to their existing T3 Code environment.
It also supports workflows involving agents that were not originally launched by T3 Code, extending its functionality beyond the built-in provider integrations.
Download T3 Code v0.1.9 - Software Mirrors |
|---|
T3 Code v0.1.9 for WindowsT3-Code-0.1.9-x64.exe | 310.46 MB T3-Code-0.1.9-arm64.exe | 284.34 MB t3-0.1.9-win32-x64.zip | 127.81 MB t3-0.1.9-win32-arm64.zip | 99.76 MB |
T3 Code v0.1.9 for macOST3-Code-0.1.9-x64.zip | 187.2 MB T3-Code-0.1.9-x64.dmg | 194.32 MB T3-Code-0.1.9-arm64.zip | 179.22 MB T3-Code-0.1.9-arm64.dmg | 186.32 MB t3-0.1.9-darwin-arm64.tar.gz | 109.55 MB |
T3 Code v0.1.9 for LinuxT3-Code-0.1.9-x86_64.AppImage | 204.96 MB T3-Code-0.1.9-arm64.deb | 156.3 MB T3-Code-0.1.9-arm64.AppImage | 197.27 MB T3-Code-0.1.9-amd64.deb | 167.36 MB t3-0.1.9-linux-x64.tar.gz | 142.21 MB t3-0.1.9-linux-arm64.tar.gz | 133.6 MB |
T3 Code v0.1.9 Source Code
T3 Code v0.1.9 Source code (zip)
T3 Code v0.1.9 Source code (tar.gz)
|
T3 Code v0.1.9 Release Notes: v0.1.9 · 198 changes from 31 contributors
- T3 Connect agent sign-in. Approve agent sign-ins with T3 Connect instead of copying a pairing code.
- Send during uploads. Send messages with attachments while they are still uploading.
- Claude session approvals. Allow an MCP app for a Claude session instead of approving each action individually.
- Screen reader announcements. Hear agent messages and steps during a turn without leaving the composer.
- GitLab revert. Revert a merged GitLab merge request from T3 Code.
- OpenCode goals. Use OpenCode's native goals and keep their state in sync across clients.
- Pull request links. Open pull request links directly to their referenced comment, diff line, checks, or commit.
Plus 164 more bug fixes and performance improvements.
Full changelog
What's Changed- fix(web): checking for updates finds provider updates on every machine by @t3dotgg in #33538
- fix(web): settings say custom instructions cover pull request descriptions by @maria-rcks in #33113
- feat(web): send messages while attachments upload by @maria-rcks in #33092
- fix(mobile): Android PDF preview double-tap zoom and easier link taps by @juliusmarminge in #33570
- feat: approve agent sign-ins with T3 Connect instead of a code by @juliusmarminge in #33600
- fix(mobile): the composer and search bars move with their iOS columns by @juliusmarminge in #33543
- ci(mobile): build Android store releases on Blacksmith by @juliusmarminge in #33565
- fix(web): thread title menu opens without a half-second wait on desktop by @t3dotgg in #33598
- fix(web): a new side chat focuses its message input by @darioielardi in #32929
- perf(opencode): bound usage reads to in-window messages by @Yash-Singh1 in #33612
- chore(web): upgrade @pierre/diffs to 1.7 and use its built-in find by @juliusmarminge in #33627
- fix(web): expanding hidden diff context works after a diff refresh by @juliusmarminge in #33629
- feat: approve agent sign-ins on app.t3.codes with T3 Connect by @juliusmarminge in #33632
- perf(cursor): improve account usage scanning by @Yash-Singh1 in #33636
- fix(web): dropdown items over the desktop title bar respond to clicks by @screen-gd in #32643
- fix: hosted agent approval no longer fails with "Your session cannot approve" by @juliusmarminge in #33645
- fix(web): new threads use the last used project by @Yash-Singh1 in #33626
- fix(mobile): distinguish local ACP instances by name by @shivamhwp in #32467
- ci(mobile): dev clients build on Blacksmith, and mobile:install starts that build by @juliusmarminge in #33617
- fix(mobile): Android sidebar and composer transitions no longer reflow at rest by @juliusmarminge in #33599
- fix(server): price Antigravity Gemini Flash effort variants by @Ephraim-9 in #13809
- fix(mobile): Android feed stays at its end after the keyboard or sidebar changes by @juliusmarminge in #33611
- fix(server): Antigravity install no longer fails on a stale Windows Crashpad pipe by @juliusmarminge in #26374
- ci(mobile): Android PR preview clients build on Blacksmith by @juliusmarminge in #33618
- fix(web): scrolling pans expanded images and Mermaid diagrams by @shivamhwp in #26630
- fix(desktop): agents see visible:true while the desktop shows their tab by @shivamhwp in #23589
- fix(server): allow requested WebMCP writes by @shivamhwp in #26570
- fix(antigravity): resolve model names from usage metadata by @Yash-Singh1 in #33661
- fix(web): show details for background commands by @Yash-Singh1 in #33647
- fix(ci): store-build checkouts drop credentials without submodule cleanup by @juliusmarminge in #33664
- fix(web): "Use T3 Code in another app" opens the Grok Bot app by @juliusmarminge in #33663
- ci(mobile): keep the Android store AAB as a workflow artifact by @juliusmarminge in #33674
- fix(mobile): hide compose in the detail rail while starting a task by @juliusmarminge in #33678
- ci(mobile): version bump commits no longer credit Codex by @juliusmarminge in #33689
- fix(server): stop PR watch flapping while workflows await approval by @shivamhwp in #24599
- fix(server): show idle paragraphs before the assistant turn ends by @shivamhwp in #28221
- fix(mobile): fit usage view selector beside the date range at large text by @PixPMusic in #33682
- fix(web): center short PR titles in thread details by @Yash-Singh1 in #33724
- fix(server): Claude threads can allow an MCP app for the session by @t3dotgg in #33707
- fix(web): reclaim notice says the machine will be offline by @shivamhwp in #33730
- fix(server): detaching a session no longer strands its pending approval by @juliusmarminge in #33535
- fix(opencode): long command turns no longer fail when the command request times out by @juliusmarminge in #27677
- fix(server): a queued message that names no model keeps the model picked ahead of it by @juliusmarminge in #33591
- fix(ssh): tunnel readiness no longer counts ssh's connection time by @juliusmarminge in #33554
- fix(server): preview_evaluate accepts top-level await by @juliusmarminge in #31925
- fix(server): quitting no longer restarts the relay client mid-shutdown by @juliusmarminge in #33628
- fix(shared): relative Windows file links open the file by @juliusmarminge in #33643
- fix(server): a steer that restarts a completion wake no longer strands later subagent results by @juliusmarminge in #33469
- fix(server): provider status checks no longer make mise download missing CLIs by @juliusmarminge in #33448
- fix(forgejo): find merged pull requests whose head branch was deleted by @juliusmarminge in #33675
- perf(shared): speed up escaped Markdown in long PR descriptions by @AksharP5 in #33438
- fix(server): a background agent tab survives a desktop window reload by @juliusmarminge in #33666
- fix(server): Commit, push & PR no longer pushes the default branch into itself by @juliusmarminge in #33695
- fix(acp): OMP threads show html_render pages by @juliusmarminge in #33677
- fix(ssh): Intel Mac hosts no longer try to download a missing t3 archive by @juliusmarminge in #33325
- fix(server): opening the branch menu no longer wipes PR status by @juliusmarminge in #33263
- fix(server): failed updates report download diagnostics by @tanav29 in #33239
- fix(web): remote Lineage rows keep their title when the environment name is long by @f4llenz in #33181
- fix(web): custom snooze footer stays inside the dialog by @juliusmarminge in #33759
- fix(desktop): right-clicking a mailto link offers Copy Email Address by @juliusmarminge in #33262
- fix(acp-registry): commands past the 128th are no longer dropped by @juliusmarminge in #33768
- fix(server): one finished turn looks up its branch's pull request once by @juliusmarminge in #33752
- fix(mobile): Android Files sheet scrolls its tree instead of dragging the sheet by @RadekManak in #33223
- fix(web): prompt suggestions show after a steered turn by @thelogicmatrix in #33706
- fix(server): usage prices Claude Mythos 5.2 from its Bedrock rate by @juliusmarminge in #33721
- fix(server): Claude turns whose CLI exits before its first frame fail instead of running forever by @juliusmarminge in #33008
- fix(web): panel resize handles follow touch drags by @juliusmarminge in #33066
- fix(server): signed-out Claude instances with their own config dir name it in the sign-in hint by @juliusmarminge in #32951
- perf(server): opening a long thread reads from its latest segments, not its whole history by @t3dotgg in #33305
- fix(server): repos without a remote no longer record failed spans on status refresh by @ferhtgoldaraz in #32905
- fix(mobile): missing files in previews name the checked path instead of asking to reconnect by @juliusmarminge in #32994
- fix(server): a restart that misses its turn starts as a new turn by @juliusmarminge in #32899
- fix(desktop): new browser tabs no longer lose waits, clicks and snapshots for good by @juliusmarminge in #32861
- fix(web): Go to source on a side chat quote keeps you on its parent thread by @juliusmarminge in #33160
- fix(server): removing a queued completion message keeps its siblings' wakes by @juliusmarminge in #32815
- fix(server): dev database seed drops active pull request watches by @juliusmarminge in #32744
- fix(server): capture iOS screenshots on Xcode 26's simctl by @shivamhwp in #28353
- fix(mobile): medium Android windows keep the rail's room and the sidebar's place by @dongxingong in #33021
- fix(web): notify when a new request replaces the pending one in a run by @juliusmarminge in #32719
- fix(server): Codex first-request usage limits keep their reset time by @shivamhwp in #27791
- fix(web): minimap next turn is disabled at the bottom of a thread by @juliusmarminge in #33038
- fix(cursor): a steer keeps the prompt it interrupted by @juliusmarminge in #32583
- test: remove redundant short-string truncation test by @t3-code-bot[bot] in #33867
- fix(pi): Pi models whose provider ID contains a slash can be selected by @juliusmarminge in #32585
- perf(server): MCP tool calls no longer read the caller's whole thread by @t3dotgg in #33295
- fix(ssh): concurrent launches on one remote home share one server by @juliusmarminge in #32587
- fix(mobile): iOS 18 iPad sidebar and thread feed start below the header by @juliusmarminge in #32936
- fix(web): Tab reaches the add-project and new-project submit buttons by @juliusmarminge in #32605
- fix(web): screen readers hear the add-project submit shortcut by @juliusmarminge in #32576
- fix(server): Antigravity limits read the quota host the account is metered on by @juliusmarminge in #32425
- fix(web): the thread menu works for an older settled thread the sidebar hasn't loaded by @juliusmarminge in #32507
- fix(opencode): show questions asked while OpenCode wakes a session on its own by @juliusmarminge in #32434
- fix(server): blank .gitignore lines no longer make checkpoints drop new files by @juliusmarminge in #32374
- test(web): minimap next-turn test no longer flakes after a resize by @t3dotgg in #33964
- feat(opencode): mirror native goals across clients by @Yash-Singh1 in #33758
- feat(web): bindable shortcut to regenerate a thread's title by @sharanry in #33987
- fix(server): linked projects keep their repository identity while it refreshes by @juliusmarminge in #32359
- fix(mobile): tool call commands are highlighted and monospaced like on web by @juliusmarminge in #33957
- fix: Claude monitor wakes no longer fire a completion alert per line by @juliusmarminge in #32520
- fix(server): removed thread worktrees keep their project's skills in the picker by @juliusmarminge in #32471
- fix(web): drag command palette threads into the composer by @Yash-Singh1 in #33990
- fix(shared): show zero seconds in minute durations by @Yash-Singh1 in #33994
- fix(web): closing the right panel returns focus to where it was by @juliusmarminge in #32569
- fix(server): say why threads without a project are unavailable by @juliusmarminge in #32342
- fix: chat file links open the file agents cite by @juliusmarminge in #33943
- fix(clients): scroll truncated command output notice with logs by @Yash-Singh1 in #34011
- fix(web): show app bundle icons and open apps from markdown links by @Yash-Singh1 in #33950
- feat(opencode): project native todo updates into checklists by @Yash-Singh1 in #34000
- fix(antigravity): recognize Gemini 4 Carbon and its quota by @DrSeedon in #33991
- perf(client): reopening a finished command row no longer refetches its output by @juliusmarminge in #34002
- perf(server): user-only message reads use the user-message index for ordinals by @juliusmarminge in #33009
- fix(web): keep HTML previews anchored when accordions expand by @Yash-Singh1 in #34003
- fix(web): preserve search result titles in drag previews by @Yash-Singh1 in #34017
- fix: file links with line ranges open at their first line by @juliusmarminge in #34006
- fix(codex): show image generation tool calls by @Yash-Singh1 in #34020
- fix(pi): a steer Pi has not read yet shows as waiting, not steered by @juliusmarminge in #33982
- fix(server): provider switches hand off started cancelled runs by @juliusmarminge in #34016
- fix(web,mobile): replace sparkles icons and ban them with a lint rule by @flamboh in #25422
- fix(github): a proxy's 403 with Retry-After is no longer reported as a rate limit by @juliusmarminge in #33676
- fix(web): sending from an empty citation comment clears the composer by @juliusmarminge in #33440
- fix(server): text generation fallback respects project provider settings by @Muzammil-Bit in #33741
- feat(usage): show Muse Code limits, and xAI and Antigravity accounts from a CLIProxyAPI hub by @StiensWout in #33800
- fix(web): preserve previews during attachment preparation by @Yash-Singh1 in #33949
- fix(desktop): input during window teardown no longer throws in the main process by @juliusmarminge in #33620
- fix(web): sent messages keep the numbers written on list items by @tsapa44 in #33820
- fix(server): quitting stops an agent-device daemon left by an earlier server by @juliusmarminge in #33587
- fix(mobile): attaching larger images no longer crashes with a BigInt error by @juliusmarminge in #34087
- feat(mobile): pick a voice environment once, then its method by @juliusmarminge in #34073
- fix(server): a t3 thread send to a finished delegated child notifies its parent by @juliusmarminge in #33446
- fix(web): question panel header text sits centered in its row by @juliusmarminge in #34095
- feat(scripts): scenarios prove a fix in the real app with e2e, on web and iOS by @juliusmarminge in #34007
- feat(claude): Fable resets are offered and redeemed apart from weekly resets by @juliusmarminge in #34106
- fix(desktop): desktop IPC only answers the main app window by @juliusmarminge in #34094
- feat(server): voice models reuse copies already on disk by @juliusmarminge in #34096
- fix(web): scroll project picker to top on first result by @Yash-Singh1 in #34113
- feat(opencode): track native image job outcomes and previews by @Yash-Singh1 in #34089
- fix(scripts): scenarios run where localhost resolves to IPv6 first by @juliusmarminge in #34121
- ci: browser secret helper apt step fetches fewer indexes by @t3dotgg in #33966
- fix(client-runtime): a search query pasted from github.com lists pull requests again by @juliusmarminge in #30150
- fix(web): tighter outdated-conversation cards in the PR code panel by @Yash-Singh1 in #34140
- fix(web): MCP App cards no longer flash white in dark mode while the app loads by @juliusmarminge in #33352
- fix(peer): link requests use the addresses the app already has for a machine by @t3dotgg in #34139
- fix(server): Find frees searched thread text after one idle minute by @t3dotgg in #34132
- fix(web): settings search shortcuts follow the physical key on non-US layouts by @juliusmarminge in #33395
- fix(server): import Codex chats moved into a project from the scratch folder by @juliusmarminge in #32880
- fix(desktop): clear stale GPU caches when the Electron version changes by @juliusmarminge in #33641
- fix(web): PR links jump to the comment, diff line, checks or commits they name by @Yash-Singh1 in #33989
- fix(cli): installers retry transient GitHub errors by @juliusmarminge in #32913
- fix(web): opening the terminal with Cmd+J no longer re-renders the whole sidebar by @juliusmarminge in #33129
- refactor(web): remove icon morphing by @maria-rcks in #33985
- feat(opencode): track native shell jobs across turns by @Yash-Singh1 in #34141
- fix(server): restart send stops a Claude turn and runs the message next by @juliusmarminge in #32902
- fix(shared): login-shell environment probe ignores DEBUG trap output by @juliusmarminge in #32646
- fix(web): make Q&A option outlines visible across themes by @Yash-Singh1 in #34178
- fix(web): hide empty replies when renders show the result by @Yash-Singh1 in #34182
- fix(web): mouse tilt wheel no longer switches threads on Windows and Linux desktop by @juliusmarminge in #32963
- fix(web): timeline minimap preview no longer steals hover or jumps around by @NoomStuff in #32151
- fix(server): auto thread sends queue while a turn is stopping by @tanav29 in #34163
- fix(server): stream the usage-scan cache to disk instead of one string by @juliusmarminge in #34030
- fix(clients): images the agent opens stay visible in the chat by @fedeinfe in #30473
- fix(client-runtime): pasted repository page URLs clone the repository into its own folder by @juliusmarminge in #32681
- fix(web): trackpad flicks over the right panel tabs no longer navigate back by @juliusmarminge in #33396
- fix: new threads move from draft to Working in one step by @juliusmarminge in #33783
- fix(gitlab): review comments can cover a range of lines by @TonybynMp4 in #30535
- test(web): right panel tab swipe test runs as macOS on any CI host by @juliusmarminge in #34191
- fix(shared): cite assistant messages with IDs over 512 characters by @juliusmarminge in #28084
- fix(server): updates copy the database while the server still runs when it cannot be cloned by @binjamshid in #33058
- fix(mobile): file links in question cards open the file viewer by @juliusmarminge in #29151
- fix(server): cloning into a stranded clone project's empty folder reuses that project by @juliusmarminge in #33439
- fix(desktop): stable updates no longer show a nightly's release notes by @juliusmarminge in #32832
- fix(shared): Open in Zed ignores the OpenZFS zed daemon on Linux by @juliusmarminge in #33479
- fix(mobile): chat code blocks colour diff, kotlin, sql and other languages again by @juliusmarminge in #33680
- fix(server): fork Claude threads after project root changes by @juliusmarminge in #22836
- fix(web): snooze times read naturally in context menus by @TonybynMp4 in #24945
- feat(web): label chips show the label's description on hover by @TonybynMp4 in #28732
- feat(web): composer strip names the worktree folder by @TonybynMp4 in #28459
- feat(gitlab): revert a merged merge request by @TonybynMp4 in #30556
- fix(claude): version errors from a custom endpoint no longer say to run claude update by @binjamshid in #34176
- fix(web): files marked Viewed stay folded when a pull request's Code tab opens again by @Umais-Adeed in #34168
- feat(server): watched GitHub pull requests react to host events, not only the 2-minute sweep by @juliusmarminge in #33548
- fix(server): hide passive Claude Stop-hook summaries by @juliusmarminge in #22964
- fix(web): dismiss image path tooltips after preview and scroll by @voltcrash in #30620
- fix(server): PR sync and run-status checks stop reading whole thread histories by @juliusmarminge in #25728
- fix(server): preview snapshots keep page text beside large accessibility trees by @juliusmarminge in #33745
- feat(web): screen readers can hear the agent's messages and steps during a turn by @shivamhwp in #33900
- fix(server): thread search finds phrases inside quotes and their comments by @only21mil in #22553
- fix(web): local server cards in the browser empty state take pointer clicks by @juliusmarminge in #34050
- fix(server): worktrees cut from a non-default base no longer show the base's PR by @t3dotgg in #22861
- fix(desktop): wait for the local server to exit when quitting by @juliusmarminge in #22996
- fix(server): agent continuations preserve the working timer start by @juliusmarminge in #22947
- fix(web): disable the git actions menu when nothing in it is usable by @Serendeep in #31972
- fix(server): preserve active turns when switching provider instances by @juliusmarminge in #22755
- fix(server): scheduled task updates keep the saved workspace unless the binding changes by @juliusmarminge in #32494
- fix(web): full-screen HTML pages fit their content and zoom by reflowing by @Zeus-Deus in #22349
- fix(web): project actions auto-open Preview in web clients by @juliusmarminge in #34048
- fix(server): a follow-up delegated task waits for a run its child queued on its own thread by @juliusmarminge in #32504
New Contributors- @darioielardi made their first contribution in #32929
- @tanav29 made their first contribution in #33239
- @RadekManak made their first contribution in #33223
- @thelogicmatrix made their first contribution in #33706
- @ferhtgoldaraz made their first contribution in #32905
- @dongxingong made their first contribution in #33021
- @sharanry made their first contribution in #33987
- @tsapa44 made their first contribution in #33820
- @NoomStuff made their first contribution in #32151
- @fedeinfe made their first contribution in #30473
Full Changelog: v0.1.8...v0.1.9
|
Performance and Compatibility
T3 Code uses a local server architecture with web, desktop, and mobile clients communicating through HTTP and WebSocket connections.
The server handles agent execution, project files, terminals, provider credentials, and persistent state. This architecture allows remote clients to control development environments without moving the actual coding workload onto mobile devices.
The desktop application is available for Windows, macOS, and Linux. Mobile applications are available for iOS and Android, while the web interface can be accessed through a compatible browser.
Performance is an important design consideration, particularly when managing multiple active threads and remote environments. However, actual responsiveness also depends on the host machine, network connection, and coding agent being used.
The project is actively evolving and its documentation explicitly warns that users should expect bugs. Some features and provider integrations may also behave differently depending on their respective implementations.
System Requirements
T3 Code requires at least one supported coding agent to be installed and authenticated before developers can start using it for coding tasks.
The requirements depend on the chosen installation method:
Desktop: Install the appropriate application package for Windows, macOS, or Linux.
CLI: Use the supplied installer for supported operating systems.
Web: Run the T3 Code server on a machine accessible through a browser.
Mobile: Connect to an existing T3 Code server or remote environment.
Remote SSH environments require a supported Linux or Apple Silicon macOS host with the necessary runtime utilities.
Individual coding agents have their own system requirements and authentication procedures.
Pros and Cons
Pros
Supports multiple popular AI coding agents.
Works with existing agent subscriptions.
Provides desktop, web, and mobile interfaces.
Supports remote development environments.
Includes multiple permission modes.
Offers Git and pull request integration.
Supports MCP connections with external agents.
Open-source and MIT licensed.
Cons
Still in early development and may contain bugs.
Requires separately installed and authenticated coding agents.
Provider capabilities and permission behavior are not completely uniform.
Remote access requires a running and reachable host.
Some advanced features require additional configuration.
Not a standalone AI coding model or replacement for an agent provider.
How to Install
The easiest way to install T3 Code is through its official command-line installer.
On Linux and macOS:
curl -fsSL https://t3.codes/install.sh | sh
On Windows PowerShell:
irm https://t3.codes/install.ps1 | iex
After installation, start T3 Code with:
t3
This starts the server and opens the local web interface.
To keep the server running in the background on supported systems:
t3 service install
Alternatively, developers can use the Electron desktop application.
On Windows, installation through Winget is available:
winget install T3Tools.T3Code
On macOS:
brew install --cask t3-code
Ubuntu and Debian users can download the DEB package from the GitHub Releases page and install it using:
sudo apt install ./T3-Code-*.deb
After installing T3 Code, configure at least one supported provider and complete its authentication process.
Final Verdict
T3 Code is a compelling open-source solution for developers who already use multiple AI coding agents. Instead of competing directly with Claude Code, Codex, or Cursor, it provides a unified environment for controlling them.
Its strongest advantages are remote access, mobile support, permission management, parallel development workflows, and Git integration. These capabilities make it particularly useful for developers who run coding agents on dedicated workstations or servers.
The requirement to install and authenticate external agents may be inconvenient for beginners, and the project is still evolving. Nevertheless, its architecture and broad provider support make it an interesting alternative to proprietary agent management applications.
T3 Code is worth trying if you want to manage multiple AI coding agents from one interface without abandoning your existing subscriptions.
Sources