GitHub - rhoopr/bambutop: A monitoring TUI for Bambu Lab printers

4 min read Original article ↗

BambuTop

License: GPL v3 GitHub release GitHub Downloads Homebrew

A terminal-based status monitor for Bambu Lab printers. htop, but for your 3D printer.

BambuTop Detail View BambuTop Aggregate View

Features

Print Monitoring

  • Job name, layer count, elapsed time, time remaining, and ETA clock time
  • Current print phase: Heating Bed, Heating Nozzle, Auto-Leveling, Printing, etc.
  • Visual progress bar with percentage
  • Print failure reason and error codes when a job fails

Temperatures & Fans

  • Nozzle, bed, and chamber temperatures with visual gauges (°C or °F)
  • Safe chamber temperature range based on active filament type (PLA, PETG, ABS, etc.)
  • Part cooling, auxiliary, chamber, and heatbreak fan speeds

Printer Controls

  • Adjust speed: Silent / Standard / Sport / Ludicrous
  • Toggle chamber light and work light
  • Pause, resume, and cancel prints (with confirmation)
  • Controls lock to prevent accidental changes

AMS & Filament

  • Humidity grade (A-E) per AMS unit
  • Filament colors, materials, brand, and remaining percentages
  • Recommended nozzle temperature range per filament

System Info

  • HMS (Health Management System) alerts with severity and timestamps
  • WiFi signal strength with visual indicator
  • Firmware version and nozzle diameter
  • AI spaghetti detection, recording, and timelapse indicators

Multi-Printer Support

  • Monitor multiple printers from a single terminal
  • Aggregate overview grid with per-printer status cards
  • Navigate with Tab, Shift+Tab, or number keys 1-9

Supported Printers

Series Models
P Series P1P, P1S, P2S
X Series X1C, X1E
A Series A1, A1 Mini
H Series H2C, H2S, H2D, H2D Pro

Installation

Homebrew (macOS / Linux)

brew install rhoopr/bambutop/bambutop

macOS (Apple Silicon)

curl -LO https://github.com/rhoopr/bambutop/releases/latest/download/bambutop-macos-aarch64.tar.gz
tar xzf bambutop-macos-aarch64.tar.gz
sudo mv bambutop /usr/local/bin/

macOS (Intel)

curl -LO https://github.com/rhoopr/bambutop/releases/latest/download/bambutop-macos-x86_64.tar.gz
tar xzf bambutop-macos-x86_64.tar.gz
sudo mv bambutop /usr/local/bin/

Linux (x86_64)

curl -LO https://github.com/rhoopr/bambutop/releases/latest/download/bambutop-linux-x86_64.tar.gz
tar xzf bambutop-linux-x86_64.tar.gz
sudo mv bambutop /usr/local/bin/

Build from Source

cargo install --git https://github.com/rhoopr/bambutop.git

Getting Started

Run bambutop and follow the setup wizard to connect to your printer:

You'll need three pieces of information:

Setting Where to Find It
IP Address Router's connected devices list, or Bambu Studio → Device → Network
Serial Number Printer label, or Bambu Studio → Device info
Access Code Printer screen → Settings → Network → Access Code

Multi-Printer Setup

The setup wizard will ask if you want to add additional printers. You can also edit the config file directly at ~/.config/bambutop/config.toml:

[[printers]]
name = "Office P1S"
ip = "192.168.1.100"
serial = "01P00A123456789"
access_code = "12345678"

[[printers]]
name = "Workshop X1C"
ip = "192.168.1.101"
serial = "01S00A987654321"
access_code = "87654321"

Keyboard Shortcuts

Key Action
? / h Show help overlay
q / Esc Quit
Tab Next printer
Shift+Tab Previous printer
1-9 Jump to printer by number
a Aggregate overview
r Refresh all printers
u Toggle °C / °F
x Lock/unlock controls
l Toggle chamber light
w Toggle work light
+ / - Adjust print speed
Space Pause/resume print
c Cancel print

Controls that affect the printer (l, w, +/-, Space, c) require unlocking first with x. Pause/resume and cancel require pressing the key twice to confirm.

Command-Line Options

# Connect directly (saves to config file)
bambutop --ip 192.168.1.100 --serial YOUR_SERIAL --access-code YOUR_CODE

# Reset config and re-run setup wizard
bambutop --reset

Troubleshooting

"Connection refused" or timeout

  • Verify the printer's IP address is correct
  • Ensure your computer is on the same network as the printer
  • Try pinging the printer: ping 192.168.1.100

"Authentication failed"

  • Double-check your access code on the printer's screen
  • The access code may have changed — regenerate it if needed

Display looks garbled

  • Ensure your terminal supports Unicode
  • Try a different terminal (iTerm2, Ghostty, Alacritty, kitty, etc.)

Acknowledgments

This project wouldn't be possible without the work of the Bambu Lab community:

  • OpenBambuAPI — Comprehensive reverse-engineered MQTT protocol documentation
  • ha-bambulab — Home Assistant integration with extensive field mappings and protocol insights

License

GPLv3 — See LICENSE for details.