CAN 버스 모니터
클래식 + FD16진 필터·일시정지·프레임 인젝터를 갖춘 실시간 프레임 스트림. BRS를 지원하는 클래식 CAN과 CAN-FD — 확장 ID, RTR까지 전부.
대부분의 웹 터미널은 SSH에서 멈춥니다. webtm 은(는) 시리얼/UART, CAN / CAN-FD, UDS, XCP까지 구사합니다 — 하드웨어·차량 실시간 진단에 AI 보조 디버깅까지. 전부 셀프호스팅이며, 직접 돌리는 단일 정적 바이너리 위에서 동작합니다.
$ curl -fsSL https://webtm.dev/install.sh | sh
개인 사용 무료 · iPad에서 동작 · 계정 없이 체험
WebSocket 위의 완전한 xterm.js 에뮬레이션. tmux가 연결이 끊겨도 모든 세션을 유지합니다 — 탭을 닫았다 돌아와도 아무것도 잃지 않습니다.
열기 /dev/ttyUSB*, ttyACM*, tty.* 을 브라우저에서. 핫플러그 감지가 재시작 없이 새 어댑터를 찾아냅니다 — iPad에서도.
CAN / CAN-FD 모니터, DoIP·ISO-TP 위의 UDS 차량 진단, 실시간 DAQ를 갖춘 XCP 계측 — 모두 하나의 통합 트랜스포트에서.
시리얼 로그를 당신의 모델(BYOK)에 넘기면 근본 원인 분석, 코드 수정, 빌드, 공유 가능한 리포트까지 — 화면을 떠나지 않고.
시리얼, CAN, 차량 UDS, XCP 캘리브레이션 — 하나의
/ws/x WebSocket 으로 다중화. URI로 장치를 고르면 패널이 해당 프로토콜을 렌더링합니다.
16진 필터·일시정지·프레임 인젝터를 갖춘 실시간 프레임 스트림. BRS를 지원하는 클래식 CAN과 CAN-FD — 확장 ID, RTR까지 전부.
DoIP/TCP 및 ISO-TP/CAN(CAN-FD 포함) 위의 서비스 빌더. 흐름 제어 페이싱, 읽기 전용 게이팅, 그리고 DoIP UDP Discover 로 공지된 ECU를 검색.
이더넷(TCP/UDP)과 CAN 위의 XCP. 커맨드 빌더와 실시간 DAQ 뷰 — 주기적 측정값을 브라우저로 바로 스트리밍.
열기 serial://…?framing=cobs 로 COBS+CRC 채널 다중화 링크를 — 🧩 Embed 패널에서 UART 하나를 깔끔한 논리 채널로 분리.
모든 장치는 그저 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는 더 이상 문제가 아닙니다.
하나의 명령을 여러 보드에 한 번에 — 병렬·순차·롤링으로 — 각 장치의 출력을 나란히 확인.
가상 키 바(Esc, Tab, Ctrl, 방향키)와 ⌘K 명령 팔레트로 휴대폰·태블릿에서도 진짜 터미널을 쓸 수 있습니다.
에이전트는 원격 보드의 시리얼이나 CAN을 agent:// 로 노출합니다 — 조인 토큰으로 자체 등록한 뒤, 지구 반대편의 하드웨어를 디버깅하세요.
라이브 세션의 읽기 전용 URL을 건네주기만 하면 — 상대방은 설치·계정·설정이 전혀 필요 없습니다.
10 MB 정적 바이너리 하나, CGO_ENABLED=0, 웹 에셋 내장. PWA 설치, 오프라인 지원, Cloudflare Tunnel로 플래그 하나면 외부에 공개.
당신의 모델을 가져오세요 — Claude, OpenAI, 또는 로컬 Ollama. 전체 흐름이 탭 안에서 이뤄집니다.
HardFault나 스택 트레이스가 시리얼 콘솔에 찍힙니다.
모델이 로그를 읽고 근본 원인을 짚어냅니다.
패치를 제안하고, 당신이 승인하면, 빌드합니다.
공유 가능한 웹 리포트가 무엇이 왜 바뀌었는지 기록합니다.
SSH 클라이언트는 SSH에서 멈춥니다. 시리얼 도구는 시리얼에서 멈춥니다. CAN과 진단 스위트는 각각 별개의 앱입니다. webtm은 작업대 전체입니다.
| Teleport tmate | minicom | SavvyCAN | CANape | webtm | |
|---|---|---|---|---|---|
| SSH 터미널 | ✓ | — | — | — | ✓ |
| 시리얼 / UART | — | ✓ | — | — | ✓ |
| CAN / CAN-FD 모니터 | — | — | ✓ | ✓ | ✓ |
| UDS 진단 (DoIP/ISO-TP) | — | — | — | ✓ | ✓ |
| XCP 측정 / DAQ | — | — | — | ✓ | ✓ |
| 1:N 브로드캐스트 · AI 디버그 | — | — | — | — | ✓ |
| 브라우저에서 · iPad에서 동작 | — | — | — | — | ✓ |
| 셀프호스트, 단일 바이너리 | — | ✓ | ✓ | — | ✓ |
경쟁 제품은 모두 작업대의 한 점일 뿐입니다. 전부를 해내는 건 webtm뿐 — 브라우저에서, 셀프호스트로.
webtm은 PWA로 설치되며 터치 환경에서 전체 화면으로 전환됩니다. 가상 키 바가 Esc·Tab·Ctrl·방향키를 엄지 아래에 두고, 스와이프 드로어가 세션·포트·진단을 담습니다. 다른 어디서도 못 하는 것: 태블릿에서 하드웨어의 시리얼 콘솔을 여는 것.
webtm은 셀프호스팅입니다. ttyd와 시리얼 매니저는 127.0.0.1 에만 바인딩됩니다 — 게이트웨이가 유일한 관문으로, 인증·라이선스·세션 제한이 여기 있습니다. 원시 차량 진단 송신(DoIP/XCP)은 옵트인이며 기본은 꺼져 있습니다; tcp:// 에는 SSRF 가드가 있습니다. 라이선스는 Ed25519 서명으로 오프라인 검증되며, 시작 시 콜홈이 전혀 없습니다.
직접 운영하세요 — 개인 및 비상업용은 무료. 팀, 확장, 하드웨어 플릿 기능이 필요할 때만 업그레이드.
개인 및 비상업용
현업 개발자를 위해
임베디드 팀과 디바이스 플릿을 위해
| Community | Pro | Ultra | |
|---|---|---|---|
| SSH 터미널 세션 | 2 | 무제한 | 무제한 |
| 로컬 시리얼 / UART 포트 | 1 | 무제한 | 무제한 |
| CAN · UDS · XCP 진단 | ✓ | ✓ | ✓ |
| tmux 지속 · PWA · ⌘K | ✓ | ✓ | ✓ |
| 읽기 전용 세션 공유 | — | ✓ | ✓ |
| 다중 사용자 계정 | — | ✓ | ✓ |
| 장치별 접근 제어 | — | ✓ | ✓ |
| 원격 시리얼 / CAN (Agent) | — | — | ✓ |
| 1:N 브로드캐스트 | — | — | ✓ |
| AI 디버깅 (BYOK) | — | — | ✓ |
| 조건부 접근 정책 | — | — | ✓ |
| 감사 로그 | — | — | ✓ |
결제는 Paddle 경유 · 라이선스는 Ed25519 서명되어 오프라인 검증됩니다.
curl -fsSL https://webtm.dev/install.sh | sh
정적 바이너리 하나가 PATH에 들어갑니다. 런타임도, 의존성도 없습니다.
webtm up
Starts on localhost:4100. Add --auth or --tunnel when
you're ready to expose it.
open http://localhost:4100
터미널, 시리얼, CAN, UDS, XCP, 그리고 AI 패널을 — 브라우저에서, 어떤 장치에서나.