tool-containers
Menu
GitHub (opens in new tab)

Run T3 Code with Podman

run.sh serves T3 Code on http://127.0.0.1:3773 under rootless Podman, with the current directory mounted at /workspace.

Images
  • GHCRghcr.io/hambn/t3code
  • Docker Hubdocker.io/hambn/t3code
Use case
Rootless local instance
Upstream
github.com/pingdotgg/t3code (opens in new tab)
Source
tools/ai/t3code/docs/podman (opens in new tab)
On this page

Prerequisites

  • Rootless Podman 4.3 or later, for --userns=keep-id:uid=1000,gid=1000.

Run T3 Code

Shell
./run.sh

When the server prints its Token: line, open http://127.0.0.1:3773/pair#token=<token> to pair your browser. Add /workspace as a project and sign in to an agent from the UI. The token expires after five minutes; run podman exec <container> t3 auth pairing create --base-url http://127.0.0.1:3773 for a new pair URL. The container and its state are removed when you stop it.

Variables

Variable Required Purpose
T3CODE_IMAGE no Image to run. Defaults to ghcr.io/hambn/t3code:ubuntu-browser; set a digest reference to pin one build.

Workspace

The current directory is mounted at /workspace with :Z, so SELinux hosts relabel it for the container. --userns=keep-id maps your host user to sysadmin (UID 1000), so files the agents write stay owned by you. The port is bound to 127.0.0.1.

Files

  • run.sh runs the published image with rootless Podman.

File contents

run.sh9 lines
#!/usr/bin/env bash
# Run the T3 Code web GUI on http://127.0.0.1:3773 rootlessly against the current directory; :Z relabels it on SELinux hosts.
set -euo pipefail

image=${T3CODE_IMAGE:-ghcr.io/hambn/t3code:ubuntu-browser}
podman run -it --rm --userns=keep-id:uid=1000,gid=1000 \
    -p 127.0.0.1:3773:3773 \
    -v "$PWD:/workspace:Z" \
    "$image" "$@"

Topics