| 1 | # Install T3 Code |
| 2 | |
| 3 | T3 Code runs coding agents on your computer and lets you control them from its |
| 4 | desktop, web, or mobile app. Set up the machine where the agents will work first. |
| 5 | |
| 6 | ## Requirements |
| 7 | |
| 8 | You need an installed, authenticated provider before starting a thread. You can |
| 9 | launch T3 Code and configure providers afterwards. |
| 10 | |
| 11 | ## Command line |
| 12 | |
| 13 | ```bash |
| 14 | curl -fsSL https://t3.codes/install.sh | sh |
| 15 | ``` |
| 16 | |
| 17 | On Windows, in PowerShell: |
| 18 | |
| 19 | ```powershell |
| 20 | irm https://t3.codes/install.ps1 | iex |
| 21 | ``` |
| 22 | |
| 23 | This installs the `t3` binary to `~/.local/bin`. If your shell reports `command not found` |
| 24 | afterwards, that directory is not on your `PATH` yet; the installer prints the |
| 25 | line 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 | |
| 36 | Run `t3 help` or `t3 --help` for the full reference. To start in a new working |
| 37 | directory, use an explicit path such as `t3 ./my-project`. A bare directory name |
| 38 | is accepted only if it already exists. |
| 39 | |
| 40 | If `t3` or `t3 start` reports an already running server, connect to that server |
| 41 | instead. Stop it before starting a replacement, or use a different `--base-dir` |
| 42 | for an independent server. |
| 43 | |
| 44 | To try T3 Code once without installing it, run `npx t3@latest` instead (needs |
| 45 | Node.js for `npx`). |
| 46 | |
| 47 | ### Intel Macs |
| 48 | |
| 49 | There is no `t3` executable for Intel Macs (the desktop app is available). To |
| 50 | run 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 |
| 54 | git clone https://github.com/pingdotgg/t3code |
| 55 | cd t3code && vp i && vp run build:desktop |
| 56 | node apps/server/dist/bin.mjs |
| 57 | ``` |
| 58 | |
| 59 | `t3 update` and the background service do not apply to a server run this way; |
| 60 | update it with `git pull` and a rebuild. |
| 61 | |
| 62 | ## Desktop app |
| 63 | |
| 64 | Download a release from [GitHub Releases](https://github.com/pingdotgg/t3code/releases), |
| 65 | or 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 | |
| 75 | The `.deb` updates itself like the other desktop builds. It asks for your |
| 76 | password to install each update. If your desktop has no password prompt, the |
| 77 | update fails. Download the new `.deb` and install it the same way. |
| 78 | |
| 79 | ### The `t3` command |
| 80 | |
| 81 | The desktop app includes the `t3` command-line tool. To run it from any |
| 82 | terminal, 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 |
| 85 | terminal afterwards. **Remove** takes it off again. If you already have `t3` |
| 86 | from npm, it stays as it is. |
| 87 | |
| 88 | ### Windows Subsystem for Linux |
| 89 | |
| 90 | Choose a WSL distro in **Settings → Connections** to run agents and projects |
| 91 | there. Install the provider CLIs inside that distro. T3 Code installs its own |
| 92 | server runtime there automatically; the first launch after an app update can |
| 93 | take longer. |
| 94 | |
| 95 | ### Open a project from a terminal |
| 96 | |
| 97 | With the desktop app already running on the same machine: |
| 98 | |
| 99 | ```bash |
| 100 | t3 app |
| 101 | ``` |
| 102 | |
| 103 | This opens a new thread for the current directory, adding the project if needed. |
| 104 | Pass a path, such as `t3 app ../my-project`, to open another directory. It requires |
| 105 | the desktop app, so a standalone server or an SSH session is not enough. If the |
| 106 | command cannot reach the app, start or update the desktop app and try again. |
| 107 | |
| 108 | ## Mobile app |
| 109 | |
| 110 | Install 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). |
| 113 | The 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 | |
| 116 | Nightly builds need the beta app. The store apps cannot connect to them. A Nightly build also |
| 117 | shows 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 | |
| 123 | If the app crashes during launch, open Settings → Diagnostics on the next launch |
| 124 | that succeeds. It lists startup crashes from the last 7 days with the error and |
| 125 | component stack that store crash reports leave out. Copy the report and paste it |
| 126 | into a GitHub issue. Error messages can quote values from the app, so read it over |
| 127 | before sharing. |
| 128 | |
| 129 | ## Providers |
| 130 | |
| 131 | Open **Settings → Providers** in the web or desktop app, select the environment, |
| 132 | and enable the provider you want. Installation, login, and configuration belong |
| 133 | to that environment's machine, even when you connect from a phone or another |
| 134 | computer. |
| 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 | |
| 147 | Provider 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. |
| 149 | Cursor's executable is `cursor-agent`, although its login command is |
| 150 | `agent login`. Codex connected through ChatGPT and Antigravity can use their |
| 151 | managed runtimes without a `PATH` entry. |
| 152 | |
| 153 | T3 Code warns when a provider version has known compatibility problems with your |
| 154 | release. Check **Settings → Providers** on that environment for the recommended |
| 155 | version or range. When its package manager supports installing a specific version, |
| 156 | you can install the recommendation there. Otherwise use the provider's installer |
| 157 | on the environment's machine. An unlisted version is unverified. |
| 158 | |
| 159 | When a provider CLI is behind its latest release, its provider card shows the |
| 160 | available 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 |
| 162 | CLI's own update command when T3 Code cannot tell. Update a CLI installed with |
| 163 | mise through mise. Cursor and Antigravity update with T3 Code. Homebrew installs |
| 164 | compare against the version Homebrew offers, which can trail the npm release by |
| 165 | a few hours. |
| 166 | |
| 167 | Add another provider instance for a separate account or configuration. Each |
| 168 | instance can have its own environment variables, such as API keys or a custom |
| 169 | base URL. Mark secret values as sensitive; after saving, T3 Code does not display |
| 170 | their original values. |
| 171 | |
| 172 | For 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. |