A terminal-based status monitor for Bambu Lab printers. htop, but for your 3D printer.
Print Monitoring - Job name, layers, elapsed/remaining time, ETA clock, visual progress bar, print phase (heating, leveling, printing, etc.), and failure reason with error codes.
Temperatures & Fans - Nozzle, bed, and chamber gauges with Celsius/Fahrenheit toggle. Safe chamber range based on active filament type. Part cooling, auxiliary, chamber, and heatbreak fan speeds.
Printer Controls - Speed (Silent/Standard/Sport/Ludicrous), chamber and work lights, pause/resume/cancel with confirmation. Controls lock to prevent accidents.
AMS - Humidity grade (A-E), filament colors, materials, brand, remaining percentage, and nozzle temp range per slot.
System - HMS alerts with severity and timestamps, WiFi signal, firmware version, nozzle diameter, AI spaghetti detection, recording, and timelapse indicators.
Multi-Printer - Monitor up to 9 printers with an aggregate overview grid. Tab/number keys to switch. Desktop notifications for completions, failures, and HMS alerts.
| Series | Models |
|---|---|
| X Series | X1C, X1E |
| P Series | P1P, P1S, P2S |
| A Series | A1, A1 Mini |
| H Series | H2C, H2S, H2D, H2D Pro |
Any Bambu printer that supports LAN mode should work. If yours isn't listed and it does, open an issue.
brew install rhoopr/bambutop/bambutopcurl -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/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/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/cargo install --git https://github.com/rhoopr/bambutop.gitRun bambutop and follow the setup wizard:
bambutopYou'll need three pieces of information per printer:
| 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 |
The setup wizard asks if you want to add more 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"
[notifications]
errors = true # print failures and HMS alerts
completions = true # print finishedBoth notification settings default to true if omitted. You can also toggle them at runtime with e and n.
| 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 |
n |
Toggle completion notifications |
e |
Toggle error notifications |
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.
# First run - setup wizard
bambutop
# Connect directly (saves to config)
bambutop --ip 192.168.1.100 --serial YOUR_SERIAL --access-code YOUR_CODE
# Reset config and re-run setup wizard
bambutop --reset
# Try it out with fake data, no printer needed
bambutop --demoNote: Command-line arguments are visible to other users on the system via
ps. For persistent use, prefer the config file at~/.config/bambutop/config.tomlwhich is created with owner-only permissions.
"Connection refused" or timeout
- Verify the printer's IP address is correct
- Make sure 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
- Make sure your terminal supports Unicode
- Try a different terminal (iTerm2, Ghostty, Alacritty, kitty, etc.)
PRs and bug reports welcome. See CONTRIBUTING.md for details.
This project wouldn't exist without the Bambu Lab community's reverse-engineering work:
- OpenBambuAPI - MQTT protocol documentation
- ha-bambulab - Home Assistant integration with field mappings and protocol insights
GPLv3 - see LICENSE. Full version history in CHANGELOG.md.

