pineTERM: A Web Serial Terminal That Gets the Details (Probably) Right
Web-based serial terminals aren't new. The Web Serial API has been around long enough that there's a dozen options out there, and I've tried most of them. Some are beautiful but limited. Others are powerful but clunky. Many are just... abandoned.
After bouncing between tools that each missed something critical, I built pineTERM - not because the world needed another terminal, but because I needed one that actually handled the workflow without fighting me.
What Was Missing Elsewhere
"Why No Hex View?"
Several popular web terminals are ASCII-only. That's fine for Arduino debug prints, but useless when you're reverse-engineering a binary protocol or debugging raw sensor frames. pineTERM toggles between synchronized HEX and ASCII views instantly. No page reload, no lost context.
Automation That Doesn't Require a CS Degree
Some terminals have "macro" features buried in menus. Others expect you to write JavaScript plugins. I wanted simple JSON files:
[
{ "type": "ascii", "data": "AT+GMR\r\n", "postDelay": 500 },
{ "type": "hex", "data": "FF FE 01 00", "times": 5, "postDelay": 100 }
]
Load, run, done. Loops, delays, conditional skips — no coding required.
Logs That Actually Save
You'd be surprised how many web terminals trap your data in the browser. pineTERM exports timestamped text files with one click. Document your debugging session. Share it. Archive it. Your data belongs to you.
The "Almost There" Problem
Existing tools would get 80% right: great UI, no hex. Or good hex view, no automation. pineTERM aims for the complete package without the bloat.
The Specifics
| Feature | What You Get |
|---|---|
| Views | Toggle HEX/ASCII with synchronized scrolling |
| Input | Auto-formatting hex (spaces added automatically), ASCII with selectable line endings (CR/LF/CRLF/None) |
| Automation | JSON command sequences with loops, delays, and skip flags for test commands insertion |
| Timing | Packet framing based on inter-byte gaps (configurable μs threshold) |
| Export | Full session logs with timestamps |
| Install | Zero. Single HTML file, works offline |
Under the Hood
Vanilla JavaScript. No frameworks, no build step, no dependencies. The Web Serial API handles the hardware; pineTERM handles the interface. ~50KB total.
Requirements: Chrome 89+, Edge 89+, or Opera (desktop). Firefox and Safari don't support Web Serial yet.
Try It
Live: https://wespeakenglish.github.io/pineTERM/
Source: https://github.com/WeSpeakEnglish/pineTERM
It's not revolutionary. It's just the terminal I wanted after trying everything else. Maybe it's the one you wanted too.