utility

Web Serial Terminal

Send and receive serial Text or HEX, use command macros, and export TXT or JSONL session logs in a supported browser.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

Web Serial Terminal connects a supported browser to USB serial and other accessible devices. Configure the authorized port, then send and receive Text or HEX bytes and inspect incoming messages.

It supports configurable line endings, DTR / RTS / BREAK, up to 12 command macros, and TXT / JSONL log export. Clearing the display is separate from clearing saved records, and connection, sending and reconnection are not automatic.

Desktop Chrome and Edge are the primary browser targets. Web Serial requires a secure context and explicit port permission. Once the hosted HTML loads, serial bytes are handled directly between the browser and the authorized device rather than uploaded to a server.

Good for

  • Inspect serial output from a USB CDC device such as a Raspberry Pi Pico
  • Send text commands to a device and inspect its replies
  • View binary serial data as HEX and save the communication
  • Check behavior while changing line endings or baud settings
  • Store frequently used commands as macros and send them explicitly

What it can do

Key capabilities available in this tool.

How to use

  1. Open Web Serial Terminal in a supported browser and attach the serial device to the computer.
  2. Choose Choose device, select the correct port, and grant access in the browser picker.
  3. In Connection settings, match baud rate, data bits, stop bits, parity and flow control to the device, then Connect.
  4. Choose Text or HEX for incoming data, with optional timestamps and local echo.
  5. Choose Text or HEX to send; Text can use None, LF, CR or CRLF line endings. Press Send explicitly.
  6. Use Device control for DTR / RTS, BREAK or control keys only when needed. Scroll, search or copy previous output.
  7. Save repeated commands under Command macros, then execute them manually while connected.
  8. Export TXT / JSONL session logs when needed, then Disconnect. Reconnecting after unplugging USB is also manual.

Supported

  • Designed mainly for desktop Chrome and Edge; requires a secure context, navigator.serial and device permission.
  • Firefox Desktop 151+ requires a site-permission add-on. Hardware regression for this app on Firefox is not confirmed.
  • Android depends on browser, device and serial transport; wired USB serial is not guaranteed. iPhone/iPad cannot connect through Web Serial.
  • Baud rate, data bits, stop bits, parity, flow control, DTR / RTS and BREAK depend on OS, drivers and device support.
  • Send and receive UTF-8 text or raw HEX bytes. Text endings include None, LF, CR and CRLF.
  • TXT / JSONL logs include timestamps and raw bytes, with an approximate 20 MiB recording cap; communication continues afterward.
  • Up to 12 macros and some settings may be stored in localStorage. Serial session records stay in page memory.
  • Text/HEX communication, logs, macros and manual reconnection were tested on Pico MicroPython USB CDC; real UART electrical accuracy was not verified.

Limitations and notes

  • Connection is unavailable without Web Serial support, a secure context and port permission. Some devices need an OS driver.
  • A mobile layout does not guarantee wired USB serial on Android, and iPhone/iPad cannot use Web Serial.
  • Only one port is supported at a time, with no automatic connection, transmission or reconnection.
  • It does not emulate ANSI/VT100, parse Modbus, plot serial values or flash firmware.
  • Pico USB CDC tests did not verify real UART baud/parity/stop-bit signaling or the correctness of DTR/RTS/BREAK.
  • The approximate 20 MiB limit stops logging only; save needed records before clearing.
  • Session logs disappear on page close; macros and preferences do not sync and macros cannot be imported or exported.
  • Commands and DTR / RTS / BREAK can affect connected hardware; consult your device specifications.

Frequently asked questions

Can I use Chrome or Edge without a separate terminal program?

Yes, if a supported desktop Chrome or Edge browser can access your device through Web Serial. Some hardware still needs an OS driver.

Can I connect on iPhone or Android?

Not through Web Serial on iPhone/iPad. Android support varies by browser, hardware and transport, with no guarantee of wired USB serial.

Are my serial messages uploaded to a server?

No. Data passes directly between the browser and authorized hardware. The hosted HTML is downloaded initially, but serial payloads are not uploaded.

How do Text and HEX send modes differ?

Text sends UTF-8 characters with an optional ending; HEX sends the exact byte sequence without an added line ending.

Are serial logs automatically saved?

No. Session logs remain in page memory and TXT/JSONL export is manual. Settings and macros may use localStorage, but session logs do not.

Does serial communication stop at 20 MiB?

No. The approximate 20 MiB budget caps export records. Logging stops, but serial communication continues.

Offline version and source code

The single HTML file contains the runtime without external CDN, API, analytics or telemetry. Its CSP uses connect-src 'none'. The hosted version downloads HTML initially; Web Serial permissions under file:// vary by browser, so HTTPS is more reliable for device access.

View source on GitHub