1# Install T3 Code
2
3T3 Code runs coding agents on your computer and lets you control them from its
4desktop, web, or mobile app. Set up the machine where the agents will work first.
5
6## Requirements
7
8You need an installed, authenticated provider before starting a thread. You can
9launch T3 Code and configure providers afterwards.
10
11## Command line
12
13```bash
14curl -fsSL https://t3.codes/install.sh | sh
15```
16
17On Windows, in PowerShell:
18
19```powershell
20irm https://t3.codes/install.ps1 | iex
21```
22
23This installs the `t3` binary to `~/.local/bin`. If your shell reports `command not found`
24afterwards, that directory is not on your `PATH` yet; the installer prints the
25line to add. Set `T3CODE_CHANNEL=nightly` to install the nightly train, or
26`T3CODE_VERSION` to pin an exact version.
27
28| Task | Command |
29| ------------------------------------------------ | --------------------------------------------------------- |
30| Start the server and open the web app | `t3` |
31| Start the server without a browser | `t3 serve` |
32| Keep it running in the background (macOS, Linux) | `t3 service install` ([details](./background-service.md)) |
33| Move to the newest release | `t3 update` |
34| Remove it again | `t3 uninstall` |
35
36Run `t3 help` or `t3 --help` for the full reference. To start in a new working
37directory, use an explicit path such as `t3 ./my-project`. A bare directory name
38is accepted only if it already exists.
39
40If `t3` or `t3 start` reports an already running server, connect to that server
41instead. Stop it before starting a replacement, or use a different `--base-dir`
42for an independent server.
43
44To try T3 Code once without installing it, run `npx t3@latest` instead (needs
45Node.js for `npx`).
46
47### Intel Macs
48
49There is no `t3` executable for Intel Macs (the desktop app is available). To
50run a server there, build it from source with Node.js 24 and `vp`
51([Install vp](https://github.com/pingdotgg/t3code#install-vp)):
52
53```bash
54git clone https://github.com/pingdotgg/t3code
55cd t3code && vp i && vp run build:desktop
56node apps/server/dist/bin.mjs
57```
58
59`t3 update` and the background service do not apply to a server run this way;
60update it with `git pull` and a rebuild.
61
62## Desktop app
63
64Download a release from [GitHub Releases](https://github.com/pingdotgg/t3code/releases),
65or use a package manager:
66
67| Platform | Install |
68| ------------------ | ---------------------------------- |
69| Windows | `winget install T3Tools.T3Code` |
70| macOS | `brew install --cask t3-code` |
71| Debian, Ubuntu | `sudo apt install ./T3-Code-*.deb` |
72| Arch Linux | `yay -S t3code-bin` |
73| Arch Linux nightly | `yay -S t3code-nightly-bin` |
74
75The `.deb` updates itself like the other desktop builds. It asks for your
76password to install each update. If your desktop has no password prompt, the
77update fails. Download the new `.deb` and install it the same way.
78
79### The `t3` command
80
81The desktop app includes the `t3` command-line tool. To run it from any
82terminal, open **Settings → General → About** and choose **Install** next to
83**t3 command**. On macOS and Linux it adds a `t3` link to a folder on your
84`PATH`; on Windows it adds the app's command folder to your `PATH`. Open a new
85terminal afterwards. **Remove** takes it off again. If you already have `t3`
86from npm, it stays as it is.
87
88### Windows Subsystem for Linux
89
90Choose a WSL distro in **Settings → Connections** to run agents and projects
91there. Install the provider CLIs inside that distro. T3 Code installs its own
92server runtime there automatically; the first launch after an app update can
93take longer.
94
95### Open a project from a terminal
96
97With the desktop app already running on the same machine:
98
99```bash
100t3 app
101```
102
103This opens a new thread for the current directory, adding the project if needed.
104Pass a path, such as `t3 app ../my-project`, to open another directory. It requires
105the desktop app, so a standalone server or an SSH session is not enough. If the
106command cannot reach the app, start or update the desktop app and try again.
107
108## Mobile app
109
110Install T3 Code from the
111[App Store](https://apps.apple.com/us/app/t3-code-remote-claude-more/id6787819824) or
112[Google Play](https://play.google.com/store/apps/details?id=com.t3tools.t3code).
113The phone connects to a server on another machine. Follow
114[remote access](./remote-access.md) to link it through T3 Connect or a pairing URL.
115
116Nightly builds need the beta app. The store apps cannot connect to them. A Nightly build also
117shows these links as QR codes in **Settings → General → Mobile app**.
118
119- **iPhone and iPad:** join the [TestFlight beta](https://testflight.apple.com/join/XgaxaRtd).
120- **Android:** download and install the APK from the
121 [Android beta release](https://github.com/pingdotgg/t3code/releases/tag/android-nightly).
122
123If the app crashes during launch, open Settings → Diagnostics on the next launch
124that succeeds. It lists startup crashes from the last 7 days with the error and
125component stack that store crash reports leave out. Copy the report and paste it
126into a GitHub issue. Error messages can quote values from the app, so read it over
127before sharing.
128
129## Providers
130
131Open **Settings → Providers** in the web or desktop app, select the environment,
132and enable the provider you want. Installation, login, and configuration belong
133to that environment's machine, even when you connect from a phone or another
134computer.
135
136| Provider | Install and authenticate |
137| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
138| Codex | [Connect with ChatGPT](./providers-codex.md#connect-with-chatgpt), or install [Codex CLI](https://developers.openai.com/codex/cli) and run `codex login`. |
139| Claude | Install [Claude Code](https://claude.com/product/claude-code), then run `claude auth login`. |
140| Cursor | Install [Cursor CLI](https://cursor.com/cli), then run `agent login`. |
141| Grok Build | Install [Grok Build CLI](https://x.ai/cli), then run `grok login`. |
142| OpenCode | Install [OpenCode](https://opencode.ai), then run `opencode auth login`. |
143| Antigravity | Install and sign in with Google from T3 Code's provider settings. |
144| Pi | Install [Pi](./providers-pi.md#set-up-pi) with Node.js 22.19 or newer, then run `pi` and `/login`. |
145| Muse Code | Install [Muse Code](https://dev.meta.ai/docs/muse-code) on the server, run `muse login`, then enable it in Settings → Providers. |
146
147Provider CLIs must be on the server's `PATH`. If T3 Code cannot find one, set its
148**Binary path** in provider settings, especially when using a version manager.
149Cursor's executable is `cursor-agent`, although its login command is
150`agent login`. Codex connected through ChatGPT and Antigravity can use their
151managed runtimes without a `PATH` entry.
152
153T3 Code warns when a provider version has known compatibility problems with your
154release. Check **Settings → Providers** on that environment for the recommended
155version or range. When its package manager supports installing a specific version,
156you can install the recommendation there. Otherwise use the provider's installer
157on the environment's machine. An unlisted version is unverified.
158
159When a provider CLI is behind its latest release, its provider card shows the
160available version. **Update now** runs the installer that owns the CLI
161(Homebrew, or a global npm, pnpm, Yarn, Bun, Volta, or Vite+ install), or the
162CLI's own update command when T3 Code cannot tell. Update a CLI installed with
163mise through mise. Cursor and Antigravity update with T3 Code. Homebrew installs
164compare against the version Homebrew offers, which can trail the npm release by
165a few hours.
166
167Add another provider instance for a separate account or configuration. Each
168instance can have its own environment variables, such as API keys or a custom
169base URL. Mark secret values as sensitive; after saving, T3 Code does not display
170their original values.
171
172For provider-specific setup and accounts, see [Codex](./providers-codex.md),
173[Claude](./providers-claude.md), [OpenCode](./providers-opencode.md),
174[Antigravity](./providers-antigravity.md), [Pi](./providers-pi.md), and
175[Muse Code](./providers-muse.md).
176
177## Next steps
178
179- [Working with threads](./thread-sidebar.md): start tasks and organize parallel work.
180- [Permission modes](./permission-modes.md): choose when agents ask before acting.
181- [Remote access](./remote-access.md): connect from another device.
182- [Running in the background](./background-service.md): keep a Linux or macOS host available.
183- [Updating T3 Code](./updating.md): update the app and connected servers.