Skip to content

Releases: ssimpson89/bauddy

v0.1.0

Choose a tag to compare

@ssimpson89 ssimpson89 released this 17 Oct 16:08
a52635d

bauddy is a serial console for servers, switches and routers. Plug in a USB console cable, run bauddy, and you're on the console. It works out the port and baud rate for you, and the keys you need are always on screen.

🔌 What it does

  • Finds the port. With one cable it connects straight away. With none plugged in yet, it waits for one. With several, it lists them. Not sure which is yours? Unplug it and plug it back in, and bauddy points to it. A server's own serial console is left out of the list, so you don't end up typing into its login prompt.
  • Finds the baud rate. It listens to the device and picks the rate that makes sense, then remembers it for that cable. It doesn't send anything to the device without asking first. Until the device answers, only Enter goes out, because keys at the wrong rate can reach a Linux console as a BREAK.
  • Names the console. When the device shows its prompt (core-sw-01#, admin@core-fw>), that name goes on the bottom line, in the window title and in the cable list.
  • Shows the keys. There's one key to remember, ctrl+], and it's always on the bottom line. Press it to see the rest. Help fits a standard 80×24 terminal.
  • Tells you when something's wrong. If the output turns to garbage, the bottom line suggests detecting the rate again. If the cable comes out, the bar turns red, and bauddy reconnects when you plug it back in.
  • Keeps a log if you ask. Press ctrl+] then l. The log includes what was already on screen, so you can turn it on after the fact.
  • Scrolls back and searches through the last 10,000 lines of output.
  • Pastes carefully. Pasting a config sends it a line at a time and waits for the device to catch up. It stops at the first error, and asks before pasting commands that commonly reboot or wipe the device.
  • Handles the odd ones. It can send BREAK for Cisco ROMMON or Linux SysRq. It has fixes for a Backspace that prints ^?, and for lines that step further right each time. It detects 7-bit (7E1) equipment too.
  • Shares the console. Open bauddy twice on the same cable, and both windows see everything and either can type (not on Windows yet).

🤖 With an AI agent

bauddy mcp is an MCP server, so Claude or any other Model Context Protocol client can use the console while you watch.

  • Approvals: it asks you first before commands that commonly reboot, erase or save the device, and before BREAK or anything typed at a bootloader.
  • Watching it work: while it works, the bottom line turns violet. esc stops it, and ctrl+c stops it and interrupts the device. Either way it stays paused until you press ctrl+] p, and the bottom line tells you so.
  • What it reads: it sees the console as you do, including shell line editing. It stops quickly at pagers such as less, and it waits for the prompt between commands.

📦 Install

With Homebrew on a Mac or Linux:

brew install ssimpson89/tap/bauddy

On Linux there are also .rpm (signed) and .deb packages for x86_64, arm64 and armv7: sudo dnf install ./bauddy-*.rpm or sudo apt install ./bauddy_*.deb. Or download the archive for macOS, Linux or Windows below, or run go install github.com/ssimpson89/bauddy/cmd/bauddy@latest.

✅ Tested on

  • A USB console cable on a Linux-based switch, a Rocky Linux server and an OPNsense router.
  • macOS and Linux.
  • Not yet tested on Windows.

Free and open source (MIT). Found a problem? Open an issue.

v0.0.10-beta.1

v0.0.10-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 16 Oct 18:59
6335518

bauddy's help now fits a standard terminal, and on a server it waits for your cable instead of opening the server's own console.

Help that fits

ctrl+] then ? used to be taller and wider than an 80×24 window, so its bottom was cut off, and that's where the rarely needed fixes are. Now it fits whole:

  • ?, q and esc are left out because the bottom line always shows them. bauddy keys still lists every key.
  • The fixes are listed by what you'd see, under "If something looks wrong": x "Backspace shows ^? and won't erase" and n "Each line starts further right", each with [on] or [off].
  • B says what BREAK is for (ROMMON, boot monitor, SysRq on Linux), and S says what it fixes: wrapped lines at a Linux shell.
  • p (pause the AI tool) appears only when one is connected.
  • In a smaller window, such as a tmux split, help drops its frame. If anything is still cut off, it says to run bauddy keys.

The server's own console

On a server that boots with console=ttyS0, running bauddy with no cable plugged in used to connect to ttyS0. That port leads back to the server you're on, and its login prompt takes half of what comes in. bauddy now leaves it out, shows the usual "plug in your console cable" screen, and connects as soon as you plug a cable in. bauddy ttyS0 still opens it if you really mean it, and a USB cable is always listed.

Early beta: tested with a real USB console cable, on a Linux-based switch and on a Rocky Linux server; not yet on Windows.

Full Changelog: v0.0.9-beta.1...v0.0.10-beta.1

v0.0.9-beta.1

v0.0.9-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 16 Oct 15:57
c7c4f68

bauddy now names the console after the device it's plugged into, draws its waiting and cable screens in a proper box, and ships Linux packages.

Names from the prompt

When the device shows its prompt, such as core-sw-01# or admin@core-fw>, bauddy uses that name:

  • on the bottom line, in place of the port name;
  • in the terminal window or tab title (core-sw-01 · bauddy), so you can tell consoles apart;
  • in the cable picker (core-sw-01 · 9600 last time) and in new log file names.

It's remembered per cable and replaced when the cable is on another device. Until this session's prompt shows, last time's name is dimmed with a ?. Factory defaults such as Switch or Router and bootloader prompts are ignored, and bauddy only reads what the device prints; it never sends anything to find out.

Waiting and choosing a cable

The "plug in your console cable" screen and the cable picker now sit in the same centred box as help and the baud picker, instead of in the top corner of an empty screen.

If you need them

Two rarely needed fixes, listed under ctrl+] then ?:

  • x: Backspace sends ^H instead of DEL, for the few consoles (some BIOS and RAID setup screens) that print ^? instead of deleting.
  • n: starts each line at the left, for devices whose output staircases across the screen.

Both are saved per cable and shown after the baud rate on the bottom line when they're on.

Linux packages

Each release now has an .rpm and a .deb for x86_64, arm64 and armv7. Install with sudo dnf install ./bauddy-*.rpm or sudo apt install ./bauddy_*.deb. The RPMs are signed.

Early beta: tested with a real USB console cable and on a Linux-based switch; not yet on Windows.

Full Changelog: v0.0.8-beta.1...v0.0.9-beta.1

v0.0.8-beta.1

v0.0.8-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 16 Oct 03:10
a23ec41

Safer on real hardware: bauddy no longer sends anything that can reach a Linux console as a BREAK while it finds the baud rate, and it won't let you type at a rate the device hasn't answered at.

Baud rate safety

A key sent at a rate much slower than the device's arrives as a BREAK. On a Linux console with Magic SysRq that makes the next key a command (b reboots it), and on Cisco gear during boot it drops to ROMMON. At such a rate the device's replies are lost too, so it just looks dead.

  • Finding the rate never sends a BREAK. When bauddy presses Enter to wake a quiet device, it now tries the fastest rate first and stops at the first reply, however short, so it never sends at a rate slower than the device's.
  • A remembered rate that gets no reply is caught. If you press Enter and nothing comes back, the bottom line says no reply at 9600 · wrong baud? and offers to detect the rate.
  • Only Enter goes out until the device answers. Other keys, pastes and the window size are held back with a note, so nothing reaches a device at a rate that may be wrong. Changing the rate, here or in another window, or reconnecting, needs a fresh answer.
  • If detection leaves a password prompt, bauddy says why: a stray character from a faster rate may have gone in as a username. Press Enter to start the login again.
  • AI agents (bauddy mcp) follow the same rules: only Enter until the device answers, and they're told when even that gets no reply.

Fixes

  • Stopping or pausing an AI agent after it finished a command now erases text it typed but never entered, and no longer backspaces into your prompt.
  • bauddy no longer leaves an empty lock file behind for every console it has opened.

Homebrew

The cask now uses Homebrew 7's install steps, so brew no longer warns that the tap's casks call a deprecated postflight. brew upgrade bauddy picks this up.

Early beta: tested with a real USB console cable and on a Linux-based switch; not yet on Windows.

Full Changelog: v0.0.7-beta.1...v0.0.8-beta.1

v0.0.7-beta.1

v0.0.7-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 14 Oct 16:33
8210fb7

Start bauddy before you plug in, pick between cables on its own screen, and see which one another window already has open.

Cables

  • No cable yet? bauddy waits for one and connects as soon as it's plugged in, instead of exiting. Press q to give up.
  • Several cables are listed on bauddy's own screen, with the adapter's name, its port, and what bauddy remembers about it (core-sw · 9600 last time). Not sure which is yours? Unplug it and plug it back in: it's marked just plugged in and the cursor moves to it. Use the arrow keys and Enter, or press 1–9.
  • A cable already open in another bauddy window is marked open in bauddy and listed last. Choosing it joins that console.
  • One cable still connects straight away. A USB cable plus a computer's own serial port asks which.
  • Intel AMT serial-over-LAN ports, found on many business laptops, are no longer listed. Name one to use it: bauddy ttyS4.

Linux

  • Ports are listed without opening them, so a server's own console on ttyS0 isn't disturbed while bauddy looks.
  • Cables on vendor drivers (Exar, some WCH) now show up.
  • A real port you don't have permission for is listed, so bauddy can tell you which group to join.
  • bauddy ttyS4 now means /dev/ttyS4, even for a port bauddy doesn't list.

Fixes

  • ctrl+] then r says "reconnecting", not that the adapter was unplugged.
  • A baud rate the adapter can't do gets a plain message: "the adapter doesn't support that baud rate or framing".
  • Two cables with the same serial number now get a console each, so a second window can find and join the right one.

Homebrew

brew install ssimpson89/tap/bauddy@beta gets every release. ssimpson89/tap/bauddy will get stable releases only once there is one; until then both get the betas.

Early beta: tested with a real USB console cable, but not yet on a real switch or on Windows.

Full Changelog: v0.0.6-beta.1...v0.0.7-beta.1

v0.0.6-beta.1

v0.0.6-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 12 Oct 23:39
6979901

bauddy now installs with Homebrew on macOS and Linux. (v0.0.5-beta.1 was meant to do this, but its Homebrew step failed.)

brew install ssimpson89/tap/bauddy

brew upgrade picks up new releases, betas included. On a Mac there's no "unidentified developer" warning: Homebrew installs the binary without the quarantine flag that makes macOS block a downloaded file.

The downloads on this page work as before.

Early beta: not yet tested on real hardware or on Windows.

Full Changelog: v0.0.5-beta.1...v0.0.5-beta.2

v0.0.5-beta.1

v0.0.5-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 12 Oct 23:01
8fba3e6

bauddy now installs with Homebrew on macOS and Linux:

brew install ssimpson89/tap/bauddy

brew upgrade picks up new releases, betas included. On a Mac there's no "unidentified developer" warning: Homebrew installs the binary without the quarantine flag that makes macOS block a downloaded file.

The downloads on this page work as before.

Early beta: not yet tested on real hardware or on Windows.

Full Changelog: v0.0.4-beta.1...v0.0.5-beta.1

v0.0.4-beta.1

v0.0.4-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 12 Oct 19:52
09c1197

bauddy can now share a console: open it twice on one port, or let an AI agent join the window you already have open and watch every command it types. Plus a new look in console-cable blue.

Share a console

Open bauddy twice on the same port and both windows show everything the device prints; either can type. Whoever opened it first holds the port. If that window quits, the other takes over by itself, at the same baud rate. (Not on Windows yet.)

Watch the AI agent work

If you have the console open in bauddy, bauddy mcp now joins your window instead of taking the port, so you see each command as the agent types it.

  • While it's working, the bottom line turns violet: Claude Code is working esc stop it ctrl+c stop and interrupt. It shows the name your AI tool reports, such as Claude Code or Codex.
  • Your other keys are ignored until it's done, so they can't land in the middle of its command.
  • esc stops it before its next keystroke and erases a command it hadn't entered. ctrl+c stops it and interrupts the device.
  • Stopping it also pauses it: it can still read, but can't type until you press ctrl+] then p. The same keys pause it at any time.
  • It waits while you have text on the line or have just typed, and it sees only what the console prints after it joined, so you can log in first.
  • Its commands are marked in your history and log: ── Claude Code typed: show interfaces status ──.

Read-only mode

bauddy mcp --read-only lets the agent connect and read the console, but it has no way to type anything. Handy for "look, don't touch".

Console-cable blue

bauddy's accent is now the light blue of a Cisco console cable: the command bar, the ctrl+] key on the status line, notes and search highlights. The logo and screenshots match. On light terminals, history search matches use a deeper blue so they stay readable.

Also

  • The README has a quick reminder of what each claude mcp add --scope does, and how to load bauddy for just one session.
  • Install now covers which file to download, the macOS warning, and how to check the version and checksum.
  • SECURITY.md: report security problems privately through GitHub.

Early beta: not yet tested on real hardware or on Windows.

Full Changelog: v0.0.3-beta.1...v0.0.4-beta.1

v0.0.3-beta.1

v0.0.3-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 12 Oct 14:29
dc8ba17

bauddy can now be an MCP server, so an AI agent such as Claude can use the console for you, and it asks you before anything risky.

Let an AI agent use the console (MCP)

bauddy mcp is a Model Context Protocol server for serial consoles. Add it to Claude Code:

claude mcp add --scope user bauddy -- bauddy mcp

Then ask something like "the switch on my console cable isn't passing traffic, take a look." The agent can list ports, connect (bauddy finds the adapter and detects the baud rate), run commands, answer prompts, and read or search the output.

  • Commands arrive intact. They go through the same careful paste as the console: typed as fast as the device echoes them, the next line only once the prompt is back, stopping at the first error or question.

  • You approve anything risky, not the agent. bauddy asks you directly before it:

    • reboots, erases or upgrades
    • saves or commits the configuration
    • runs debug or clears BGP sessions
    • sends BREAK
    • answers the device's own [confirm]
    • types anything at a bootloader prompt

    Each approval is for that exact command, once. If your MCP client can't ask you, the command is refused unless you start bauddy with --allow-risky.

  • Everything is logged to ~/.local/state/bauddy/logs (%LocalAppData%\bauddy\logs on Windows), readable only by you.

  • Your saved baud rates are used but never changed.

It's new, so treat it as experimental. The approval check is a safety net, not a guarantee: it doesn't ask about configuration changes such as shutting an interface, so read what the agent wants to run. For Claude Desktop setup, see the README.

Safer pasting

The confirmation before a paste now catches more ways to reboot or wipe a device:

  • Junos, FortiGate, PAN-OS, NX-OS, ASA, MikroTik, Linux and BMC commands
  • Cisco abbreviations (rel, wr er)
  • commands behind do, run or sudo, or inside shell chains

reload cancel no longer asks.

Fixes

  • After detection showed the device's prompt, bauddy no longer says "nothing received yet" under it.
  • Keys that use the port (b, d, r, B, S) no longer race baud detection. They say they didn't run and to try again when detection finishes, instead of quietly picking a rate that detection then overwrote.
  • While detecting, the status line says typing is ignored until it's done, and the note no longer disappears early.
  • If detection hears nothing, bauddy says how to try again.
  • Logs are created readable only by you.
  • Garbage at the wrong baud rate can no longer grow a single line without limit.

Full Changelog: v0.0.2-beta.1...v0.0.3-beta.1

v0.0.2-beta.1

v0.0.2-beta.1 Pre-release
Pre-release

Choose a tag to compare

@ssimpson89 ssimpson89 released this 11 Oct 01:55
28973f5

The second pre-release of bauddy. You can now scroll back through earlier output and search it, and the key bar shows every key.

Still a beta. It's tested against simulated devices, not yet on real hardware.

What's new

Scroll back and search. Press ctrl+] then h to scroll back through earlier output: the last 10,000 lines, shown in place of the console.

  • Scroll with the arrows, PgUp/PgDn, Home/End, or g/G on keyboards without Home and End.
  • Press / to search. Matches are highlighted, and n/N step to older and newer ones. Lowercase finds any case, so error finds ERROR.
  • ctrl+] then / jumps straight to a search.
  • The view stays put while the device keeps printing. The bottom line counts new lines, and End catches up.
  • Esc goes back to the console.

You can still select and copy text with the mouse, in history and everywhere else.

Every key on the key bar. Pressing ctrl+] now lists every key, not just five:

? help  b baud  d detect  r reconnect  l log  h history  c clear  │  B break  S resize     q quit  esc back

On a narrow window the less-used keys give way first. ?, q and esc always stay, and ? reads "more" when anything is hidden. Keys that send something to the device (B, S) sit after the divider.

Logs say more. Each log starts with the device, port, line settings and start time, and notes when BREAK or the window size was sent. A log records what the device sends back, including echoed commands, so a password typed as part of a command (enable secret …) ends up in it.

Fixes

  • If a log can't be written (a full disk, for example), bauddy now says that logging stopped instead of hiding it.
  • A failed window-size send is reported instead of shown as sent.
  • With no adapter plugged in, bauddy now says you can name the port yourself, for example bauddy /dev/cu.usbserial-1410.
  • Builds that aren't from a release show their version as dev (commit).

Download

System File
macOS, Apple Silicon bauddy_0.0.2-beta.1_darwin_arm64.tar.gz
macOS, Intel bauddy_0.0.2-beta.1_darwin_amd64.tar.gz
Linux, x86-64 bauddy_0.0.2-beta.1_linux_amd64.tar.gz
Linux, ARM64 bauddy_0.0.2-beta.1_linux_arm64.tar.gz
Linux, Raspberry Pi (32-bit) bauddy_0.0.2-beta.1_linux_armv7.tar.gz
Windows bauddy_0.0.2-beta.1_windows_amd64.zip

Unpack it and put bauddy somewhere on your path. With Go installed you can also run:

go install github.com/ssimpson89/bauddy/cmd/bauddy@v0.0.2-beta.1

On macOS, the downloaded file is blocked the first time because it isn't signed by Apple. Allow it in System Settings → Privacy & Security, or run xattr -d com.apple.quarantine bauddy.

Known limitations

  • Not yet tested on real serial hardware.
  • Windows builds are included but untested.
  • History is plain text, without colours.

Full Changelog: v0.0.1-beta.1...v0.0.2-beta.1