Self-hosted · Single 10 MB binary · Zero dependencies

One browser tab for SSH, serial,
and the whole embedded bench.

Most web terminals stop at SSH. webtm also speaks serial/UART, CAN / CAN-FD, UDS and XCP — live hardware and vehicle diagnostics, with AI-assisted debugging on top. All of it self-hosted, on a single static binary you run yourself.

$ curl -fsSL https://webtm.dev/install.sh | sh

Free for personal use · Works on iPad · No account to try

SSH Serial / UART CAN / CAN-FD UDS · ISO 14229 XCP · DAQ Broadcast AI debug

SSH terminal

Full xterm.js emulation over WebSocket. tmux keeps every session alive across disconnects — close the tab, come back, nothing lost.

🔌

Serial / UART

Open /dev/ttyUSB*, ttyACM*, tty.* from the browser. Hot-plug detection finds new adapters with no restart — even from an iPad.

Hardware diagnostics

CAN / CAN-FD monitor, UDS vehicle diagnostics over DoIP & ISO-TP, and XCP measurement with live DAQ — all on one unified transport.

AI debugging

Feed a serial log to your own model (BYOK): get root-cause analysis, a code fix, a build, and a shareable report — without leaving the screen.

Diagnostics suite

The browser is now your bench

Serial, CAN, automotive UDS, and XCP calibration — multiplexed over a single /ws/x WebSocket. Pick a device with a URI; the panel renders the protocol.

CAN bus monitor

classic + FD

Live frame stream with hex filter, pause, and a frame injector. Classic CAN and CAN-FD with BRS — extended IDs, RTR, the lot.

UDS vehicle diagnostics

ISO 14229

Service builder over DoIP/TCP and ISO-TP/CAN (CAN-FD too). Flow-control pacing, read-only gating, and DoIP UDP Discover for announced ECUs.

XCP measurement

ASAM MCD-1

XCP on Ethernet (TCP/UDP) and CAN. Command builder plus a live DAQ view — periodic measurement streamed straight into the browser.

Embedded framing

webtm-embed

Open serial://…?framing=cobs for COBS+CRC channel-multiplexed links — split one UART into clean logical channels in the 🧩 Embed panel.

One socket, every transport

Every device is just a URI on /ws/x.

# serial byte stream / COBS-framed
serial:///dev/ttyUSB0?baud=115200
serial:///dev/ttyUSB0?framing=cobs

# CAN / CAN-FD
can://can0?fd=1

# UDS over DoIP (TCP) / over ISO-TP (CAN-FD)
uds://doip/192.168.0.10:13400
uds://can0/0x7E0?rx=0x7E8&fd=1

# XCP on Ethernet / on CAN
xcp://eth/192.168.0.10:5555
xcp://can0/0x100?rx=0x101&fd=1

# remote device via agent (Ultra)
agent://rpi-001/serial/ttyUSB0?baud=115200
Features

Everything a remote console should be

One web screen for the whole job — connect, persist, broadcast, debug.

Never-dies terminal

A 256 KB ring buffer per session plus smart reconnect replays every byte you missed. Flaky Wi-Fi stops being a problem.

1:N Broadcast Ultra

Send one command to many boards at once — parallel, sequential, or rolling — and watch each device's output side by side.

Built for touch

A virtual key bar (Esc, Tab, Ctrl, arrows) and a ⌘K command palette make a real terminal usable on a phone or tablet.

Remote federation Ultra

An agent exposes a remote board's serial or CAN as agent:// — self-registers with a join token, then debug hardware on the other side of the world.

Session sharing Pro

Hand someone a read-only URL to your live session — no install, no account, no setup on their end.

Install anywhere

One 10 MB static binary, CGO_ENABLED=0, web assets embedded. PWA install, offline-capable, expose via Cloudflare Tunnel in one flag.

AI debugging Ultra · BYOK

From crash log to a shipped fix

Bring your own model — Claude, OpenAI, or a local Ollama. The whole loop happens in the tab.

1

Capture

A HardFault or stack trace lands on the serial console.

2

Diagnose

The model reads the log and pins the root cause.

3

Fix & build

It proposes a patch; you approve; it builds.

4

Report

A shareable web report captures what changed and why.

Why webtm

One tab replaces the whole toolchain

SSH clients stop at SSH. Serial tools stop at serial. CAN and diag suites are each their own app. webtm is the entire bench.

Teleport
tmate
minicomSavvyCANCANapewebtm
SSH terminal
Serial / UART
CAN / CAN-FD monitor
UDS diagnostics (DoIP/ISO-TP)
XCP measurement / DAQ
1:N broadcast · AI debug
In a browser · runs on iPad
Self-hosted, one binary

Each rival is a single point on the bench. webtm is the only one that does all of it — from a browser, self-hosted.

On the bench, on the move

Debug UART from your iPad browser

webtm installs as a PWA and goes full-screen on touch. A virtual key bar puts Esc, Tab, Ctrl, and arrows under your thumb, and a swipe drawer holds your sessions, ports, and diagnostics. The thing nobody else lets you do: open a serial console on hardware from a tablet.

PWA · offline-capable virtual key bar swipe session drawer ⌘K palette
Yours, end to end

Your data never leaves your machine

webtm is self-hosted. ttyd and the serial manager bind to 127.0.0.1 only — the gateway is the single door, where auth, license, and session limits live. Raw automotive egress (DoIP/XCP) is opt-in and off by default; tcp:// has an SSRF guard. Licenses validate offline with Ed25519 signatures: no call-home on startup, ever.

bcrypt / JWT auth localhost-only backends offline Ed25519 license egress-gated diagnostics audit logs (Ultra)
Pricing

Start free, self-hosted

Run it yourself — free for personal and non-commercial use. Upgrade only when you need teams, scale, or the hardware-fleet features.

Community

Free

Personal & non-commercial

  • 2 SSH sessions
  • 1 local serial port
  • CAN · UDS · XCP diagnostics
  • tmux persistence · PWA · virtual keys
Install free

Pro

$9 / mo

For working developers

  • Unlimited sessions & serial ports
  • Read-only session sharing
  • Multi-user accounts
  • Per-device access control
Choose Pro

Ultra

$39 / mo

For embedded teams & fleets

  • Everything in Pro
  • Remote serial / CAN (Agent)
  • 1:N broadcast
  • AI debugging (BYOK)
  • Conditional access · audit logs
Choose Ultra
See the full feature matrix
CommunityProUltra
SSH terminal sessions2UnlimitedUnlimited
Local serial / UART ports1UnlimitedUnlimited
CAN · UDS · XCP diagnostics
tmux persistence · PWA · ⌘K
Read-only session sharing
Multi-user accounts
Per-device access control
Remote serial / CAN (Agent)
1:N broadcast
AI debugging (BYOK)
Conditional access policy
Audit logs

Billed via Paddle · licenses are Ed25519-signed and validate offline.

Get started

Running in three lines

1

Install

curl -fsSL https://webtm.dev/install.sh | sh

One static binary lands in your PATH. No runtime, no dependencies.

2

Run

webtm up

Starts on localhost:4100. Add --auth or --tunnel when you're ready to expose it.

3

Open

open http://localhost:4100

Terminal, serial, CAN, UDS, XCP, and the AI panel — in the browser, on any device.