BaudBound listens to serial devices and fires configurable actions whenever incoming data matches your conditions. Hook up any serial device — a microcontroller, a barcode scanner, a custom sensor — and turn its output into webhooks, launched programs, opened URLs, simulated keystrokes, file writes, notifications, and more.
- Connect to multiple devices simultaneously, each with independent port, baud rate, data bits, stop bits, parity, and flow control settings
- Auto-connect on startup and auto-reconnect if a device is unplugged
- Send data back to a connected device as an action
- Text — starts with, ends with, contains, not contains, not starts with, equals
- Pattern — full regular expression match
- Numeric — is numeric, greater than, less than, between (min,max)
- Length — input length equals
- State — state equals, state not equals, state is empty
- Device — device equals, device not equals (filter by source device)
- Call webhook — HTTP GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS with custom headers, body, durable delivery, acknowledgement checks, WebSocket ACK support, retries, and input preprocessing
- Open URL — open in the default system browser
- Launch program — with optional arguments and Run As Admin
- Type text — simulate keyboard input via clipboard paste
- Copy to clipboard — place text on the clipboard without pasting
- Show notification — system-tray balloon (INFO / WARNING / ERROR)
- Write to file — overwrite a file on each trigger
- Append to file — append a line to a file on each trigger
- Play sound — play a .wav file, or system beep if no path given
- Send to device — write a string to a connected serial device
- Set state / Clear state — manage named state variables
- Multiple conditions and actions per event
- Variable substitution — use
{input},{timestamp}, and{delivery.id}in webhook values; optional URL-encoding for webhooks - State machine — set and check named state variables to build multi-step flows
- Event ordering — reorder events and control whether all matches fire or only the first
- Condition-first sorting — optionally evaluate conditional events before unconditional ones
- System tray — minimize to tray, start hidden, double-click to restore
- Headless mode (
--nogui) — full serial processing with no window or tray icon - OS autostart — register on login via Windows registry, macOS LaunchAgent, or Linux
.desktopfile - Shortcut creation — create a shortcut to BaudBound in any folder
- CLI flags —
--hidden,--debug,--nogui,--version - Auto-updater — background update check with in-app download and restart
- Debug overlay — real-time FPS, memory, JVM, and device status panel
Download the latest release from the Releases page and run:
java -jar BaudBound.jarJava 21 or newer is required.
git clone https://github.com/NATroutter/BaudBound.git
cd BaudBound
mvn package
java -jar target/BaudBound.jarDevelopment builds are available via Jenkins and the Maven repository:
- Jenkins: https://jenkins.nat.gg/job/general/job/BaudBound/
- Maven repository: https://repo.nat.gg/
- Open Devices and add your serial device (port, baud rate, etc.)
- Go to Actions → Webhooks or Actions → Programs to set up reusable actions
- Create an Event — add conditions to filter incoming data and actions to run when they match
- Enable auto-connect on the device, or click the connect button — BaudBound will start listening
All settings are saved automatically to a JSON file in the platform config directory:
- Windows —
%APPDATA%\BaudBound\storage.json - macOS —
~/Library/Application Support/BaudBound/storage.json - Linux —
~/.config/BaudBound/storage.json
No manual editing required.
Made by NATroutter




