NomadTerm is a secure remote PTY daemon for AI CLI tools (Claude Code, Codex, Copilot, Gemini). It runs on the machine where your AI sessions live and lets you monitor and control them from your phone or desktop.
Mobile app ──WebSocket──► nomadterm daemon ◄── manages ── nomadterm-desktop (GUI)
- Daemon (
nomadterm) — runs in the background, exposes a/wsendpoint, manages PTY sessions, streams output to your phone in real time - Desktop GUI (
nomadterm-desktop) — optional Tauri app on your Linux desktop to manage repos, generate QR codes, and start/stop the daemon with one click
Download both .deb files from the latest release:
| File | What it installs |
|---|---|
nomadterm_X.Y.Z_amd64.deb |
/usr/bin/nomadterm + systemd service |
nomadterm-desktop_X.Y.Z_amd64.deb |
/usr/bin/nomadterm-desktop (the Tauri GUI) |
sudo apt install ./nomadterm_X.Y.Z_amd64.deb
sudo apt install ./nomadterm-desktop_X.Y.Z_amd64.debAfter installing both, NomadTerm appears in your Ubuntu app launcher. Open it to get started.
Tip: copy the
.debfiles to/tmp/before installing to avoid an apt sandbox warning:cp ~/Downloads/nomadterm*.deb /tmp/ sudo apt install /tmp/nomadterm_X.Y.Z_amd64.deb /tmp/nomadterm-desktop_X.Y.Z_amd64.deb
- Install both
.debpackages above - Open NomadTerm from your app launcher
- Click + to add a repo folder
- Click Start — the daemon starts and a QR code appears
- Scan the QR from the NomadTerm mobile app to connect
The GUI manages tokens, ports, and the daemon lifecycle automatically. When Tailscale is installed and active, it is preferred automatically so the same QR code can work from outside your home network. Without Tailscale, NomadTerm falls back to LAN-only access.
nomadterm --ws --bind-tailscale --port 7681Useful flags:
| Flag | Description |
|---|---|
--bind-tailscale |
bind to the Tailscale IP (falls back to LAN IP if unavailable) |
--port <PORT> |
WebSocket port (default 7681) |
--no-tls |
disable TLS for local/trusted networks |
--token <TOKEN> |
set a fixed bearer token instead of generating one |
--workspace <PATH> |
set the working directory for the session |
At startup the daemon prints the WebSocket address, bearer token, and a QR code. Scan it from the mobile app or enter the details manually. For out-of-home access, keep Tailscale active on both the server machine and your phone.
# First-time setup
sudo bash install.sh init
# Update later
sudo bash install.sh updateThe install.sh script is included in nomadterm-server-linux-x86_64.tar.gz on the releases page, or downloadable directly:
curl -Lo install.sh https://github.com/YOUR_ORG/nomadterm/releases/latest/download/install.sh
sudo bash install.sh initOpen the NomadTerm mobile app and:
- Scan the QR code shown by the daemon or desktop GUI, or
- Enter manually: host, port, and token
After connecting you can:
- view and spawn AI CLI sessions (Claude Code, Codex, Copilot, Gemini)
- open a live terminal view
- approve or reject tool calls
- kill a running session
# Daemon only
cargo build --release
./target/release/nomadterm --ws
# Desktop GUI
cd desktop
npm install
npm run tauri dev # requires nomadterm binary in PATH