T3 Code on Linux

Install T3 Code on Arch via the AUR, on Ubuntu and Debian via the AppImage, or run it headless with npx — plus systemd and remote server notes.

Last reviewed · verified against the pingdotgg/t3code repo

Arch gets a packaged build. Everything else uses the AppImage or npx — which, on a headless server, is what you want anyway.

Arch Linux and derivatives#

bash
yay -S t3code-bin

Works on Manjaro, EndeavourOS and other Arch derivatives. The -bin suffix means it packages the prebuilt release rather than compiling from source, so updates are fast.

Ubuntu, Debian, Fedora and others#

No native package yet. Use the AppImage from the releases page:

bash
chmod +x T3Code-*.AppImage
./T3Code-*.AppImage

If it fails to start on a recent distribution, you are probably missing FUSE 2, which many AppImages still require:

bash
# Ubuntu / Debian
sudo apt install libfuse2

# Fedora
sudo dnf install fuse-libs

To extract and run without FUSE at all:

bash
./T3Code-*.AppImage --appimage-extract
./squashfs-root/AppRun

Any distribution: npx#

bash
npx t3@latest

This is the path to prefer on servers, in containers, and on any distro where you'd rather not manage an Electron bundle.

Set up a provider#

bash
npm i -g @openai/codex
codex login
codex --version

On Linux this is usually the easy part, because the desktop environment and your shell share a PATH far more reliably than they do on macOS or Windows.

Headless servers#

Linux is the natural home for an always-on agent box:

bash
# bind to the Tailscale interface
npx t3 serve --host "$(tailscale ip -4)"

# or let Tailscale terminate HTTPS
npx t3 serve --tailscale-serve
npx t3 serve --tailscale-serve --tailscale-serve-port 8443

Over plain SSH, without a VPN:

bash
# on the server
npx t3 serve --host 127.0.0.1

# from your laptop
ssh -N -L 3773:127.0.0.1:3773 user@server

Then open http://localhost:3773 locally. Full remote guide →

Running it as a service#

To survive reboots and logouts, wrap it in a user systemd unit at ~/.config/systemd/user/t3code.service:

ini
[Unit]
Description=T3 Code server
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/npx t3 serve --host 127.0.0.1
Restart=on-failure
Environment=PATH=/home/YOU/.local/bin:/usr/local/bin:/usr/bin

[Install]
WantedBy=default.target
bash
systemctl --user daemon-reload
systemctl --user enable --now t3code
loginctl enable-linger "$USER"   # keep it running after logout

Set PATH explicitly in the unit. systemd services get a minimal environment, and this is the most common reason a service-managed instance can't find codex.

Adding projects on a server#

The GUI can't add projects to a remote environment yet. On the server:

bash
t3 project

See the CLI reference.

Desktop integration for the AppImage#

The AppImage won't appear in your application launcher by default. Either install AppImageLauncher, or write a .desktop file into ~/.local/share/applications/.

FAQ#

How do I install T3 Code on Arch Linux?#

Run yay -S t3code-bin from the AUR. It installs the prebuilt release, so there is no compile step.

Is there a .deb or .rpm for T3 Code?#

Not currently. On Ubuntu, Debian and Fedora, use the AppImage from the GitHub releases page or run npx t3@latest.

Why won't the T3 Code AppImage start on Ubuntu?#

Most often a missing FUSE 2 library. Install libfuse2, or extract the AppImage with --appimage-extract and run ./squashfs-root/AppRun directly.

Can I run T3 Code as a systemd service?#

Yes, as a user unit running npx t3 serve. Set the PATH environment variable explicitly in the unit file, since systemd provides a minimal environment that usually won't include your provider CLI.