Set Terminal.app's shell to pt. From then on every terminal you open appears on your phone as a live session. Drive a build, tail a log, ssh into a server or network switch, run vim, restart a dev server, control a bot — or approve Claude / Codex / Aider tool calls and watch live $-burn. Any CLI.
src/session.ts…Telegram-bot setups type a command into a black box and hope. You don't see the screen, you can't scroll, you can't approve a tool call mid-run, and it only knows the one shell you wired it to. Pocket-T isn't a relay. It's your actual terminal window — every one of them — on your phone.
One line. A small daemon and a native shell proxy go on your Mac. Nothing intrusive, nothing in your way.
ptTerminal.app → Settings → Profiles → Shell → /usr/local/bin/pt. New windows on that profile are Pocket-T sessions immediately. iTerm2, Ghostty, WezTerm: same idea.
Start the daemon with --tunnel and a public URL + QR code prints in your terminal. Scan it. Your Mac terminals are now on your phone — LTE, hotel WiFi, anywhere.
# clone, install, expose to your phone — under two minutes git clone https://github.com/Josh-Gi3r/POCKET-T cd pocket-t && bash install.sh pnpm --filter @pocket-t/daemon pt-registry serve --tunnel # scan the QR code, open the URL on your phone, done
Pocket-T doesn't integrate with anything — it captures the terminal itself. So it works with every CLI agent and tool, including ones that don't exist yet. Claude gets full agent-aware bubbles + live cost meter today; other CLIs get a clean terminal view + sidebar vendor badge while their dedicated parsers ship.
Pocket-T streams the rendered terminal, so a full-screen TUI agent looks like what's actually on your Mac. Scrollback, prompts, the lot. You're looking at the session, not a bot's paraphrase of it.
An agent asks to run a destructive tool — approve or deny it from your phone, on the train, in a meeting. Tap goes straight to the running agent.
A Claude session burns through tokens — Pocket-T shows you the dollar count, live, in a pill at the top. Sonnet, Opus, Haiku, the lot. No one else ships this.
Run Claude Code — see chat, thinking, tool calls and results as separate cards, on top of the same live terminal. Flip back to raw bytes anytime.
From your phone, keyboard straight into the live PTY. Soft-key shortcuts for Esc, Ctrl, Tab and arrows. Paste long prompts. Send ^C when an agent's gone off the rails.
Every pt session writes an asciinema v2 cast file to ~/.pocket-t/recordings/. Replay with pt-registry replay, share it in a PR, or open it in any asciinema player. Forever-history is on by default.
Daemon, native shell proxy, relay, web app — every piece is MIT licensed and on GitHub. Self-host the relay on your own box and your own domain, or use the hosted one. Your data, your terms.
Themes that re-paint the entire Pocket-T UI — sidebar, bubbles, terminal pane, cost pill, approval cards. A skin is a small block of CSS variables; ship one in an afternoon, send a PR, watch people use it.
Seven ship built-in. The contribution guide is one short doc.
?theme=halloween on the URL.
One install script. One --tunnel flag. A QR code prints in your terminal. Scan it. Your Mac terminals are on your phone — any network, anywhere on earth.
# 1 — clone + install (builds pt, signs it) git clone https://github.com/Josh-Gi3r/POCKET-T cd pocket-t && bash install.sh # 2 — point Terminal.app's shell at pt # Settings → Profiles → Shell → /usr/local/bin/pt # 3 — start the daemon with a tunnel for your phone pnpm --filter @pocket-t/daemon pt-registry serve --tunnel # 4 — scan the QR code that prints in your terminal # opens https://random-words.trycloudflare.com
cloudflared via Homebrew.--tunnelphone-from-anywhere (default)
no flagthis Mac only · 127.0.0.1:7700
--relay wss://your-hubself-host a stable URL
/usr/local/bin/pt once. After that, every window on that profile is automatically a Pocket-T session — no wrapper command, no flag, no pt <cmd>. iTerm2, Ghostty, WezTerm: same idea, point them at pt.pt session writes a standard asciinema v2 cast file to ~/.pocket-t/recordings/. Replay with pt-registry replay <sessionId> or any asciinema player. Delete the folder anytime.