Interactive device picker
Run serterm and choose from the connected devices. USB devices are listed first, and the duplicate macOS /dev/tty.* entries are hidden.
Open-source serial terminal
Pick a device and a baud rate, and you're connected. Use the interactive picker yourself, or run the plain commands from scripts and AI agents.
curl -fsSL https://raw.githubusercontent.com/eliachiarucci/serterm/main/install.sh | sh
01 / Features
An interactive picker when you're at the keyboard, plain stdout when a script or an AI agent is running it.
Run serterm and choose from the connected devices. USB devices are listed first, and the duplicate macOS /dev/tty.* entries are hidden.
serterm open connects and streams logs to stdout until interrupted, so you can pipe it, grep it, or redirect it to a file.
$ serterm open /dev/cu.usbmodem1101 -b 9600 -ca 5
Send a command and capture the reply with -s and -ca, or fire a message and close with -c. Commands exit on their own, which makes them easy to run from scripts and agents.
$ serterm open … -s "status" -ca 3
Hit ctrl+s in the terminal view to save the output stream to a log file. ctrl+l clears it.
serterm never captures the mouse, so your terminal's own text selection and copy shortcuts work as usual. The output still scrolls with the mouse wheel.
A single self-contained binary with no runtime dependencies. Install script for macOS and Linux, zips for Windows, packages for Linux distros. serterm update installs the latest release.
02 / Install
One command on macOS and Linux, a zip on Windows, and .deb, .rpm and .apk packages. You can also build it from source with Go.
Already installed?serterm update fetches the latest release.
Run the install script. Later, serterm update updates to the latest release by running the same script.
curl -fsSL https://raw.githubusercontent.com/eliachiarucci/serterm/main/install.sh | sh
Then plug in a board and run serterm. Check the installed version with serterm --version.
There's no installer, just one executable.
serterm.exe.PATH..deb, .rpm, and .apk packages are attached to each release.
Clone the repository and build with Go. It produces a single self-contained binary, no runtime dependencies.
go build -ldflags="-s -w" -o serterm .
Run the tests with go test ./...
03 / Usage
Running serterm with no arguments starts the interactive device picker. There are also a few subcommands for when you want plain output.
| Command | Action |
|---|---|
serterm | start the interactive device picker |
serterm list | list connected serial devices (device, tab, description) |
serterm open <device> [flags] | connect and stream logs to stdout until interrupted (ctrl+c) |
serterm update | update serterm to the latest release (runs the install script) |
serterm help | show usage |
serterm --version | print the version |
| Flag | Action |
|---|---|
-b, --baud N | baud rate default 115200 |
-s, --send TEXT | send TEXT to the device after opening, \n appended (the response shows up in the stream) |
-ca, --close-after N | exit after N seconds max 60 |
-c, --close | close right after sending, without reading a response (use with --send to just fire a message) |
# open the interactive device picker serterm # capture 5 seconds of logs serterm open /dev/cu.usbmodem1101 -b 9600 -ca 5 # send a command, capture the reply serterm open /dev/cu.usbmodem1101 -s "status" -ca 3 # just send a message and close serterm open /dev/cu.usbmodem1101 -s "reboot" -c
/dev/tty.* duplicates are hidden. Plugged in a new board? Press r to refresh the list.\n is appended)$serterm