All the agents. A landscape instead of a blank canvas.
Works with your subscriptions on Claude Code, Codex, Cursor, Grok Build, and Google Antigravity. Once configured, T3 Pretty can control them.
🌄 World Scenery · 🪟 Frosted glass · 🖥️ Desktop · 🌐 Web · 📱 Mobile · MIT
A personal, style-focused fork of T3 Code. Same harness. Same subscriptions. Dressed for long sessions.
⬇ Latest release · macOS · Windows · All releases
T3 Pretty is an agent harness control surface. It runs the coding-agent CLIs already on your machine and gives you one place to steer them — from a desktop window, a browser, or a phone.
Warning
T3 Pretty currently supports Codex, Claude, Cursor, Grok Build, and Antigravity. Install and authenticate at least one provider before use:
- Codex: install Codex CLI and run
codex login - Claude: install Claude Code and run
claude auth login - Cursor: install Cursor CLI and run
agent login - Grok Build: install Grok Build CLI and run
grok login - Antigravity: enable it in Settings, then use Install Antigravity and Sign in with Google. No CLI is required.
It keeps T3 Code's workflow, providers, remote access, and data paths. The fork's job is the
look: World Scenery puts a real landscape behind frosted chrome, so the app reads as a place
rather than a flat panel. Internal package names, protocols, and ~/.t3 stay stable on purpose.
Visual changes are not allowed to trade away capability or existing state.
Important
npx t3@latest, Homebrew t3-code, and winget T3Tools.T3Code install upstream T3 Code,
not this fork. T3 Pretty is this repository. Grab a desktop build from
Latest release, run from
source (below), or install the headless server with
curl -fsSL https://pub-8033bcab5baf492b81c605581ff028e0.r2.dev/t3-pretty/latest/install.sh | sh.
World Scenery is T3 Pretty's default theme. Light, dark, or system — the palette is alpine moss and sage. Chrome is glass over a photo, not a solid slab. Settings → Appearance → Personalization has Boring for people who want the original T3 Chat colors and no landscape photos.
| What you get | |
|---|---|
| 🗺️ A place per thread | Each conversation keeps its own landscape. Home uses the photo of the day. |
| 🌫️ Fog on a new thread | A cloud bank gathers, the place name rises, the composer comes up through it. |
| 🪟 Shared glass | Left sidebar, right sidebar, composer, and terminal share one frosted plate. |
| 🎚️ Your density | Photo blur, photo presence, glass opacity, scenery text color, thread motion, fonts. |
| 🧘 Still when you want | Thread motion off, or the system reduce-motion setting, parks fades and keeps status dots still. |
Open Settings → Appearance. On a phone, Personalization and Scenery photos live in the same Appearance screen.
The product should feel calm during a long day, candid about what is running, and confident without becoming ornamental. Motion is a fade or a press — not a GPU hobby.
| Surface | What you get |
|---|---|
| 🖥️ Desktop | Electron app, product name T3 Pretty (Alpha). Hosts the local server so a phone or another machine can join. |
| 🌐 Web | The same UI, served by the local server. Pair a browser with the printed pairing URL. |
| 📱 Mobile | React Native for iOS and Android. Build from source — it is not on the App Store or Play Store yet. |
Remote is a first-class path: pair over your tailnet, scan the QR from a running server, or use Surge Connect (this fork's account mesh) so every signed-in device sees the same environments.
T3 Pretty does not sell models. It drives provider CLIs you already installed and logged into.
| Provider | CLI | Login | Default |
|---|---|---|---|
| Codex | Codex CLI | codex login |
On |
| Claude | Claude Code | claude auth login |
On |
| Cursor | Cursor CLI (cursor-agent) |
agent login |
Off |
| Grok Build | Grok Build CLI | grok login |
Off |
Install and authenticate at least one provider on the machine that runs the server. Cursor is the
one to watch: the binary is cursor-agent, the login command is agent login.
You can hand a thread to another provider mid-conversation, attach MCP Apps, load Skills, and let the agent open a pull request when it finishes.
Everything you would expect from T3 Code is still here:
- Permission modes (Supervised, Auto-accept edits, Auto, Full access)
- Worktrees, checkpoints, diffs, and a Ghostty-backed terminal
- Source control for GitHub, GitLab, Bitbucket, Azure DevOps, and Origin
- Automatic pull requests, usage, storage cleanup, project icons
- Command palette, custom keybindings, subagents
The fork syncs upstream T3 Code nightlies on a four-hour cadence and keeps Pretty-specific behavior at conflict boundaries. See docs/operations/fork-release.md.
Every merge to main publishes a desktop build. Latest release always points at the current Origin tag. All releases lists the rest.
| Platform | Installer |
|---|---|
| 🍎 macOS (Apple Silicon) | DMG |
| 🪟 Windows (x64) | NSIS |
| 🐧 Linux (x64) | AppImage |
| 📋 Release notes | Latest · All |
The installer filenames still say T3-Code-… on purpose: internal package names stay compatible with T3 Code. The app you launch is T3 Pretty (Alpha). After the first install, the desktop app updates itself from the same public feed.
The feed always lists whatever is current: macOS manifest · Windows manifest · Linux manifest. Mobile is source-only for now: apps/mobile/README.md.
Prefer a local checkout, or want to hack on the look? This is the source path.
Needs: Node 24 (^24.13.1) and Vite+ (vp).
This fork lives on Cursor Origin. GitHub is not the source of truth.
git clone https://origin.cursor.com/serbinenko/t3-pretty.git
cd t3-prettymacOS / Linux:
curl -fsSL https://vite.plus | bashWindows:
irm https://vite.plus/ps1 | iexvp i
vp run devvp run dev starts the server and web app, then prints a pairing URL. Open that full URL
(token included) in the browser. A URL without its token will not let you in. If the token was
already used, mint a fresh one with node apps/server/src/bin.ts pair.
Useful variants:
vp run dev --share # publish over your tailnet (HTTPS)
vp run dev:desktop # Electron shell against the dev server
vp run dev --helpvp run dist:desktop:dmg # macOS
vp run dist:desktop:win # Windows NSIS
vp run dist:desktop:linux # Linux AppImageArtifacts land in ./release. Local DMGs are unsigned unless you set signing credentials.
Mobile builds: apps/mobile/README.md.
Full docs live in docs/. There is no separate docs site.
Using the app
- World Scenery
- Install and first run
- Permission modes
- Keyboard shortcuts
- Message composer
- Organizing threads
- Skills · Apps · Subagents
- Remote access · Surge Connect
- Source control · Automatic pull requests
- Provider handoff
- Usage · Storage
- Project settings (including project icons) · Mobile appearance
- Keeping client and server in sync
- Run T3 Pretty as a background service (Linux and macOS)
- Providers: Codex · Claude
Working on the fork
| Upstream T3 Code | T3 Pretty | |
|---|---|---|
| Home | github.com/pingdotgg/t3code | Cursor Origin serbinenko/t3-pretty |
| Look | Stock T3 chrome | World Scenery + Pretty icon |
| Connect mesh | T3 Connect | Surge Connect (same protocol, fork relay) |
| Desktop | T3 Code |
T3 Pretty (Alpha) |
| Data | ~/.t3 |
~/.t3 (same on purpose) |
Want the original instead? T3 Code ships desktop downloads,
npx t3@latest, and mobile apps on iOS
and Android.
This is a personal fork. Pull requests belong on Origin, against main:
https://cursor.com/codebase/serbinenko/t3-pretty
Keep the change small. Say exactly what changed and why. UI needs before/after images. Motion needs a short video. Read CONTRIBUTING.md first.
Do not open review PRs against GitHub. That copy is retired.
MIT. See LICENSE.
T3 Pretty stands on T3 Code by T3 Tools. Thank you for making something worth forking.

