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.8 - Software Mirrors |
|---|
T3 Code v0.1.8 for WindowsT3-Code-0.1.8-x64.exe | 309.44 MB T3-Code-0.1.8-arm64.exe | 283.15 MB t3-0.1.8-win32-x64.zip | 127.23 MB t3-0.1.8-win32-arm64.zip | 99.19 MB |
T3 Code v0.1.8 for macOST3-Code-0.1.8-x64.zip | 186.67 MB T3-Code-0.1.8-x64.dmg | 193.72 MB T3-Code-0.1.8-arm64.zip | 178.69 MB T3-Code-0.1.8-arm64.dmg | 185.78 MB t3-0.1.8-darwin-arm64.tar.gz | 108.99 MB |
T3 Code v0.1.8 for LinuxT3-Code-0.1.8-x86_64.AppImage | 204.43 MB T3-Code-0.1.8-arm64.deb | 156.25 MB T3-Code-0.1.8-arm64.AppImage | 196.77 MB T3-Code-0.1.8-amd64.deb | 167.27 MB t3-0.1.8-linux-x64.tar.gz | 141.67 MB t3-0.1.8-linux-arm64.tar.gz | 133.03 MB |
T3 Code v0.1.8 Source Code
T3 Code v0.1.8 Source code (zip)
T3 Code v0.1.8 Source code (tar.gz)
|
T3 Code v0.1.8 Release Notes: What's Changed- refactor(android): every header goes through AppBar, so the filter stays put by @juliusmarminge in #26741
- refactor(mobile): one inspector column, declared with by @juliusmarminge in #27085
- refactor(mobile): a pane's bar draws its own sidebar toggle by @juliusmarminge in #27086
- refactor(mobile): Android's sidebar is the Home route in the sidebar column by @juliusmarminge in #27087
- feat(mobile): medium windows float the sidebar over the page by @juliusmarminge in #27088
- feat(mobile): without an inspector column, the inspector is a sheet by @juliusmarminge in #27090
- docs(mobile): the five layers of the mobile layout, with x-ray diagrams by @juliusmarminge in #27107
- refactor(mobile): the inspector's bar is its pane's AppBar by @juliusmarminge in #27205
- fix(mobile): the iPad inspector hides the sidebar where the page would get too narrow by @juliusmarminge in #27218
- fix(mobile): iPad workspace tabs live in the sidebar and leave with it by @juliusmarminge in #27229
- fix(mobile): the drawer surface is only for a sidebar beside a page by @juliusmarminge in #27289
- feat(server): list Claude models reported by Claude Code by @juliusmarminge in #30511
- fix(relay): production deploys no longer hang while computing the plan by @juliusmarminge in #30513
- fix(web): give dialog titles a readable line height by @Yash-Singh1 in #30527
- fix(tools): show images from MCP and OpenCode outputs by @Yash-Singh1 in #30389
- fix(mobile): smoother Settings and composer transitions on wide Android by @juliusmarminge in #26297
- fix(mobile): the Android split slides as one strip, so sidebar and detail pane always fill the width by @juliusmarminge in #26328
- fix(server): retry unstarted runs after recovery by @Yash-Singh1 in #30560
- perf(server): narrow agent awareness startup reads by @Yash-Singh1 in #30561
- fix(web): validate terminal links against filesystem metadata by @Yash-Singh1 in #30526
- fix(server): avoid message ordering scans during recovery and settlement by @Yash-Singh1 in #30582
- fix(client-runtime): expire missing file metadata per thread by @Yash-Singh1 in #30606
- fix(web): align usage table padding and thread status rows by @Yash-Singh1 in #30621
- fix(mobile): every Android content pane gets its rounded card from ScreenContent by @juliusmarminge in #30500
- fix(web): load selected diff metadata before file patches by @Yash-Singh1 in #30567
- test(evals): measure how agents get secrets only the user has by @gabrielelpidio in #30256
- feat(server): agents ask for secrets through request_secret instead of chat by @gabrielelpidio in #30257
- fix(relay): use released drizzle rc.5 and fail installs on unmet peers by @juliusmarminge in #31016
- build: typecheck with tsrs and Effect's rules through @effect/tsgo by @juliusmarminge in #31028
- refactor: replace jose with effect/jose by @juliusmarminge in #30474
- refactor: move HMAC, key, and random work to effect/crypto by @juliusmarminge in #30501
- refactor(server): sign server tokens through PayloadSigner by @juliusmarminge in #30523
- refactor: hold relay signing keys in EnvironmentSigningKey and CloudMintSigner by @juliusmarminge in #30529
- refactor(client-runtime): share DPoP proof creation across web and mobile by @juliusmarminge in #30540
- fix(client-runtime): a thread keeps syncing after a stream defect by @juliusmarminge in #31071
- test(server): AgentSessionScanner blocked-repo test no longer races the git-read timeout by @juliusmarminge in #30554
- test(web): PDF preview tests wait on pdf.js loads and stop timing out by @juliusmarminge in #31104
- docs: scope managed-policy LAN note to old background services by @b2bvic in #30900
- feat(server): render MCP Apps from Claude tool calls by @juliusmarminge in #29803
- build: run Effect rules on mobile and lock in clean suggestion rules by @juliusmarminge in #31111
- fix(mobile): keep iOS composer empty after sending an autocorrected word by @shivamhwp in #30308
- fix(server): idle agent tabs free a slot when the server's 32-tab browser limit is full by @shivamhwp in #24186
- fix(web): keep message navigation visible on touch when there is room by @shivamhwp in #26806
- fix(mobile): pinch wide images from anywhere in the Android viewer by @shivamhwp in #30929
- fix(mobile): preserve autocorrect in custom question answers by @shivamhwp in #30744
- fix(web): show Setting up during worktree setup by @shivamhwp in #28832
- fix(mobile): keep iOS thread menus short enough for drag selection by @shivamhwp in #30944
- fix(web): show the comparison base beside Changes totals by @shivamhwp in #30085
- fix(mobile): use H.264 for iOS previews and keep Close reachable by @shivamhwp in #28622
- fix(mobile): iOS image previews open without waiting for the gallery by @shivamhwp in #29044
- feat: optionally clone repos into ghq-style // folders by @shivamhwp in #24904
- fix(devices): explain Windows SSH host failures by @shivamhwp in #30941
- fix(web): make styled composer Markdown markers editable by @shivamhwp in #30421
- fix(mobile): configure another Claude account from Providers by @shivamhwp in #28928
- fix(web,mobile): save pull request description checkbox changes by @shivamhwp in #30704
- fix(client): a big server config on a slow link no longer drops the connection in a loop by @shivamhwp in #23758
- fix(server): restart T3 Connect's tunnel client when Cloudflare drops it by @shivamhwp in #24946
- fix(mobile): compact stale Claude threads before sending by @shivamhwp in #27935
- fix(web): show saved service access with Local environment off by @shivamhwp in #26464
- fix: keep older pending questions answerable by @shivamhwp in #26435
- fix(web): deleted forks no longer remain in Lineage by @shivamhwp in #29000
- fix(server): preserve sibling wakeups when interrupting a completion wake by @shivamhwp in #28204
- fix(server): attribute usage-limit auto-resume to T3 Code by @shivamhwp in #29838
- fix(acp): time out silent Antigravity prompts by @shivamhwp in #30377
- fix(codex): sharing usage limits offer the existing recovery options by @shivamhwp in #25341
- revert(web): working threads stay in the Working shelf when their environment disconnects by @juliusmarminge in #31269
- refactor: Effect code reads env through HostProcess.Environment by @juliusmarminge in #31218
- refactor: Effect.try calls map failures to typed errors by @juliusmarminge in #31217
- fix(web): sidebar project filter rows line up and stay still on hover by @shivamhwp in #29639
- refactor: errors are Schema.TaggedError, not Data.TaggedError or native Error by @juliusmarminge in #31216
- fix(server): a stopped run no longer shrinks thread history to one row by @shivamhwp in #31266
- fix(server): refresh divergence after a merged branch ref changes by @Yash-Singh1 in #31342
- fix(mobile): one aligned notice for ChatGPT sharing limits by @shivamhwp in #31277
- fix(mobile): composer keeps the keyboard when a queued edit ends by @shivamhwp in #31317
- fix(mobile): delivered messages no longer reappear at the bottom of reopened long threads by @saphid in #31182
- fix(threads): side chats inherit parent permissions by default by @extoci in #31114
- fix(server): threads follow their worktree's branch changes by @Yash-Singh1 in #31599
- fix(pi): usage reports include sessions stored in a --session-dir launch argument by @saphid in #30690
- perf(mobile): skip unchanged terminal toolbar fade updates by @saphid in #25312
- perf(mobile): assemble HTML replacements in one pass by @saphid in #25278
- perf(mobile): skip canceled SVG parsing by @saphid in #25314
- test(server): strengthen v1 cutover proof with event-stream waits and content snapshots by @saphid in #11869
- fix(contracts): a stored secret reference is always sensitive by @yordis in #31403
- fix(server): a settings save no longer reads an unreadable secret again by @yordis in #31226
- fix(threads): allow snoozing pending input requests by @saphid in #20058
- fix(server): repair cutover test crypto import breaking main CI by @Yash-Singh1 in #31630
- feat(server): sends can start a fresh provider session by @juliusmarminge in #30323
- feat: /clear starts a fresh session in the same thread by @juliusmarminge in #30325
- feat: scheduled tasks can run in one thread with a fresh session each run by @juliusmarminge in #30326
- fix(web): dragging a sidebar thread no longer scrolls the list out from under the pointer by @juliusmarminge in #30346
- fix(assets): preserve the PR repository for GitHub media by @juliusmarminge in #21631
- fix(server): load PR uploads from SSO organizations by @juliusmarminge in #21632
- fix(mobile): the Duo inspector stops at its widest instead of vanishing by @juliusmarminge in #31665
- test(server): launcher PATH lookup test no longer drops the Windows drive letter by @tris203 in #22534
- test(server): replay tests delete their temp directories by @only21mil in #23445
- fix(mobile): transcribe Android audio during recording by @PixPMusic in #31300
- test(web): linked-environment subagents keep opening in their own thread by @RealDoc06 in #26492
- test(server): pin post-commit outbox settle boundary by @Narayan201120 in #27560
- test: remove unreachable github cli decoding test by @t3-code-bot[bot] in #28115
- test(server): retain delegated child events when detaching a parent by @benjamin-di in #29622
- test(lint): pin which ResizeObserver constructions no-raw-resize-observer reports by @only21mil in #28781
- test(mobile): drop two deleted tests from the React test list by @only21mil in #28800
- test(web): worked-for expand test waits for the timeline to finish loading by @saphid in #29661
- test(web): avoid PDF worker startup timeouts in attachment tests by @voltcrash in #29933
- test(web): source control writing settings test waits for the reset button by @juliusmarminge in #30372
- test(web): keep the work heading test inside the viewport by @voltcrash in #30613
- test: use an empty config file instead of the null device for git fixtures on Windows by @Pyseph in #30772
- test: remove stale tests for unused thread and onboarding helpers by @t3-code-bot[bot] in #30817
- test(server): correct Windows path and settings assertions by @ElliotDrel in #30983
- feat(claude): Ultracode works with any effort, like Claude Desktop by @Bil0000 in #27034
- perf(pr): pull requests paint from data already held, on web, desktop and mobile by @Bil0000 in #27798
- fix(mobile): approval card buttons line up by @shivamhwp in #31415
- fix(gitlab): author names link to GitLab profiles by @TonybynMp4 in #30418
- fix(gitlab): merge messages drop agent credits by @TonybynMp4 in #30441
- fix(gitlab): file and image comments appear as review threads by @TonybynMp4 in #30425
- fix(web): screen readers no longer read out a secret typed into the request card by @juliusmarminge in #31653
- perf(pr): actions update every client from the host's reply instead of re-reads by @Bil0000 in #25761
- feat(mobile): start side chats with /side by @juliusmarminge in #31709
- feat(claude): expose Ultracode on Claude Sonnet 5.5 and Haiku 5.5 by @DrSeedon in #30781
- feat(settings): Simlock, Antigravity and OpenCode credentials can come from a secret provider by @juliusmarminge in #31652
- refactor(mobile): screens declare what they are; layout and AppBar own every platform bar decision by @juliusmarminge in #31310
- fix(server): a saved source control token that can't be read no longer falls back to another account by @juliusmarminge in #31646
- feat(secrets): answer a secret request with a secret provider reference by @juliusmarminge in #31670
- fix(settings): removing a secret provider clears the fields that used it by @juliusmarminge in #31651
- docs(user): explain secret providers and secret requests by @juliusmarminge in #31654
- feat(server): transcribe audio on a chosen environment by @juliusmarminge in #30625
- feat(web): opt into environment dictation on this device by @juliusmarminge in #30623
- feat(desktop): dictate into browser annotations with the same consent by @juliusmarminge in #30624
- feat(mobile): opt in to dictation on a paired environment by @juliusmarminge in #31059
- fix(web): keep the folder path caret in place while editing by @juliusmarminge in #31642
- perf(mobile): call the highlights lexer through Nitro, up to 10x faster calls on Android by @camchis in #31188
- fix(claude): turns use the downloaded model catalog by @juliusmarminge in #31717
- fix(gitlab): bot authors are flagged as bots by @TonybynMp4 in #30383
- fix(gitlab): merge requests can edit their labels by @TonybynMp4 in #30483
- perf(mobile): faster thread sync, connects, and reconnects on bad wifi by @Bil0000 in #28487
- fix(mobile): iPad composer drops when the keyboard floats or minimizes by @juliusmarminge in #31251
- perf(mobile): stop iOS syntax highlighting from looking up a thread-local on every lexer call by @camchis in #31187
- fix(gitlab): edited comments wake PR watchers by @TonybynMp4 in #30403
- fix(gitlab): merge requests can delete their source branch by @TonybynMp4 in #30453
- fix(gitlab): comments link to their note on GitLab by @TonybynMp4 in #30411
- fix(mobile): iOS terminal accepts Chinese, Japanese and Korean input by @juliusmarminge in #30546
- fix(mobile): Android app no longer stays offline after reopening by @kahlstrm in #28625
- fix(mobile): show one Android notification per thread completion by @shivamhwp in #27699
- fix(mobile): stop Android composer flicker at the wrap boundary by @shivamhwp in #27682
- fix(mobile): Android dictation works with regional preferences set by @EhsanulHaqueSiam in #31030
- fix(mobile): iOS compose button no longer grows while a tab is pressed by @Jerematix in #28955
- fix(mobile): Android terminal Backspace deletes on the first press by @only21mil in #24983
- fix(mobile): Android secret requests no longer offer password manager logins by @voida6 in #29825
- fix(mobile): iOS composer text no longer turns invisible mid-draft by @wojas in #30135
- fix(mobile): iOS 26 scroll edge effect no longer hides composer text by @wojas in #30138
- fix(mobile): typing after in-app dictation reaches the draft again on iOS by @wojas in #30139
- perf(mobile): skip obsolete queued iOS diff row decodes by @saphid in #25287
- fix(gitlab): the checks and review list filters work by @TonybynMp4 in #30433
- fix(mobile): keep Android tablet cold launches in landscape by @Dwite in #28825
- fix(pr): GitCafe attachments render in pull request bodies by @juliusmarminge in #31741
- fix(gitlab): unresolved overview threads count as review findings by @TonybynMp4 in #30397
- fix(mobile): Android alerts and the live card show the same status bar icon by @juliusmarminge in #29738
- fix(mobile): keyboard state follows Android's nonanimated IME show by @juliusmarminge in #25847
- fix(mobile): Android composer no longer accepts autofill by @juliusmarminge in #27489
- perf(mobile): skip obsolete queued full token decodes by @saphid in #25320
- fix(gitlab): threads on changed code show as outdated by @TonybynMp4 in #30423
- fix(gitlab): the checks panel lists each pipeline job by @TonybynMp4 in #28728
- perf(mobile): avoid code row scans while dragging file paths by @saphid in #25484
- fix(chat): show one usage-limit recovery notice by @shivamhwp in #29292
- fix(web): adding to the composer no longer drops earlier findings and selections by @TonybynMp4 in #24990
- feat(pull-requests): PR composers complete @user mentions by @TonybynMp4 in #30747
- feat(web): add pull request comments to the chat by @TonybynMp4 in #30579
- feat(gitlab): link issue, merge request, commit and user references by @TonybynMp4 in #30524
- fix(mobile): sending on iOS no longer leaves an autocorrected draft behind by @saphid in #26452
- feat(gitlab): reviews can request changes by @TonybynMp4 in #30549
- feat(pull-requests): PR composers complete #123 and GitLab !123 references by @TonybynMp4 in #30857
- feat(gitlab): merge requests from forks can toggle maintainer edits by @TonybynMp4 in #30518
- fix(prs): reviewer menu searches past the first page and keeps GitLab's requested reviewers by @TonybynMp4 in #22489
- fix(ui): snooze menu times match the menu's typography by @ishaanko in #30596
- feat(web): a Labs setting hides tool calls so threads read like a chat by @flamboh in #30000
- feat(scheduled-tasks): tasks link to their thread by @t3dotgg in #31764
- fix(shared): recognize numeric bare-repository config by @macodev00 in #27500
- fix(server): a command id reused for two threads at once no longer succeeds for both by @saphid in #18385
- fix(server): coalesce tool output before it fills the live buffer by @snarkyalyx in #16317
- perf(server): Windows git reads no longer start a console host by @AkiVonAkira in #19288
- fix(server): a publish whose first push fails still shows the new remote by @saphid in #29688
- fix(server): reverting files removes what a new .gitignore from the turn was hiding by @saphid in #29795
- fix(server): Codex titles no longer fail on ChatGPT accounts without gpt-6-luna by @Muzammil-Bit in #30078
- fix(desktop): quit no longer orphans a backend that is slow to stop by @saphid in #22572
- perf(server): GitHub activity reads skip PR-wide fields on later review-thread pages (8.9 s → 6.8 s median) by @Yuruzuu in #30294
- perf(server): the headless browser closes after five idle minutes (517 MiB → 1.6 MiB median) by @Yuruzuu in #30306
- fix(provider-acp-registry): surface agent error message on sign-in failure by @iScabrous in #30295
- perf(server): a slow host no longer delays other watched PRs' wakes (935 ms → 65 ms median) by @Yuruzuu in #30291
- perf(server): PR cache invalidation no longer waits on other projects' reads (1,163 ms → 0.12 ms median) by @Yuruzuu in #30293
- fix(opencode): tools stopped mid-run show as interrupted, not failed by @saphid in #29762
- fix(client-runtime): pull request bodies with CRLF line endings keep their code blocks whole by @MarcoDotIO in #30352
- fix(shared): long assistant quote chips no longer end in a broken character by @spoukyii in #30367
- fix(cli): t3 connect unlink no longer warns about a server that is gone by @MarcoDotIO in #30324
- fix(server): ACP agents get T3CODE_THREAD_ID like Claude and Codex sessions by @frankhommers in #30361
- fix(server): accept a case-insensitive DPoP authorization scheme by @spoukyii in #30337
- fix(server): usage-limit auto-resume no longer arms subagents of archived or deleted parents by @spoukyii in #30363
- fix(provider-core): background work notices no longer end in a broken character by @spoukyii in #30369
- fix(client-runtime): subagent previews no longer end in a broken character by @spoukyii in #30391
- fix(server): explain fake-IP DNS failures in HTML previews by @shivamhwp in #30318
- perf(resource-monitor): Linux terminal process checks use a third of the CPU by @jaikhuranna in #30381
- fix(server): failed Claude text generation shows Claude's error instead of raw JSON by @MarcoDotIO in #30331
- fix(server): pull request tools point a bare thread uuid at its mcp: thread by @spoukyii in #30375
- fix(server): message search keeps results when a short non-Latin word differs in case by @MarcoDotIO in #30332
- fix(web): preview annotation chip labels no longer end in a broken character by @spoukyii in #30345
- fix(server): thread titles no longer fail when the text generation provider can't run by @medric-z in #29607
- fix(web): refresh resource timeline while diagnostics is open by @shawk08033 in #30528
- fix(usage): a CLIProxy hub saved as its management.html panel URL shows accounts again by @Jolymmiles in #25579
- fix(shared): command output keeps text after an unterminated OSC by @spoukyii in #30479
- fix(cli): t3 up's retry and restart hints keep --base-dir by @spoukyii in #30480
- fix(server): a branch tracking another local branch no longer shows that branch's PR by @MarcoDotIO in #30563
- fix(web): terminal links keep route and pnpm paths in one piece by @tiliakoos in #30603
- fix(shared): CSV and TSV attachments keep their table under generic file types by @tiliakoos in #30601
- fix(server): report Claude settings compaction threshold by @voltcrash in #29220
- fix(cli): t3 project remove finds a deleted project by a relative or trailing-slash path by @MarcoDotIO in #30562
- fix(server): an invalid regex in project search still finds its text when Match case is off by @MarcoDotIO in #30569
- fix(server): agents see why a project update was refused instead of a generic failure by @MarcoDotIO in #30564
- perf(client-runtime): stop tracing streamed thread batches by @ElliotDrel in #30679
- fix(server): rewound Codex threads import their history from before the rewind by @MarcoDotIO in #30652
- fix(server): keep writes moving with a larger WAL limit by @Yash-Singh1 in #31804
- fix(opencode): edits that delete text keep their empty replacement by @Jo2234 in #30643
- fix(forgejo): read author assignees once by @Jo2234 in #30686
- fix(cli): t3 pair's no-running-server hint keeps --base-dir by @saphid in #30689
- perf(server): stop tracing routine port polling helpers by @ElliotDrel in #30678
- fix(server): ACP MCP bridge no longer splits messages on U+2028/U+2029 by @geezoria in #30719
- fix(cli): expand home-relative thread project paths by @Jo2234 in #30721
- perf(ci): boot the built web client in Build and Typecheck, not Test Web (about 22 s off the longest job) by @Pyseph in #30752
- fix(shared): ignore unfinished quoted Git config continuations by @imharjot in #30743
- fix(review-guide): preserve excerpt line terminators by @Jo2234 in #30717
- feat(pi): show extension status in existing controls by @StiensWout in #23901
- fix(fx): preserve literal unicode escape text in clipped replies by @Jo2234 in #30701
- perf(dev): knip:check runs its two passes side by side (34 s → 26 s median on 4 CPUs) by @Pyseph in #30737
- fix(shared): command output no longer prints the final byte of escape sequences with intermediates by @geezoria in #30724
- fix(web): restore folder breadcrumb trails when reopening tabs by @Jo2234 in #30706
- fix(client-runtime): sanitized error stacks keep line and column for URLs with a query by @geezoria in #30726
- fix(shared): shortened agent paths like /tmp/... no longer become broken file chips by @saphid in #30762
- fix(server): MCP auth spans no longer include the tool call by @navidnadali in #30834
- fix(server): preview browser picks up Chrome 157 security fixes by @snnbotchway in #30820
- fix(server): agents read RTF paragraphs that end with a backslash by @geezoria in #30848
- fix(server): a late checkpoint keeps the stopped run's baselines by @navidnadali in #30830
- fix(shared): preserve IPv6 hosts when switching clone protocols by @Lucenx9 in #30798
- docs: explain Linux desktop installation by @voltcrash in #30819
- perf(server): each live event is projected once for all subscribers by @navidnadali in #30860
- fix(server): request_secret asks for one value per card by @rgrvlsk in #30805
- fix(ssh): host discovery skips hidden Include matches by @Lucenx9 in #30910
- docs: clarify diagnostic exports and their separate controls by @Mr-Neutr0n in #30942
- docs: fix worktree cleanup path in FAQ by @jacobcorbett in #31000
- fix(server): a policy that manages observability endpoints is refused instead of ignored by @MarcoDotIO in #30973
- fix(client-runtime): untitled subagent titles no longer end in a broken character by @spoukyii in #30390
- fix(shared): underline styles and colours no longer scramble command output colours by @MarcoDotIO in #21542
- perf(server): batch queued provider writes without waiting by @Yash-Singh1 in #31656
- fix(server): prepare restart continuations faster on shutdown by @Yash-Singh1 in #31807
- fix(web): keep change totals aligned beside the label by @Yash-Singh1 in #31814
- fix(web): rank usage provider summaries by the selected metric by @dharmeshgurnani in #15632
- fix(server): wait for automatic follow-ups before settling threads by @Yash-Singh1 in #31815
- fix(web): settings descriptions use the full row and stay two lines by @flamboh in #31826
- fix(voice): insert Unicode word boundaries for dictation by @juliusmarminge in #31799
- fix(mobile): use preferred languages for on-device iPhone dictation by @juliusmarminge in #31800
- fix(mobile): keep the opening words of local iPhone dictation by @juliusmarminge in #31801
- fix(server): keep PR generation focused on the change by @Yash-Singh1 in #31819
- chore(desktop): trace shutdown phases by @Yash-Singh1 in #31850
- perf(server): batch shutdown recovery commits by @Yash-Singh1 in #31854
- perf(server): batch projection recovery reads into one query by @Yash-Singh1 in #31842
- fix(desktop): let the window shrink to 400x360 so it fits half-screen tiles by @shivamhwp in #28223
- fix(web): improve Changes row text and spacing by @shivamhwp in #31858
- feat(server): stop opted-in project actions when threads settle by @Yash-Singh1 in #31857
- fix(build): skip Koffi source builds during cross-packaging by @Yash-Singh1 in #31864
- fix(server): Antigravity installs on Intel Macs by @aledog007 in #30189
- fix(desktop): arm64 macOS builds no longer ship x64-only objc-js binary by @joshuarossi in #31285
- fix(web): keep task updates static in the timeline by @Yash-Singh1 in #31888
- fix(devices): keep devices listed when simulator discovery fails by @shivamhwp in #25971
- fix(web): dragging a sidebar thread no longer scrolls the list to the bottom by @juliusmarminge in #27691
- fix(web): tagging a thread by drag no longer scrolls the sidebar by @t3dotgg in #31924
- ci: stacked PRs stop evicting the shared pnpm cache by @t3dotgg in #31937
- fix(web): remote subagents no longer split from the lineage list by @t3dotgg in #29285
- perf(ci): release uploads stop recompressing installers and CLI archives by @t3dotgg in #31942
- feat(antigravity): identify as T3 Code to agy acp 1.5.1+ by @patrick-toulme in #31158
- ci(release): JS bundle jobs stop building an unused Linux helper by @t3dotgg in #31941
- feat(marketing): help search engines tell t3.codes apart from copycat sites by @t3dotgg in #31142
- perf(server): background service launcher uses 75% less memory by @t3dotgg in #29284
- fix(azure-devops): a fork's same-named branch no longer hides the branch's own pull request by @saphid in #29817
- perf(server): provider-thread reads start from owned rows, not every node of the thread by @juliusmarminge in #31012
- perf(server): stop tracing the per-event background-work probe by @juliusmarminge in #31584
- perf(server): stop tracing each transcript file in usage scans by @juliusmarminge in #31586
- perf(cursor): stop tracing the per-event account usage hash by @juliusmarminge in #31017
- fix(muse): recover from unavailable session views by @Sidreyas in #32154
- feat(web): sort and filter transcription models by @voltcrash in #32045
- fix(azure-devops): existing pull requests are found for branches containing # by @aotradovec in #31928
- perf(server): background PR discovery no longer delays git status after a restart by @juliusmarminge in #32162
- fix(web): the citation comment box opens at the quote instead of sliding in from the corner by @juliusmarminge in #32141
- fix(clients): dictating a citation comment or preview annotation uses the full width by @juliusmarminge in #32142
- fix(web): PR bodies keep before/after video tables intact by @bartlomiejbloniarz in #25988
- perf(release): fetch the nightly Android APK in a background step by @t3dotgg in #31949
- perf(release): macOS CLI notarization no longer blocks the desktop build by @t3dotgg in #31945
- ci(release): npm publish no longer checks out and installs the workspace by @t3dotgg in #31936
- ci(release): macOS arm64 stops compressing a pnpm store it cannot save by @t3dotgg in #31955
- fix(web): relay-connected microphone destinations authorize speech requests by @juliusmarminge in #31778
- fix(server): a usage-limit auto-resume survives a server restart by @shivamhwp in #31292
- fix(mobile): review diff no longer goes blank after switching sections by @juliusmarminge in #27960
- fix(mobile): iOS filter menus close back into their pill without clipping or garbling by @juliusmarminge in #31168
- fix(mobile): Android composer renders DM Sans by @juliusmarminge in #30230
- fix(desktop): open Teams web in the preview browser by @shivamhwp in #31489
- fix(web): popovers over the desktop header respond to the pointer by @shivamhwp in #31794
- fix(web): add installable icons for Firefox on Android by @shivamhwp in #30420
- fix: show latest reply age in active thread rows by @shivamhwp in #31825
- fix(mobile): keep settled status pills readable by @shivamhwp in #31635
- fix(mobile): preserve line breaks in Markdown table cells by @shivamhwp in #29355
- fix(mobile): stop the work-row shimmer from updating every frame by @shivamhwp in #28530
- fix(server): t3 service install no longer moves a --base-dir service onto an empty ~/.t3 by @shivamhwp in #23878
- feat(voice): opt into cloud dictation with OpenAI, Grok, or OpenRouter by @juliusmarminge in #31769
- fix(web): make first-run dictation setup discoverable by @juliusmarminge in #32197
- fix(web): first-run voice setup offers a model for the user's language by @juliusmarminge in #32035
- feat: auto-settle inactive threads after 7 days by default by @t3dotgg in #32325
- docs(updates): say when Update all leaves a provider out by @Djordje-Stojanovic in #32269
- test(server): three more tests stop assuming a POSIX host by @MikaMcFlurry in #32263
- fix(server): git failures are read in English when macOS git follows the system language by @jason5545 in #32252
- fix(marketing): balance fork and download heading text by @extoci in #32194
- perf(shared): scan usage-limit support once per provider catalog by @luke2x in #32179
- fix(pi): the T3 MCP extension file is written atomically by @rishabhx29 in #32231
- fix(web): the main sidebar stays collapsed after relaunch by @shivamhwp in #24202
- fix(codex): explain speed limits on managed connections by @shivamhwp in #30322
- fix(web): isolate scrollbar styles from iframe owners by @Yash-Singh1 in #32398
- fix(azure-devops): default-branch lookup no longer fails for missing --repository by @voltcrash in #29586
- perf(server): avoid lsof polling when Linux proc is usable by @voltcrash in #30011
- fix(providers): remove incomplete ChatGPT connections by @voltcrash in #29280
- fix(acp): retain streamed child tool output by @StiensWout in #32411
- fix(web): recover ACP settings when projects change by @StiensWout in #32409
- fix(shared): inline code like
allocator.cc:217 becomes a file chip by @felixlaga in #32403 - fix(server): theme files saved with a UTF-8 BOM are published instead of rejected by @felixlaga in #32405
- fix(grok): long command titles no longer end in a broken character by @felixlaga in #32408
- fix(github): keep review-required until required reviewers approve by @wSedlacek in #32395
- feat(web): delete archived threads from the archive page by @voltcrash in #22160
- fix(provider-acp): preserve UTF-8 across interleaved terminal streams by @StiensWout in #32391
- fix(pi): preserve explicit thinking when switching models by @StiensWout in #32389
- fix(acp): bound unread raw notification retention by @StiensWout in #19585
- fix(web): keep Pi thinking controls visible before selection by @voltcrash in #27397
- fix(desktop): published themes reach the app when it uses this machine's service by @not-compromised in #26324
- fix(antigravity): check account access after installation by @Yash-Singh1 in #32446
- fix(acp): preserve native form questions and typed answers by @StiensWout in #19659
- fix(antigravity): explain missing SOCKS dependency during refresh by @StiensWout in #19660
- fix(cursor): use the SDK account for usage data by @Yash-Singh1 in #32448
- fix(web): agent sign-in defaults to Auto access by @flamboh in #32186
- fix(gitlab):
glab mr accept counts as a shell merge by @felixlaga in #32400 - fix(forgejo): tea's
pull and m aliases count as shell merges by @felixlaga in #32401 - fix: side chats start with the parent's permission mode and reasoning level by @Iweisc in #32315
- fix(mobile): center the Choose project empty-state buttons by @juliusmarminge in #27450
- fix(mobile): Android terminal sends hardware-keyboard arrows, Tab, and Escape to the PTY by @only21mil in #32666
- fix(mobile): group settled PR threads in the continue menu by @arifali123 in #27941
- fix(mobile): shorten the model picker save action by @PixPMusic in #32551
- fix(mobile): center Android header confirmation buttons by @PixPMusic in #32239
- fix(muse): a declined /compact reports its reason and no longer wedges the thread by @juliusmarminge in #28454
- fix(web): restore bold weight in rendered Markdown by @juliusmarminge in #25694
- fix(web): device tool update buttons fit their popovers by @juliusmarminge in #27030
- fix(web): mobile sidebar keeps its width when shelves expand by @juliusmarminge in #27541
- fix(web): lineage phase headers truncate instead of overflowing the details card by @juliusmarminge in #27582
- fix(server): storage report lists project worktrees nested inside plain folders by @juliusmarminge in #25883
- fix(scripts): report:renders starts on Windows without a vp shim by @only21mil in #32777
- perf(server): skip oversized history during handoff selection by @AksharP5 in #23821
- feat(antigravity): support agy CLI as custom binaryPath by @jorotodorovv in #32503
- fix(mobile): share PDFs from the Android attachment viewer by @shivamhwp in #32266
- fix(server): saved preview screenshots keep full resolution by @TonybynMp4 in #28255
- fix(server): refresh linking tools in existing agent sessions by @shivamhwp in #26737
- feat(server): html tools take a file path, so agents stop retyping pages by @t3dotgg in #32833
- fix(search): keep whole-word title matches above busy prefixes by @shivamhwp in #32242
- fix(connect): show why relay unlink failed by @shivamhwp in #25198
- fix(mobile): keep scheduled task prompts clear of microphone by @shivamhwp in #32498
- feat(web,mobile): move a scheduled task to another thread by @binjamshid in #31379
- perf(server): Codex tool calls no longer wait on reasoning summaries by @t3dotgg in #31149
- fix(web): fill combobox search fields by @shivamhwp in #32926
- fix(server): mise-installed providers update through mise instead of their own updater by @ryanrhughes in #21524
- perf(sidebar): avoid full git status for branch labels by @StiensWout in #32947
- perf(desktop): speed up cold Linux x64 backend startup by @StiensWout in #32987
- fix(clients): unloaded thread links show their title and project icon by @Yash-Singh1 in #32830
- fix(clients): parse angle-bracketed thread link destinations by @ScriptedAlchemy in #30709
- fix(desktop): prepare server bytecode on Linux ARM64 by @Yash-Singh1 in #33050
- fix(desktop): open cursor:// and vscode:// file links from chat by @fixfon in #23486
- perf(server): batch worktree branch allocation and avoid path collisions by @StiensWout in #32934
- perf(server): skip unnecessary worktree cleanup scans by @StiensWout in #32933
- fix(server): wake idle parents for late delegated results by @StiensWout in #32573
- fix(mobile): keep side chats readable over the conversation by @PixPMusic in #32240
- fix(desktop): declare Calendar access for hosted commands by @Lenoridev in #21592
- fix(server): macOS Bash terminals now start as login shells by @fixfon in #22295
- fix(web): keep the wide table scrollbar visible when it overflows by @fixfon in #24084
- fix(web): file chip tooltips show the whole path by @Princeyadav05 in #27993
- fix(web): sidebar search results can be dragged onto the composer by @root-daemon in #28016
- fix(server): allow slow Antigravity browser preflights by @maria-rcks in #25211
- fix(server): name rejected certificates when linking peers by @maria-rcks in #28060
- fix(web): terminal types macOS Option-layer characters by @neominik in #21596
- fix(web): boring sidebar threads drag onto the composer again by @juliusmarminge in #26724
- fix(web): Copy MCP URL uses the T3 Connect address by @t3dotgg in #32937
- fix(web): cmd+shift+o picks the current project before pinned ones by @t3dotgg in #33109
- fix(server): respect gh Unix sockets for GitHub requests by @voltcrash in #27733
- perf(mobile): thread list resumes from the saved cache, and large gaps reload over gzip HTTP by @juliusmarminge in #32287
- feat(mobile): iOS socket compresses traffic by @juliusmarminge in #32288
- perf(server): macOS worktrees open 2x faster by cloning a cached checkout by @t3dotgg in #32927
- fix(web): mic button always sits next to send by @t3dotgg in #33133
- feat: Settings reclaims freed database space in one click by @t3dotgg in #32941
- fix(github): hidden GitHub comments and reviews no longer show in T3 Code by @t3dotgg in #33134
- feat(mobile): long-press an image to save it to Photos by @t3dotgg in #29598
- feat(settings): clean up Labs: promote tool calls, remove plan mode and old toggles by @t3dotgg in #33131
- feat: Labs option to suggest your next prompt after Claude and Codex turns by @t3dotgg in #28047
- fix(antigravity): agy CLI threads open in Full access and Auto-accept edits by @t3dotgg in #33143
- test(web): OpenInPicker announcement test no longer hears the previous test by @t3dotgg in #33139
- ci(release): retry transient GitHub API errors when resolving the release commit by @t3dotgg in #33149
- fix(muse): retries show while Muse waits and fold away once it recovers by @t3dotgg in #33151
- feat(cli): npx t3 offers to install the t3 command by @t3dotgg in #33150
- fix(web): removing a secret provider lists the Simlock tokens that read from it by @MarcoDotIO in #31754
- fix(server): a duplicate variable row no longer deletes a stored secret by @juliusmarminge in #31337
- chore(mobile): sync Enriched Markdown with upstream 1d00a92a by @juliusmarminge in #32180
- feat(mobile): Mermaid and math fences render like they do on web by @juliusmarminge in #32190
- feat(desktop): a fresh install sets up the t3 command by @t3dotgg in #33153
- fix(release): Windows signing retries transient Azure Trusted Signing errors by @t3dotgg in #33148
- fix: secret cards show the agent's sign-in link as a button by @t3dotgg in #33157
- ci(release): scheduled nightly checks read 10 KB instead of 28 MB by @t3dotgg in #33141
- docs(secrets): sign op in with a service account or Connect on remote servers by @yordis in #31760
- fix(provider-core): agents ask for a sudo password through the private secret card by @juliusmarminge in #27748
- ci(release): Linux desktop builds reuse cached AppImage, FPM, and 7-Zip downloads by @t3dotgg in #33142
- ci(release): hosted web alias job checks out 3 files, not the repo by @t3dotgg in #33145
- ci: startup and sidebar changes open the seeded thread before merge by @t3dotgg in #33146
- refactor(mobile): components/ui platform primitives are iOS files with .android overrides by @juliusmarminge in #33173
- FEATURE: Fast and Ultrafast service tiers for Pi models by @bmdavis419 in #33177
- fix(mobile): older chat messages show the date, not just the time by @t3dotgg in #33189
- feat: text generators let model APIs write titles, commits, and transcript cleanup by @juliusmarminge in #33147
- fix(mobile): feature screens use the components/ui menu, dialog and search primitives by @juliusmarminge in #33193
- fix(web): Markdown tasks no longer stay checked after their source is unchecked by @juliusmarminge in #27353
- fix(web): return focus to composer after timeline prompts by @Yash-Singh1 in #33192
- fix(mobile): SVG markers with orient="auto-start-reverse" no longer crash Android by @juliusmarminge in #32812
- fix(mobile): Android keyboard clipboard pastes fold into attachments by @only21mil in #24482
- fix(mobile): text no longer clips in Android desktop windows on external displays by @satchlj in #19064
- fix(mobile): compose button no longer covers the last tab on iPhone by @juliusmarminge in #32995
- fix(mobile): accept image drops in the iOS message input by @12ya in #25532
- fix(mobile): Android chip taps open the chip from either half by @maria-rcks in #33126
- fix(mobile): iOS Agent Activity widget shows your agents instead of a blank tile by @shivamhwp in #21163
- fix(mobile): Android navigation bar follows the app theme by @vinceglb in #27576
- fix(android): keep diagonal horizontal swipes inside HTML blocks by @none23 in #21652
- fix(mobile): keep Android live activity independent of alerts by @PixPMusic in #24933
- fix(desktop): update xa11y to 0.15.4 so App Shots read window text faster by @MatthewFeroz in #33135
- feat(source-control): add Cursor Origin provider by @maria-rcks in #33093
- perf(mobile): sign DPoP proofs natively, up to 355x faster on Android by @camchis in #31998
- feat(marketing): localize the site in 8 languages by @maria-rcks in #33155
- fix(mobile): iOS terminal can copy, paste, and stop freezing by @t3dotgg in #25828
- feat(web,mobile): @-mention a model to name it for the agent by @ScriptedAlchemy in #31207
- fix(server): delegated Claude tasks report the model that ran by @shivamhwp in #27753
- fix(mobile): nested code blocks no longer overlap the next message on Android by @juliusmarminge in #28524
- refactor: upgrade Legend List to 3.7.2 and drop our list workarounds by @jmeistrich in #28125
- fix(mobile): select file text across lines on Android by @shivamhwp in #31286
- fix(mobile): restore the sidebar toggle and drop the inspector toggle on iPhone Duo by @juliusmarminge in #33213
- fix(server): phones get the approval push when a subagent waits by @shivamhwp in #24079
- fix(deps): update vulnerable dependencies and lockfile resolutions by @juliusmarminge in #33226
- fix(mobile): Android sends with Return on a hardware keyboard by @shivamhwp in #21687
- fix(server): include thread titles in MCP links by @shivamhwp in #33255
- fix(composer): persist model picks before the next message by @shivamhwp in #31739
- fix(server): Codex /goal no longer tries to create the goal twice by @t3dotgg in #33260
- fix(server): steering during a Claude compaction shows it stopped, not failed by @t3dotgg in #33291
- fix(server): background command results reach a running Codex goal by @t3dotgg in #33268
- perf(mobile): threads open over the socket without an extra HTTP round trip by @t3dotgg in #33306
- feat(web,server): use T3 Code in another app (MCP) by @t3dotgg in #33196
- feat(web): first run is one Welcome page instead of a 3-step wizard by @t3dotgg in #33209
- fix(desktop): chat videos go fullscreen across the whole screen again by @Luca-Lucidera in #25835
- fix(desktop): recording cursor stays above modal dialogs and popovers by @mateusjunges in #27046
- perf(web): changing file counts no longer re-render the chat view by @Yuruzuu in #28571
- fix(desktop): a window saved 1px past a display edge reopens where it was by @Abhishek-B-R in #28638
- fix(web): open citation comments with the caret at the end by @kimkhoi2202 in #28667
- fix(desktop): page redirects during loading no longer show a navigation error by @shivamhwp in #28814
- fix(web): banner button hover follows the banner's rounded corners by @Byntham in #29018
- fix(web,mobile): per-thread auto-settle menu says what it does by @iamabhishekt in #29025
- perf(web): switching threads no longer re-renders every sidebar row by @Yuruzuu in #29150
- fix(web): deleting an archived thread also clears its draft, staged uploads and terminal state by @saphid in #29164
- perf(web): Appearance settings no longer re-probe fonts on every open by @chelokot in #29171
- fix(desktop): discover browser profiles in XDG config home by @voltcrash in #29243
- fix(desktop): annotating inside a page's dialog no longer closes it by @thatsnoi in #29287
- fix(desktop): preserve concurrent downloads with the same name by @voltcrash in #29308
- fix(web): removing a queued message's attachment counts as an edit when its run starts by @saphid in #29601
- fix(web): keybinding settings recognize the previewOpen condition by @saphid in #29642
- fix(web): thread navigation shortcuts honor previewFocus and previewOpen conditions by @saphid in #29678
- fix(web): editing a scheduled task shows its saved time when the hour has one digit by @saphid in #29851
- perf(web): long reasoning previews format in linear time (600 ms → 1.3 ms median) by @Yuruzuu in #30038
- fix(web): keep typed unpublished variable rows across settings re-deliveries by @justsrc in #30115
- fix(web): deleting the open thread no longer opens a side chat or subagent by @spoukyii in #30370
- fix(web): review findings handed to a thread no longer end in a broken character by @spoukyii in #30392
- fix(web): project content search no longer opens a result on an IME Enter by @spoukyii in #30448
- refactor(shared): simplify remote branch filtering by @roxvi in #30456
- fix(web): an IME Escape no longer sends the file picker or content search back to the palette by @spoukyii in #30467
- fix(composer): bound long path search requests on web and mobile by @Jo2234 in #30714
- fix(web): rich text previews keep paragraphs that end with a backslash by @geezoria in #30812
- fix(web): deleting a thread clears its side chats' drafts by @saphid in #29832
- fix(mobile): thread row timers no longer reflow the title every second by @juliusmarminge in #33447
- fix(mobile): smooth expand/collapse when the feed is at the bottom by @juliusmarminge in #33449
- fix(mobile): keep project and environment pickers reachable with the keyboard up by @juliusmarminge in #33456
- chore(mobile): update Expo SDK 58 and React Native native modules by @juliusmarminge in #33228
- ci: give Release Smoke 15 minutes by @juliusmarminge in #33478
- chore(mobile): update gesture handler and keyboard controller by @juliusmarminge in #33229
- fix(source-control): nightly CLI builds again without Cursor Origin's undici import by @juliusmarminge in #33483
- fix(mobile): the thread feed re-wraps once when an iOS column resizes by @juliusmarminge in #33459
- fix(speech): match reference benchmarks to transcription hardware by @UtkarshUsername in #31956
- feat(models): add Claude Fable 5.2 by @t3dotgg in #33500
- fix(mobile): the chat inset resets after the keyboard closes while frozen by @juliusmarminge in #33501
- fix(mobile): a full swipe on a thread row finishes even if the pan is cancelled by @juliusmarminge in #33492
- fix(client): finishing a long background thread no longer freezes the app by @juliusmarminge in #33503
- feat(models): the model picker checks for new models when it opens by @t3dotgg in #33511
- fix(desktop): close focused DevTools with Cmd+W by @Yash-Singh1 in #33518
- chore(mobile): update react-native-pdf-jsi to 6.1.0 and link it on Android only by @juliusmarminge in #33504
- fix(mobile): the unfolded Duo sidebar no longer pops back in while resizing Files by @juliusmarminge in #33510
- fix(models): new models also surface the CLI update that supports them by @t3dotgg in #33515
- fix(web): clicked workspace areas no longer show the focus ring after a stray key by @t3dotgg in #33525
- chore(server): update Claude Agent SDK to 0.3.321 by @t3dotgg in #33530
New Contributors- @b2bvic made their first contribution in #30900
- @benjamin-di made their first contribution in #29622
- @ElliotDrel made their first contribution in #30983
- @DrSeedon made their first contribution in #30781
- @kahlstrm made their first contribution in #28625
- @Jerematix made their first contribution in #28955
- @snarkyalyx made their first contribution in #16317
- @Muzammil-Bit made their first contribution in #30078
- @iScabrous made their first contribution in #30295
- @frankhommers made their first contribution in #30361
- @medric-z made their first contribution in #29607
- @shawk08033 made their first contribution in #30528
- @Jolymmiles made their first contribution in #25579
- @geezoria made their first contribution in #30719
- @navidnadali made their first contribution in #30834
- @Mr-Neutr0n made their first contribution in #30942
- @jacobcorbett made their first contribution in #31000
- @dharmeshgurnani made their first contribution in #15632
- @aledog007 made their first contribution in #30189
- @joshuarossi made their first contribution in #31285
- @patrick-toulme made their first contribution in #31158
- @Sidreyas made their first contribution in #32154
- @aotradovec made their first contribution in #31928
- @bartlomiejbloniarz made their first contribution in #25988
- @Djordje-Stojanovic made their first contribution in #32269
- @MikaMcFlurry made their first contribution in #32263
- @arifali123 made their first contribution in #27941
- @jorotodorovv made their first contribution in #32503
- @ScriptedAlchemy made their first contribution in #30709
- @Lenoridev made their first contribution in #21592
- @Princeyadav05 made their first contribution in #27993
- @root-daemon made their first contribution in #28016
- @satchlj made their first contribution in #19064
- @vinceglb made their first contribution in #27576
- @Luca-Lucidera made their first contribution in #25835
- @mateusjunges made their first contribution in #27046
- @iamabhishekt made their first contribution in #29025
- @chelokot made their first contribution in #29171
- @thatsnoi made their first contribution in #29287
- @justsrc made their first contribution in #30115
- @roxvi made their first contribution in #30456
Full Changelog: v0.1.7...v0.1.8 |
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
Post a Comment/Report Broken Link: