A terminal (UART) server and client written in Rust.
Inspired by termhub but rewritten from scratch in Rust (not compatible).
If used without the server ability, then it is very similar to picocom or minicom.
- Serial port connections (e.g.,
/dev/ttyUSB0) - TCP device connections (connect to remote serial servers)
- TCP server mode (expose a serial port over the network)
- Multiple simultaneous TCP clients
- Echo mode for testing without hardware
- Configurable keybindings
- Timestamp filtering on output
- Auto-reconnection on disconnect
cargo build --release
sudo cp target/release/crabterm /usr/local/bin/# Connect to a serial device
crabterm /dev/ttyUSB0
# Connect with specific baudrate
crabterm /dev/ttyUSB0 -b 9600
# Connect to a TCP device
crabterm 192.168.1.100:4000
# Start a TCP server exposing a serial port
crabterm /dev/ttyUSB0 -p 4000
# Echo mode (for testing)
crabterm echo
# Headless mode (daemon, no local console)
crabterm /dev/ttyUSB0 -p 4000 --headlessConfiguration file: ~/.crabterm
Example:
# Quit with Ctrl+Q
bind ctrl+q quit
# Prefix mode: Ctrl+A followed by another key
prefix ctrl+a
# Send break signal with Ctrl+A, b
bind ctrl+a b send \x00
# Toggle timestamp filter
bind ctrl+a t filter-toggle timestamp
MIT