Skip to content

About

t3code but tailored for hyprland/workspace/virtual desktop env. Very opinionated use at your own peril

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

5,443 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T3 Code - hyprws

I hate reading agent yap in a terminal. T3 Code fixes that. Love it.

I am also particular about how my workstation is laid out. One app window holding every project feels like opening VS Code at /. Visual workspaces already solve that separation.

Upstream T3 Code is one window. hyprws allows for multiple windows, and you can set them up however you like! Select one (or more) projects in each window; Hyprland decides where it lives. They are not separate instances: every window shares one Electron process, backend, auth, providers, and state.

┌─ Virtual desktop 1 ──────────┐   ┌─ Virtual desktop 2 ──────────┐
│ T3 Code · Project A          │   │ T3 Code · Projects B, C      │
│ editor + zmux · browsers     │   │ editor + zmux · browsers     │
└──────────────────────────────┘   └──────────────────────────────┘
               └──────── one backend, one state ────────┘

My setup around it is opinionated: Hyprland, dual-monitor virtual desktops, zmux, and Worktrunk. The fork encodes none of that policy.

Multiple windows

Key Does
mod+shift+w New window on all projects
mod+alt+f Choose this window's projects
mod+alt+o Reuse a window showing this project, else open

Choose Only selected to show specific projects, or All except selected to hide selected projects and include new ones automatically. With no selection, both modes show all projects. The filter narrows lists without closing open threads.

  • Same thread: Open in New Window, both live
  • Update: back on their Hyprland workspaces
  • Old links: #/project/... links still open
windows-launch.mp4
More clips

Choose projects, exclude them, or reset to all

chooser-69eb05f7-vmon.mp4

One thread in two windows, streaming in both

windows-same.mp4

Relaunch: windows return to their workspaces

windows-restore.mp4

What else the fork adds

Every fork commit belongs to one domain, and each domain retires when upstream covers it. The fork delta owns the full list and boundaries.

Custom agents

  • Discover: native Claude and Codex agents
  • Select: one as the main thread
  • Persist: across new and resumed sessions
agents-pirate.mp4
More clips

The project agent behind it: .claude/agents/pirate.md

agents-file.mp4

Desktop dictation

  • Speak: record into an editable draft
  • Live: Meta words appear while you speak
  • Finish: commit, review, then send
  • Cancel: keep the original draft
  • Guide
live-meta-rebased-demo.mp4

Rich Markdown editing

  • Modes: Rich and Source for Markdown files
  • Save: CommonMark, GFM, frontmatter intact
  • MDX: stays a read-only preview
  • Guide
markdown-authoring.mp4
More clips

Rich and Source views of an existing file

markdown.mp4

Managed zmux terminals

  • Attach: terminals join the checkout session
  • Worktrees: new ones join the same session
  • Shared: visible from T3 Code and the CLI
  • Enable: Terminal session in Appearance
  • Guide
zmux.mp4
More clips

Open a plain shell alongside managed zmux

plain-shell-final.mp4

Worktrunk worktrees

  • Mode: New worktrunk for a thread
  • Hooks: wt hooks on create and remove
  • Proof: pre-start writes .env.local
  • Fallback: plain worktrees without wt
worktrunk-create.mp4
More clips

Removal runs pre-remove

worktrunk-remove.mp4

GitHub issues

  • Browse: issues on web and desktop
  • Detail: filters, comments, and tabs
  • Hand off: one issue to a new thread as a draft
  • Link: issues and threads in both directions
issues.mp4
Linked threads

An issue lists its linked thread

Threads

  • Group: related active threads in the sidebar
  • Fork: continue a copy on the same provider
threads.mp4

Delegated follow-up rounds

  • Continue: the same child keeps its context
  • Return: each round wakes the parent
  • Control: track or cancel the current round

Two rounds, one child: typing 8×, work 6×

retained-rounds-proof.mp4

Browser bookmarks

  • Collections: global and per project
  • Star: save, move, or remove a page
  • New tab: bookmarks listed first
  • Guide
bookmarks.mp4

Workspace files

  • Reveal: gitignored agent artifacts on demand
  • Default: hidden, remembered per device
  • Safety: containment holds unless trusted
  • Guide
files.mp4

Device approval and external agents

  • Grant: RFC 8628-style device flow
  • Approve: on the host, t3 auth device approve
  • Token: never passes through a person
  • MCP: outside agents create and steer threads
  • Limit: selected projects, revocable access

A client on another machine starts a T3 thread

02-create.mp4
More clips

An external MCP client answers an agent's question

pr1654-external-mcp-answer-terminal-live.mp4

Backend attach

  • Attach: desktop joins a running backend
  • Pair: automatically, once per launch
  • State: one writer on state.sqlite, not two

Client-only desktop connected to a local backend

Releases and upstream fixes

  • Builds: Linux AppImage releases
  • Nightly: cut on every trunk push
  • Fixes: focused, dropped once upstream lands
  • Guide

Why a fork?

Upstream has no multi-window concept at all. A browser on a self-hosted backend comes close, but still trails Electron for terminals and nested browser windows. At parity, the window domains retire; the others stand on their own.

Fork development

Doc Read it for
Fork development Changing fork behavior or Git topology
Fork delta Every fork change and why
Fork sync Rebase, verify, publish, release

T3 Code

T3 Code is an "agent harness control surface". It lets you control agents through mobile, web, and Electron desktop apps.

Clients: iOS · Android · web · desktop.

Works with your subscriptions on Claude Code, Codex, Cursor, Grok Build, OpenCode, and Google Antigravity. If they're set up on your computer, T3 Code can control them.

"Wait, what are you selling me?"

Nothing. We built T3 Code because we wanted the best possible development experience with agents. We were inspired by existing solutions like the Codex desktop app, Conductor, Claude Desktop and Cursor Glass, but none met our bar.

We wanted something performant, remote-ready, and truly open. If we ever go the wrong direction, we want you to have everything you need to fork and build the editor that you want.

Installation

Warning

T3 Code currently supports Codex, Claude, Cursor, Grok Build, OpenCode, 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
  • OpenCode: install OpenCode and run opencode auth login
  • Antigravity: enable it in Settings, then use Install Antigravity and Sign in with Google. No CLI is required.

Command line

curl -fsSL https://t3.codes/install.sh | sh

On Windows, in PowerShell:

irm https://t3.codes/install.ps1 | iex

Then run t3 to start the server and open the local web app. t3 service install keeps it running in the background, t3 update moves to a newer release, and t3 --help has the full reference.

To try it once without installing, run npx t3@latest instead.

Desktop app

Install the latest version of the desktop app from GitHub Releases, or from your favorite package registry:

Windows (winget)

winget install T3Tools.T3Code

Windows (scoop)

scoop install extras/t3code

macOS (Homebrew)

brew install --cask t3-code

Debian, Ubuntu (.deb)

Download the .deb from GitHub Releases, then:

sudo apt install ./T3-Code-*.deb

Arch Linux (AUR)

Stable:

yay -S t3code-bin

Nightly:

yay -S t3code-nightly-bin

The AUR packaging is maintained in this repository under packaging/aur.

Some notes

We are very very early in this project. Expect bugs.

We are (mostly) not accepting contributions yet. Small fixes may be considered. Big features will not be.

Documentation

Full docs live in docs/. There's no docs site yet.

Building from source? Start at docs/internals/overview.md.

If you REALLY want to contribute still.... read this first

Install vp

T3 Code uses Vite+ so you'll need to install the global vp command-line tool.

macOS / Linux

curl -fsSL https://vite.plus | bash

Windows

irm https://vite.plus/ps1 | iex

Checkout their getting started guide for more information: https://viteplus.dev/guide/

Install dependencies

vp i

Read CONTRIBUTING.md before reporting a bug or opening a PR.

Have a feature request? Start an Ideas discussion.

Need support? Join the Discord.

About

t3code but tailored for hyprland/workspace/virtual desktop env. Very opinionated use at your own peril

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages