셀프호스팅 · 단일 10 MB 바이너리 · 의존성 제로

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

대부분의 웹 터미널은 SSH에서 멈춥니다. webtm 은(는) 시리얼/UART, CAN / CAN-FD, UDS, XCP까지 구사합니다 — 하드웨어·차량 실시간 진단에 AI 보조 디버깅까지. 전부 셀프호스팅이며, 직접 돌리는 단일 정적 바이너리 위에서 동작합니다.

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

개인 사용 무료 · iPad에서 동작 · 계정 없이 체험

webtm — rpi-fleet-01
webtm running in a browser tab — SSH session to rpi-fleet-01, with a session sidebar (bench-stm32, gateway, rpi-fleet-01) and a live shell showing systemctl, dmesg CAN init, and a firmware flash with a Verify OK.
SSH 시리얼 / UART CAN / CAN-FD UDS · ISO 14229 XCP · DAQ Broadcast AI 디버그

SSH 터미널

WebSocket 위의 완전한 xterm.js 에뮬레이션. tmux가 연결이 끊겨도 모든 세션을 유지합니다 — 탭을 닫았다 돌아와도 아무것도 잃지 않습니다.

🔌

시리얼 / UART

열기 /dev/ttyUSB*, ttyACM*, tty.* 을 브라우저에서. 핫플러그 감지가 재시작 없이 새 어댑터를 찾아냅니다 — iPad에서도.

하드웨어 진단

CAN / CAN-FD 모니터, DoIP·ISO-TP 위의 UDS 차량 진단, 실시간 DAQ를 갖춘 XCP 계측 — 모두 하나의 통합 트랜스포트에서.

AI 디버깅 & 에이전트

Bring your own model (BYOK). Feed a serial log for root-cause, a code fix, a build and a shareable report — or just ask in plain language: “send start to every serial.” The agent lists the targets, proposes the action, and waits for your approval before it runs.

진단 스위트

이제 브라우저가 당신의 작업대입니다

시리얼, CAN, 차량 UDS, XCP 캘리브레이션 — 하나의 /ws/x WebSocket 으로 다중화. URI로 장치를 고르면 패널이 해당 프로토콜을 렌더링합니다.

CAN 버스 모니터

클래식 + FD

16진 필터·일시정지·프레임 인젝터를 갖춘 실시간 프레임 스트림. BRS를 지원하는 클래식 CAN과 CAN-FD — 확장 ID, RTR까지 전부.

Live CAN bus monitor connected to can0 — a streaming frame table with standard, 29-bit extended, and CAN-FD frames, plus a frame injector.

UDS 차량 진단

ISO 14229

DoIP/TCP 및 ISO-TP/CAN(CAN-FD 포함) 위의 서비스 빌더. 흐름 제어 페이싱, 읽기 전용 게이팅, 그리고 DoIP UDP Discover 로 공지된 ECU를 검색.

UDS diagnostics over DoIP — a request/response log showing ReadDataByIdentifier (VIN), ReadDTCInformation, and DiagnosticSessionControl exchanges.

XCP 측정

ASAM MCD-1

이더넷(TCP/UDP)과 CAN 위의 XCP. 커맨드 빌더와 실시간 DAQ 뷰 — 주기적 측정값을 브라우저로 바로 스트리밍.

XCP measurement over Ethernet — a live DAQ view streaming two measurement channels as sparklines at 28 Hz.

임베디드 프레이밍

webtm-embed

열기 serial://…?framing=cobs 로 COBS+CRC 채널 다중화 링크를 — 🧩 Embed 패널에서 UART 하나를 깔끔한 논리 채널로 분리.

Embedded device panel over a COBS-framed serial link — a channel-multiplexed frame log with per-channel hex and decoded ASCII text.
소켓 하나로 모든 전송

모든 장치는 그저 URI일 뿐입니다: /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
기능

원격 콘솔에 필요한 모든 것

모든 작업을 웹 화면 하나로 — 연결, 유지, 브로드캐스트, 디버그.

끊기지 않는 터미널

세션당 256 KB 링 버퍼와 스마트 재연결이 놓친 모든 바이트를 재생합니다. 불안정한 Wi-Fi는 더 이상 문제가 아닙니다.

1:N 브로드캐스트 Ultra

하나의 명령을 여러 보드에 한 번에 — 병렬·순차·롤링으로 — 각 장치의 출력을 나란히 확인.

터치를 위한 설계

가상 키 바(Esc, Tab, Ctrl, 방향키)와 ⌘K 명령 팔레트로 휴대폰·태블릿에서도 진짜 터미널을 쓸 수 있습니다.

원격 페더레이션 Ultra

에이전트는 원격 보드의 시리얼이나 CAN을 agent:// 로 노출합니다 — 조인 토큰으로 자체 등록한 뒤, 지구 반대편의 하드웨어를 디버깅하세요.

세션 공유 Pro

라이브 세션의 읽기 전용 URL을 건네주기만 하면 — 상대방은 설치·계정·설정이 전혀 필요 없습니다.

어디서나 설치

10 MB 정적 바이너리 하나, CGO_ENABLED=0, 웹 에셋 내장. PWA 설치, 오프라인 지원, Cloudflare Tunnel로 플래그 하나면 외부에 공개.

AI 디버깅 Ultra · BYOK

크래시 로그에서 배포된 수정까지

당신의 모델을 가져오세요 — Claude, OpenAI, 또는 로컬 Ollama. 전체 흐름이 탭 안에서 이뤄집니다.

1

캡처

HardFault나 스택 트레이스가 시리얼 콘솔에 찍힙니다.

2

진단

모델이 로그를 읽고 근본 원인을 짚어냅니다.

3

수정 & 빌드

패치를 제안하고, 당신이 승인하면, 빌드합니다.

4

리포트

공유 가능한 웹 리포트가 무엇이 왜 바뀌었는지 기록합니다.

webtm을 쓰는 이유

탭 하나로 전체 툴체인을 대체

SSH 클라이언트는 SSH에서 멈춥니다. 시리얼 도구는 시리얼에서 멈춥니다. CAN과 진단 스위트는 각각 별개의 앱입니다. webtm은 작업대 전체입니다.

Teleport
tmate
minicomSavvyCANCANapewebtm
SSH 터미널
시리얼 / UART
CAN / CAN-FD 모니터
UDS 진단 (DoIP/ISO-TP)
XCP 측정 / DAQ
1:N 브로드캐스트 · AI 에이전트
브라우저에서 · iPad에서 동작
셀프호스트, 단일 바이너리

경쟁 제품은 모두 작업대의 한 점일 뿐입니다. 전부를 해내는 건 webtm뿐 — 브라우저에서, 셀프호스트로.

작업대에서도, 이동 중에도

iPad 브라우저에서 UART 디버깅

webtm은 PWA로 설치되며 터치 환경에서 전체 화면으로 전환됩니다. 가상 키 바가 Esc·Tab·Ctrl·방향키를 엄지 아래에 두고, 스와이프 드로어가 세션·포트·진단을 담습니다. 다른 어디서도 못 하는 것: 태블릿에서 하드웨어의 시리얼 콘솔을 여는 것.

PWA · 오프라인 지원 가상 키 바 스와이프 세션 드로어 ⌘K 팔레트
webtm on a phone — the swipe drawer open over a live SSH session, showing the gateway session, discovered serial ports (cu.usbserial-1420 · 115200, cu.debug-console · 921600), and one-tap tools for CAN, UDS, XCP, TRACE32, LIN and Embed.
처음부터 끝까지, 당신의 것

데이터는 절대 당신의 머신을 벗어나지 않습니다

webtm은 셀프호스팅입니다. ttyd와 시리얼 매니저는 127.0.0.1 에만 바인딩됩니다 — 게이트웨이가 유일한 관문으로, 인증·라이선스·세션 제한이 여기 있습니다. 원시 차량 진단 송신(DoIP/XCP)은 옵트인이며 기본은 꺼져 있습니다; tcp:// 에는 SSRF 가드가 있습니다. 라이선스는 Ed25519 서명으로 오프라인 검증되며, 시작 시 콜홈이 전혀 없습니다.

bcrypt / JWT 인증 localhost 전용 백엔드 오프라인 Ed25519 라이선스 이그레스 게이트 진단 감사 로그 (Ultra)
요금제

셀프호스트로 무료로 시작

직접 운영하세요 — 개인 및 비상업용은 무료. 팀, 확장, 하드웨어 플릿 기능이 필요할 때만 업그레이드.

Community

무료

개인 및 비상업용

  • SSH 세션 2개
  • 로컬 시리얼 포트 1개
  • CAN · UDS · XCP 진단
  • tmux 지속 · PWA · 가상 키
무료로 설치

Pro

$9 /월

현업 개발자를 위해

  • 무제한 세션 & 시리얼 포트
  • 읽기 전용 세션 공유
  • 다중 사용자 계정
  • 장치별 접근 제어
Pro 선택

Ultra

$39 /월

임베디드 팀과 디바이스 플릿을 위해

  • Pro의 모든 것
  • 원격 시리얼 / CAN (Agent)
  • 1:N 브로드캐스트
  • AI 디버깅 (BYOK)
  • 조건부 접근 · 감사 로그
Ultra 선택
전체 기능 매트릭스 보기
CommunityProUltra
SSH 터미널 세션2무제한무제한
로컬 시리얼 / UART 포트1무제한무제한
CAN · UDS · XCP 진단
tmux 지속 · PWA · ⌘K
읽기 전용 세션 공유
다중 사용자 계정
장치별 접근 제어
원격 시리얼 / CAN (Agent)
1:N 브로드캐스트
AI 디버깅 (BYOK)
조건부 접근 정책
감사 로그

결제는 Paddle 경유 · 라이선스는 Ed25519 서명되어 오프라인 검증됩니다.

시작하기

세 줄이면 실행

1

설치

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

정적 바이너리 하나가 PATH에 들어갑니다. 런타임도, 의존성도 없습니다.

2

실행

webtm up

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

3

열기

open http://localhost:4100

터미널, 시리얼, CAN, UDS, XCP, 그리고 AI 패널을 — 브라우저에서, 어떤 장치에서나.