DEV Community

Dor Lugasi-Gal
Dor Lugasi-Gal

Posted on

GitHub Just Proved That Remote Terminal Access Matters - Here's the Mobile IDE I Built for It

GitHub just shipped copilot --remote - the ability to stream a Copilot CLI session to your phone or browser. Claude Code has had something similar with their --remote flag. The idea is the same: you should be able to reach your coding session from wherever you are.

I agree. In fact, I've been building exactly that in the last month.

TermBeam is an open-source tool that turns your terminal into a mobile IDE. Run npx termbeam, scan the QR code, and you get a full terminal on your phone — any shell, any command, any folder. It's a PWA, so after the first scan you add it to your home screen and it's just an app. One tap and you're in, works on any device since its just a web page.

Copilot SDK session in TermBeam

TermBeam's built-in Copilot SDK integration — markdown rendering, tool call visibility, and the terminal right there on my phone.

I can be pushing my daughter on the swings at the park, or sitting in a bomb shelter during a missile alert, and still pull out my phone, open TermBeam, and create a new session in whatever folder I need. thinking retrospectively, that kind of access isn't a nice-to-have for work-life balance, it's a necessity.

What It Does

npx termbeam
// or
npm install -g termbeam
termbeam
Enter fullscreen mode Exit fullscreen mode

That starts a server, prints a QR code, and when you scan it you get a real terminal session in your browser. Full PTY — whatever shell you use, whatever commands you run. It tunnels through Azure DevTunnels by default so it works from anywhere.

You start it in whatever folder you want, with whatever shell you want. You're not locked into a specific tool's session model. And you can create new sessions from your phone — pick a folder, pick a shell, go.

For something permanent, install it as a background service:

termbeam service install
Enter fullscreen mode Exit fullscreen mode

PM2-managed, starts on boot. Your terminal is always one tap away.

It Runs AI Agents Too

This is where the copilot --remote connection gets interesting. TermBeam has a proper @github/copilot-sdk integration — a dedicated UI pane with markdown rendering, tool call display, and a chat interface, all alongside the terminal. It's built specifically for interacting with Copilot on a small screen.

On top of that, TermBeam auto-detects AI coding tools in your PATH — Copilot CLI, Claude Code, Aider, Codex, OpenCode — and lets you launch any of them from the new session dialog. One tap.

So while copilot --remote gives you remote access to an existing Copilot session, TermBeam gives you the ability to open a full terminal session where Copilot (or any other agent) is just one of the things you can run. Different approach to a similar idea — and they work well together.

What Makes It Usable on a Phone

A terminal on your phone is a gimmick unless the UX is built for touch, like the existing ssh solutions. Here's what makes the difference:

Touch bar. Two rows of dedicated buttons: Esc, Copy, Paste, Home, End, ↑, ←, ↓, →, Enter, Ctrl, Shift, Tab, ^C, and a microphone for voice commands. These are the keys phone keyboards either don't have or hide behind long-presses. This makes running a Copilot session — or vim, or anything — actually practical on a phone.

Terminal with touch bar

Multiple tabs at the top, git and folder context info, and the touch bar above your keyboard. This is a real session on my phone.

Command palette. Tap the Tools button on the top right and you get a panel with six sections: Session (new tab, upload/download files, view markdown, close/rename/split/stop sessions, resume agent sessions), Search (find in terminal), View (font size, themes, port preview, code viewer, git changes), Share (copy shareable link), Notifications (toggle push notifications), and System (refresh, clear terminal, about). Every feature is two taps away.

Command palette

The full command palette. Upload files, view markdown, preview a port, switch themes, check git changes — all from one panel.

Sessions hub. Each session gets a card showing the working directory, shell, PID, git branch, repo name, and git status — which sessions have staged changes, which are clean, how long ago they were active. The "+ New Session" button lets you create a session in any folder, right from your phone.

Sessions hub

Three sessions across different projects, each showing git info and status. Tap to connect, "+ New Session" to start one anywhere.

File browser. Browse the session's working directory, search files, view code, download files, and see git changes — all in a side panel. The Changes tab shows what's modified and staged.

File browser

The file browser with Files and Changes tabs, browsing a project directory.

And the rest: 40 themes (yes, i got carried away lol), push notifications when commands finish, port preview that proxies your local dev server. It's a PWA with iPhone safe-area support, so it feels native.

Under the Hood

TermBeam spawns a PTY with your shell, serves a React frontend (xterm.js, Zustand, Radix UI) over Express, and bridges them with WebSocket. Azure DevTunnels handles the public URL, or you can choose to work on LAN. Sessions persist when you disconnect.

npx termbeam                           # default: tunnel + auto password
termbeam --password secret --lan       # LAN only, custom password
termbeam --persisted-tunnel            # stable URL across restarts
termbeam resume                        # reconnect from CLI
termbeam service install               # always-on background service
Enter fullscreen mode Exit fullscreen mode

On security — auto-generated passwords, rate-limited login (5 attempts/min/IP), httpOnly cookies, CSP and X-Frame-Options headers, WebSocket origin validation, and single-use QR auth tokens that expire in 5 minutes. Full threat model in SECURITY.md.

1350+ tests across Windows, macOS, and Linux on Node 20, 22, and 24. The less glamorous work was the mobile edge cases — Safari viewport bugs, PTY behavior differences across platforms, WebSocket reconnection after screen locks.

Try It

TermBeam is open source, MIT licensed, v1.20.1 on npm:

npx termbeam
Enter fullscreen mode Exit fullscreen mode

Scan the QR code, add to home screen, and you've got a terminal on your phone.

GitHub · npm · Docs

Top comments (0)