Download MT Code • Read the Documentation • Report Issues
MT Code is a free, open-source desktop app for running and controlling coding agents — Claude Code, Codex, Cursor, Grok Build, OpenCode, and Google Antigravity — from one place. It is Munim Technologies' fork of T3 Code with extra features and fixes, and anyone can download and use it.
munimtech.com/mt-code — or grab installers straight from GitHub Releases:
- macOS (Apple Silicon):
MT-Code-<version>-arm64.dmg - Windows (x64):
MT-Code-<version>-x64.exe
macOS builds are signed with a Developer ID but not yet notarized; Windows builds are unsigned:
- macOS: if Gatekeeper warns, right-click the app → Open (first launch only).
- Windows: if SmartScreen warns, choose More info → Run anyway.
The app auto-updates from this repository, so you get new MT Code features and fixes as they ship.
MT Code has no hosted web app of its own. Run the desktop app (or npx t3@latest) on your machine and reach it from another device over T3 Connect or your own HTTPS tunnel (Tailscale Serve works well); see remote access.
MT Code drives agents you already have. Install and sign in to at least one provider CLI:
- Claude: install Claude Code and run
claude - Codex: install Codex CLI and run
codex 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.
Your existing subscriptions are used directly — MT Code sells nothing and adds no accounts of its own.
Same cost model as T3 Code: the app and its server run on your computer, and model tokens come from Claude / Codex / Cursor / Grok / OpenCode. Munim hosts nothing on your behalf — pairing and Computer Use reach your machine directly. There is no Munim-hosted web app, no model proxy, no Workers AI classifier, and no PlanetScale relay unless you explicitly opt into that paid stack.
Compared to T3 Code. MT Code started as a fork. Upstream is merged only when you ask an agent to do it — nothing pulls pingdotgg/t3code automatically. Some rows started as unmerged upstream PRs that MT Code ships today; others were built here.
This table lists only the differences, roughly in the order of how much they change the app. Once T3 Code ships a feature MT Code had first, MT Code adopts T3 Code's implementation and the row leaves the table — drag-to-reorder, PDF attachments, cookie import, tool-activity grouping, composer drawers, preview viewport, file-chip reveal, macOS editor discovery, pull request stacks, Cursor / Grok / OpenCode Go limits, full-text sidebar search, Forgejo hosting, thread notifications, and one-tap Continue all went that way. Nothing T3 Code ships is missing here.
| Feature | MT Code | T3 Code |
|---|---|---|
| Computer Use — agents click, type, screenshot, zoom, hover, and drive browser tabs on your desktop; powered by open-source munim-computer-use | ✅ | ❌ |
| Computer View — a live remote desktop of the machine a thread runs on, from the chat header; moving over it moves that machine's real cursor, and typing goes where it is focused | ✅ | ❌ |
Agent-chosen computers — computer_list / computer_send start a task on another connected machine (this Mac, SSH, T3 Connect, or a paired backend) without changing Run on |
✅ | ❌ |
| Computer History — opt-in activity timeline (not screenshots) that agents can reference | ✅ | ❌ |
| Realtime voice — persistent OpenAI Realtime panel so you can talk with the agent, not only dictate | ✅ | ❌ |
| Voice dictation — Codex-style mic in the composer (OpenAI or Groq) | ✅ | ❌ |
Goals — /goal keeps a thread working until the objective is met |
✅ | ❌ |
| Provider handoff — continue a thread with another provider or account from the model picker; native history when possible, otherwise a bounded handoff of recent work | ✅ | ❌ |
| Resume on restart — running threads and agents pick up after the app closes, with no opt-in to switch on first | ✅ | ❌ |
| Usage-limit recovery — a thread stopped by a subscription limit shows Limited, can snooze until the reset, and can auto-resume | ✅ | ❌ |
Cross-thread references — type # to cite another thread; the agent can read it |
✅ | ❌ |
| Thread-to-thread messaging — agents list sibling threads and send work between them | ✅ | ❌ |
Agent-created threads — thread_create / thread_archive so an agent can spawn and tidy sibling chats in the same project |
✅ | ❌ |
Monitor toolkit — monitor_start lets an agent end its turn and be woken by background command output |
✅ | ❌ |
Agent thread tools — t3_worktree_handoff, t3_thread_update (rename / retitle), agent history reads, preview_open browser profiles |
✅ | ❌ |
| Plugin marketplace — browse, install, and manage Codex, Claude Code, and Cursor plugins in per-harness tabs with an Installed section | ✅ | ❌ |
| Skills manager — cross-harness skills in Settings | ✅ | ❌ |
| Scheduled sends — queue a message for a later time, with recurrence | ✅ | ❌ |
Multi-machine projects — copy a checkout to another machine, per-server directory and worktree defaults, branch prefix, .worktreeinclude, SSH agent forwarding |
✅ | ❌ |
| Sign in extra Claude/Codex accounts from Settings without leaving the app | ✅ | ❌ |
| Conversation import and forking — import Claude Code / Codex history, fork a conversation into a new thread, self-hosted Android push | ✅ | ❌ |
Script threads from the CLI — t3 thread start and t3 thread send |
✅ | ❌ |
| Local sky artwork — the sidebar header paints your own daylight and weather, and the app icon follows it; ships on by default | ✅ | ❌ |
| MT Code theme — the shipped palette is its own theme (light plus a charcoal-and-blue dark), with T3 Code's stock pair one click away in the library | ✅ | ❌ |
| More providers — Devin (ACP), native Pi, Claude advisor model, native slash commands for OpenCode / Cursor / Grok | ✅ | ❌ |
| Codex visualizations rendered inline | ✅ | ❌ |
| LaTeX math in chat | ✅ | ❌ |
| Find in chat and terminal (Cmd/Ctrl+F), Mermaid diagrams, editable queued messages | ✅ | ❌ |
| Read state synced across clients — Done indicators clear on every machine | ✅ | ❌ |
| Per-thread auto-settle switch, pinned threads exempt from settling, and an option to settle only threads without a PR | ✅ | ❌ |
| Recent-threads switcher — Ctrl+Tab in the desktop app (browsers reserve Ctrl+Tab; rebind in Settings → Keybindings) | ✅ | ❌ |
| Sort threads by last user message | ✅ | ❌ |
| Custom thread title instructions, and drag to reorder or hide provider models | ✅ | ❌ |
| Cursor on by default with real permission-option mapping | ✅ | ❌ |
| Grok reasoning-effort picker | ✅ | ❌ |
| Reasoning cycle keybindings | ✅ | ❌ |
| OpenCode context-window usage | ✅ | ❌ |
| OpenCode connected subscription limits — saved ChatGPT and Claude account windows alongside upstream’s OpenCode Go limits | ✅ | ❌ |
| Rename environments | ✅ | ❌ |
t3 . opens a folder in the desktop app or a running server |
✅ | ❌ |
Desktop extras — thread deep links (mtcode://), external terminal apps, login-shell env allowlist, Windows tray with persist-on-close |
✅ | ❌ |
Installs alongside T3 Code — own bundle ID (com.munim.mtcode) and data directory (~/.mt) |
✅ | ❌ |
| Hosted web app — MT Code's own was retired; use T3 Connect or your own tunnel instead | ❌ | ✅ app.t3.codes |
Everything else T3 Code does — multi-provider agent control, checkpoints and diffs, remote access from the web and mobile apps, Connect tunnels — works here too.
Full docs live in docs/:
- Install and first run
- Permission modes
- Keyboard shortcuts
- Desktop notifications
- Goals
- Plugins
- Voice dictation
- Attachments
- Project settings
- Remote access from a phone or another machine
- Thread messaging
- Continue a thread with another provider
- Sending work to another computer
- Viewing a thread's computer
- Appearance: themes and sidebar artwork
- Keeping app and server in sync
- Source control integrations
- Multiple accounts: Codex · Claude
- Run T3 Code as a background service
Building from source? Start at docs/internals/overview.md.
MT Code does not auto-merge pingdotgg/t3code. Upstream lands only when you explicitly ask an agent to merge it. Features built here are offered upstream as PRs when they fit; some MT Code features started as unmerged upstream PRs we adopted. Bug reports about MT Code builds belong on this repo's issues — please don't file MT Code problems upstream.
MT Code exists because T3 Code is truly open. Credit and thanks to the T3 team.