Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

T3 Coder

T3 Coder is a browser interface for Codex and Claude Code running inside your Coder workspaces. Start threads, review changes, run terminals, and manage repositories from a local web app while your code, provider sessions, and history stay in the workspace.

Your computer runs only a small local gateway and the browser UI. Nothing about your projects, conversations, or terminals is stored on the local machine — refresh the page and you are back where you started.

What you get

  • Projects and threads — organize agent work by project, with pinning, snoozing, settling, and archiving for threads.
  • Conversation controls — four permission modes, inline approvals, model and mode selection per thread, and a context meter with compaction.
  • Review — per-turn diffs, diff comments, checkpoints, and worktree-aware branch controls.
  • GitLab merge requests — browse and review MRs, inspect discussions and checks, manage reviewers and MR state, check out branches, and hand work to Claude.
  • Files — browse, read, and edit text files in the active project, with file and content search.
  • Terminals — workspace terminals attached to the thread you are working in.
  • Workspace management — connect to Coder domains, start and stop workspaces, watch health and latency, and forward workspace ports to your machine.

Codex and Claude Code are the only agents T3 Coder drives, and they always run inside the workspace — never on your computer. A workspace may provide either one or both.

Requirements

On the local machine (macOS for development, Windows 11 for daily use):

  • Node.js 24.10 or newer
  • pnpm 11.10
  • Coder CLI 2.25.3 (on Windows, with the OpenSSH Client feature installed)

Inside each Linux Coder workspace:

  • Codex or Claude Code, already authenticated for the provider you intend to use
  • Git
  • GitLab CLI (glab), authenticated when using GitLab merge-request features
  • Nix with a configured nixpkgs (used once to provision a pinned Node.js runtime)

T3 Coder does not install or authenticate a provider. A missing or unauthenticated provider is shown as unavailable while another ready provider remains usable.

Quick start

pnpm install --frozen-lockfile --ignore-scripts
npm start

npm start prints a local URL such as http://127.0.0.1:PORT. Open it in your browser — T3 Coder never opens the browser for you. Then:

  1. Open Settings → Coder connections and add your Coder domain.
  2. Choose Sign in. Coder prints its login URL and a hidden token prompt in the terminal running npm start; the token is handled there, never in the browser.
  3. Choose Add project in the sidebar, pick your domain and workspace, and select a folder in the remote folder picker.
  4. Choose an available Codex or Claude model and start a thread.

The first connection to a workspace runs a short preflight. It verifies the workspace platform, Git, Nix, and that at least one supported provider is present, then installs a version-matched helper with its terminal runtime included. This may take a minute; later connections are quick.

Full walkthrough: Install and first run.

Documentation

GuideCovers
Install and first runRequirements, setup, and the first connection
Codex and Claude CodeAvailability, sign-in, models, skills, and provider settings
Coder workspacesDomains, lifecycle, health, port forwards, troubleshooting
Projects and threadsOrganizing projects, threads, pins, snooze, archive
Permission modesHow much the selected agent does on its own
Message composerImages, skills, commands, stash, context
Files and searchBrowsing, editing, and searching project files
Images and screenshotsPasting images and viewing agent screenshots
Source controlDiffs, branches, worktrees, commits, checkpoints
Keyboard shortcutsEvery shortcut and how to remap it
Product decisionsWhat matches upstream and what changes for Coder

How this differs from upstream T3 Code

T3 Coder is a Coder-only fork of the open-source T3 Code. It keeps the T3 Code interface and developer workflow but specializes it for Coder-managed Linux workspaces: no desktop or mobile apps, no hosted web or relay service, no telemetry or auto-update, only Codex and Claude Code as providers, and GitLab as the only hosted source-control provider. MCP servers and provider app integrations are disabled. Git and glab run inside the workspace through the existing Coder RPC connection; the local gateway never handles GitLab credentials. Where upstream and T3 Coder share behavior, upstream's documentation is the source of truth; T3 Coder's guides adapt it and note the differences.

The complete runtime and policy boundary is documented for software-intake review in the architecture note and the compliance review. See also the security policy and third-party notices.

Building from source

This is a private-purpose fork. Review and obtain approval under your employer's software, security, and data-handling policies before using it with work systems or data. Focused checks:

pnpm test:coder
pnpm typecheck:gateway
pnpm typecheck:helper
pnpm typecheck:server
pnpm typecheck:web
pnpm build

Contributor and agent rules live in AGENTS.md.

About

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages