Soon Hosted instances are coming soon — get notified

Your terminals,
alive in any browser.

term-server keeps native PTYs running on your machine and gives you a fast, focused workspace from anywhere — desktop, tablet or phone. Close the tab, lose Wi-Fi, ship an update: your sessions keep going.

Get notified about hosting
$ curl -fsSL …/install.sh | sh
  • Open source · MIT
  • Single Rust binary
  • Linux x86-64 & ARM64
  • Signed auto-updates
Knows what your agents are doing
  • Claude Code
  • Codex
  • Pi
  • Oh My Pi
  • Hermes
  • any shell

Resilient sessions

Close the tab.
Keep the session.

A private session broker owns every PTY. The web process can reload, reconnect or even replace itself with a signed update — the broker, and your running processes, stay exactly where they were.

  • Reload-proof. xterm-authored recovery checkpoints restore the screen byte-for-byte.
  • Update-proof. Signed in-place updates keep compatible brokers alive for existing terminals.
  • Flaky-network-proof. Sequenced, resize-safe resumption with VS Code-style flow control.
~/workspaces/api · cargo build
live
Browserxterm.js · WebGL
HTTPS processv0.18.2
Session brokerUnix socket · user-only
Native PTYsyour processes

Agent awareness

Run ten agents.
Know which one needs you.

Codex, Claude, Pi, OMP and Hermes sessions report working, blocked, idle and closed. An agent waiting on approval is flagged Needs you for as long as it waits — no more discovering a stalled run an hour later.

Workspaces working needs you idle
🔔

Alerts that don't nag

An unseen return to idle gets a distinct bell until you focus it. Send alerts in-app, to the desktop, both, or nowhere — cards inherit their terminal's color.

🧭

Supervisor terminal

One marked terminal can read screens, type, name, spawn and stop the others — using the agent you choose. No AI provider is embedded in the server.

📄

Agent artifacts

Multiline handoffs stay attached to the agent that made them, with inline text, image and PDF previews and a full editor. Still a normal file path for cat.

Terminal-scoped access

Give agents keys,
not your keychain.

Each terminal has one Access panel. Agents request secrets or sudo commands; you approve them in the browser. Secret values are injected by the broker and never returned to the agent. Sudo runs only the exact, immutable command you reviewed.

  • Proactive, in-memory grants with one-click revocation
  • Broker-generated secrets the agent never sees, revealed once to you
  • Secret-aware command lines — redacted in the process inspector
~/workspaces/deploy · claude
🔐 Access 1 request
Secret request
STRIPE_API_KEY
“Needed to run the webhook integration tests.”

Everything a terminal needs

Still a terminal.
Not a browser IDE.

The extras show up when you need them and stay out of the way when you don't.

Split into eight panes

Drag a terminal onto any edge to build nested layouts. Each browser tab keeps its own arrangement.

~/workapiweb›_ tests

Workspaces that organize themselves

Terminals follow their shell's live directory into a collapsible tree — zero project setup.

██████

Real rendering

xterm.js WebGL, truecolor, bundled Nerd Font symbols, Kitty keyboard input, OSC 52 clipboard.

2,000,000

Deep scrollback

Up to two million lines per pane, with search and clickable links that open files in the editor.

📁 src📄 main.rs📄 lib.rs saved

Files when needed

Searchable explorer, image & PDF previews, and a lazy CodeMirror editor with atomic saves and conflict detection.

bash
cargo
rustc

Live process tree

A /proc sampler shows descendants, foreground job, CPU and memory — and sends SIGTERM when you need it.

Virtual mic & speaker

Your browser microphone becomes the host's default input; host audio plays through your browser. Great for voice agents.

claude
codex
z.ai

Provider limits at a glance

The status bar auto-discovers Claude, Codex and z.ai credentials and shows your remaining quota.

Argon2HTTPSCSPHSTSSameSite

Secure by default

Loopback binding, HTTPS, Argon2 hashing, signed HTTP-only cookies, origin checks, login throttling, bounded memory.

Phone & tablet

Check on the build
from the couch.

Touch-sized navigation, a workspace drawer, focused pane switching and a keybar that doesn't need a hardware keyboard. Add it to your home screen and it launches as its own app.

  • Your desktop pane layout is preserved — one pane at a time on the phone
  • Safe-area aware on iPhone and Android
  • No stale offline shell: it always loads the client matching your server
term-server mobile workspace drawer
☰deploy‹ 1/2 ›
esctabctrl↑↓A−A+

Coming soon

No server? We'll run one for you.

Hosted term-server instances: a dedicated Linux machine with term-server preinstalled, a trusted TLS certificate and your own subdomain. Open a browser and start working — your agents keep running after you close the laptop.

One email when hosted instances launch. No spam, no sharing.

Isolated VM allocated
Encrypted disk attached
term-server installed & signature verified
TLS certificate issued
Ready at you.termserver.cloud
0.0s
  • Dedicated machineYour own isolated VM and encrypted disk — not a shared container.
  • Trusted HTTPSA real certificate on your own subdomain. Installs on your phone in one tap.
  • Always onAgents keep working 24/7, and “Needs you” alerts reach you anywhere.
  • Same open-source binaryIdentical features, managed signed updates, and export anytime.
Self-hostedHosted soon
SetupOne-line installer on your Linux boxReady in under a minute
TLS certificateSelf-signed, your own, or a reverse proxyTrusted, automatic
UpdatesSigned auto-updates (you click)Signed auto-updates, managed
Always-on agentsIf your machine is onYes, 24/7
Your dataNever leaves your machineDedicated VM & encrypted disk, exportable anytime
FeaturesIdentical — same open-source binary

Self-host

One binary.
One command.

The installer detects your architecture, verifies the Ed25519 signature on the checksum list, checks the archive's SHA-256 and installs for the current user. No root, no daemon zoo.

  • Rolling main releases, or opt into the signed beta channel
  • Docker Compose and a systemd user unit included
  • Build from source with Rust 1.88+ and Node 22+
Read the docs →
# install the latest signed release
$ curl -fsSL https://raw.githubusercontent.com/Agusx1211/term-server/main/install.sh | sh
$ ~/.local/bin/term-server

✓ signature verified (Ed25519)
✓ sha256 matches term-server-linux-x86_64.tar.gz
term-server listening on https://127.0.0.1:8090
initial password: printed once, stored as Argon2 hash
$ export TERM_SERVER_PASSWORD='use-a-long-random-secret'
$ export TERM_SERVER_BUILD_COMMIT="$(git rev-parse HEAD)"
$ docker compose up --build

# runs as UID/GID 10001 — bind-mounted projects
# must be readable by that user
$ mkdir -p ~/.config/systemd/user ~/.config/term-server
$ curl -fsSL https://raw.githubusercontent.com/Agusx1211/term-server/main/deploy/term-server.service \
    -o ~/.config/systemd/user/term-server.service
$ printf 'TERM_SERVER_PASSWORD=%s\n' '…' > ~/.config/term-server/environment
$ chmod 600 ~/.config/term-server/environment
$ systemctl --user daemon-reload
$ systemctl --user enable --now term-server
# Rust 1.88+, Node.js 22+, npm, a C toolchain
$ git clone https://github.com/Agusx1211/term-server
$ cd term-server
$ npm ci
$ npm run build
$ ./target/release/term-server

FAQ

Questions, answered

Is the hosted version different from the open-source one?

No. Hosted instances will run the same signed release you can install yourself — the machine, TLS, uptime and updates are managed for you, with no extra features locked away.

What happens to my terminals when term-server updates?

The HTTPS process verifies the signed manifest, checksum, architecture and embedded commit, then restarts itself. Compatible older brokers keep running existing terminals and drain on their own; new terminals start on the current broker.

Who can access my hosted instance?

Only people with your password. Each instance will be a dedicated VM with its own encrypted disk. Signing in is equivalent to SSH access for that user, so treat the password accordingly — and we never have a copy of it; only its Argon2 hash exists on your machine.

Can I bring my own agents and API keys?

Yes. Install Claude Code, Codex, Pi, OMP, Hermes or anything else, just like on any Linux box. term-server detects them automatically, and the Access panel lets you grant keys per terminal without pasting them into a transcript.

Can I move from hosted to self-hosted later?

Anytime. Export your home directory and data, install the same binary on your own machine, and carry on. There's no proprietary format to escape from.

Does it run on macOS or Windows?

The server targets Linux (x86-64 and ARM64); the process inspector and virtual audio devices are Linux features. The browser client works everywhere — including phones and tablets.

Your terminals are waiting.

Install it in one line today. Hosted instances are coming soon.