You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Own your data — All print history stored locally, no cloud dependency
Works offline — Uses Developer Mode for direct printer control via local network
Full automation — Schedule prints, auto power-off, get notified when done
Multi-printer support — Manage your entire print farm from one interface
✨ Features
📦 Print Archive
Automatic 3MF archiving with metadata
3D model preview (Three.js)
Duplicate detection & full-text search
Photo attachments & failure analysis
Timelapse editor (trim, speed, music) with automatic AVI-to-MP4 conversion for P1-series printers, manual upload & remove
Re-print to any connected printer with AMS mapping (auto-match or manual slot selection, multi-plate support, nozzle-aware matching for dual-nozzle H2D/H2D Pro)
Plate thumbnail browsing for multi-plate archives (hover to navigate between plates)
Archive comparison (side-by-side diff)
Tag management (rename/delete across all archives)
Print Log — Chronological table view of all print activity with columns for date/time, print name, printer, user, status, duration, and filament. Filterable by search, printer, user, status, and date range. Pagination with configurable page size. Clear button removes log entries without affecting archives.
📊 Monitoring & Control
Real-time printer status via WebSocket
Live camera streaming (MJPEG) & snapshots with multi-viewer support
Streaming overlay for OBS - Embeddable page with camera + status for live streaming (/overlay/:printerId), configurable FPS (?fps=30), status-only mode (?camera=false)
External camera support (MJPEG, RTSP, HTTP snapshot, USB/V4L2) with layer-based timelapse
Build plate empty detection - Auto-pause print if objects detected on plate (multi-reference calibration, ROI adjustment)
Fan status monitoring (part cooling, auxiliary, chamber)
Printer control (stop, pause, resume, chamber light, print speed)
Resizable printer cards (S/M/L/XL)
Skip objects during print
AMS slot RFID re-read
AMS slot configuration (model-filtered presets, K profiles, color picker, pre-population for configured slots)
AMS info card (hover for serial number, firmware version) with custom friendly names that persist across printers
AMS remote drying — Start, monitor, and stop drying sessions for AMS 2 Pro and AMS-HT directly from the Printers page with filament-based temperature/duration presets, optional spool rotation; automatic PSU detection and HMS power error reporting
Queue auto-drying — Automatically dry filament between scheduled prints when humidity exceeds threshold; configurable presets per filament type, optional blocking mode
Ambient drying — Automatically keep filament dry on idle printers based on humidity, regardless of whether prints are queued
Configurable drying presets per filament type (temperature & duration for AMS 2 Pro and AMS-HT)
Dual external spool support for H2D (Ext-L / Ext-R)
HMS error monitoring with history and clear errors
Print success rates & trends
Filament usage tracking
Cost analytics & failure analysis
CSV/Excel export
⏰ Scheduling & Automation
Background print dispatch — FTP uploads and print-start commands run in the background with real-time WebSocket progress toasts (per-job upload bars, status badges, cancel button)
Print queue with drag-and-drop
Multi-printer selection (send to multiple printers at once)
Model-based queue assignment (send to "any X1C" for load balancing) with location filtering
Filament override for model-based queue (swap filament colors/types before scheduling)
Filament validation (only assign to printers with required filaments)
Per-printer AMS mapping (individual slot configuration for print farms)
Scheduled prints (date/time)
Queue Only mode (stage without auto-start)
Clear plate confirmation between queued prints
Smart plug integration (Tasmota, Home Assistant, MQTT)
MQTT smart plugs: Subscribe to Zigbee2MQTT, Shelly, or any MQTT topic for energy monitoring
Energy consumption tracking (per-print kWh and cost)
HA energy sensor support (for plugs with separate power/energy sensors)
Auto power-on before print
Auto power-off after cooldown
📁 File Manager (Library)
Upload and organize sliced files (3MF, gcode, STL)
External folder mounting - Mount host directories (NAS, USB, network shares) without copying files
STL thumbnail generation - Auto-generate previews for STL files on upload or batch generate for existing files
ZIP file extraction with folder structure preservation
Option to create folder from ZIP filename
Folder structure with drag-and-drop
Rename files and folders via context menu
Print directly to any printer with full options
Add to queue without creating archive upfront
Plate selection for multi-plate 3MF files
Duplicate detection via file hash
Mobile-friendly with always-visible action buttons
📁 Projects
Group related prints (e.g., "Voron Build")
Track plates (print jobs) and parts separately
Auto-detect parts count from 3MF files
Color-coded project badges
Bulk assign archives via multi-select toolbar
Import/Export projects as ZIP (includes files) or JSON
🔔 Notifications
WhatsApp, Telegram, Discord
Email, Pushover, ntfy
Home Assistant persistent notifications
Custom webhooks
Quiet hours & daily digest
Customizable message templates with per-filament usage details
Print finish photo URL in notifications
Filament usage and progress in failed/cancelled print notifications
Missing spool assignment warning — Toast and push notification when a print starts with unassigned AMS trays
HMS error alerts (AMS, nozzle, etc.)
Build plate detection alerts
First layer complete alert (with camera snapshot)
Bed cooled alerts (configurable threshold)
Queue events (waiting, skipped, failed)
🧵 Spool Inventory
Built-in spool inventory with AMS slot assignment, usage tracking, and remaining weight management
Automatic filament consumption tracking: 3MF slicer estimates for all spools (primary), AMS remain% delta as fallback
Mid-print spool reassignment support: uses live assignment if changed during print, snapshot otherwise
Per-layer gcode accuracy for partial prints (failed/cancelled), with linear scaling fallback
Per-spool cost tracking — Set cost/kg on each spool; costs are automatically calculated at print completion and aggregated to archives. Print modal shows real-time cost preview. Configurable default cost and currency in Settings.
Bulk spool addition — Add multiple identical spools at once (quantity 1–100) with a single form submission. Quick Add mode for stock spools that only need material, color, and weight.
Spool catalog, color catalog, PA profile matching, and low-stock alerts
🔧 Integrations
Spoolman filament sync with per-filament usage tracking and fill level display
MQTT publishing for Home Assistant, Node-RED, etc.
Prometheus metrics - Export printer telemetry for Grafana dashboards
Bambu Cloud profile management
Local Profiles - Import OrcaSlicer presets (.orca_filament, .bbscfg, .bbsflmt, .zip, .json) without Bambu Cloud
K-profiles (pressure advance)
GitHub backup - Schedule automatic backups of cloud profiles, k profiles and settings to GitHub
External sidebar links
Webhooks & API keys
Interactive API browser with live testing
🖨️ Virtual Printer & Remote Printing
🌐 Proxy Mode (NEW!) — Print remotely from anywhere via secure TLS relay
Emulates a Bambu Lab printer on your network
Send prints directly from Bambu Studio/Orca Slicer
Configurable printer model (X1C, P1S, A1, H2D, etc.)
Archive mode, Review mode, Queue mode, or Proxy mode
SSDP discovery (same LAN) or manual IP entry (VPN/remote)
Network interface override for multi-NIC/Docker/VPN setups
Secure TLS/MQTT/FTP communication
🛠️ Maintenance & Support
Maintenance scheduling & tracking
Interval reminders (hours/days)
Print time accuracy stats
File manager for printer storage
Firmware update helper with version badge (LAN-only printers)
Debug logging toggle with live indicator
Live application log viewer with filtering
Support bundle generator with comprehensive diagnostics (privacy-filtered)
In-app bug reporting — Submit bug reports directly from the UI with optional screenshot (upload, paste, or drag & drop), interactive debug log capture (start logging, reproduce at your own pace, stop & submit), and system info. Reports create GitHub issues via a secure relay. Privacy-first: all logs are sanitized and sensitive data (IPs, serials, credentials) is never included.
Multi-architecture support: Pre-built images are available for linux/amd64 and linux/arm64 (Raspberry Pi 4/5).
macOS/Windows users: Docker Desktop doesn't support network_mode: host. Edit docker-compose.yml: comment out network_mode: host and uncomment the ports: section. Printer discovery won't work - add printers manually by IP.
Linux users: If you get "permission denied" errors, either prefix commands with sudo (e.g., sudo docker compose up -d) or add your user to the docker group.
Docker Configuration & Commands
Environment Variables:
Variable
Default
Description
TZ
UTC
Your timezone (e.g., America/New_York, Europe/Berlin)
PORT
8000
Port BamBuddy runs on (with host networking mode)
DEBUG
false
Enable debug logging
LOG_LEVEL
INFO
Log level: DEBUG, INFO, WARNING, ERROR
Data Persistence:
Volume
Purpose
bambuddy.db
SQLite database with all your print data
archive/
Archived 3MF files and thumbnails
logs/
Application logs
Updating:
# Pre-built image: just pull the latest
docker compose pull && docker compose up -d
# From source: rebuild after pulling changescd bambuddy && git pull && docker compose up -d --build
Daily Beta Builds:
Beta builds with the latest fixes are pushed regularly to the same beta version tag:
# Pull the current beta
docker pull ghcr.io/maziggy/bambuddy:0.2.2b1
# or from Docker Hub
docker pull maziggy/bambuddy:0.2.2b1
Use Watchtower to automatically update when new daily builds are pushed.
Note: Beta builds use version tags like 0.2.2b1 — they are never tagged as latest. Your stable installation won't auto-update to a beta unless you explicitly pull a beta tag.
Note: WebSocket support is required for real-time printer updates.
Network Mode Host (required for printer discovery and camera streaming):
services:
bambuddy:
build: .network_mode: host
Note: Docker's default bridge networking cannot receive SSDP multicast packets for automatic printer discovery. When using network_mode: host, Bambuddy auto-detects your network subnet and can discover printers via subnet scanning in the Add Printer dialog.
Manual Installation (Linux/macOS)
# Clone and setup
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run
uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
Developer Mode allows third-party software like Bambuddy to control your printer over the local network.
On printer: Settings → Network → LAN Only Mode → Enable
Enable Developer Mode (appears after LAN Only Mode is enabled)
Note the Access Code displayed
Find IP address in network settings
Find Serial Number in device info
Note: Developer Mode disables cloud features but provides full local control. Standard LAN Mode (without Developer Mode) only allows read-only monitoring.
Slicer Settings
In Bambu Studio or OrcaSlicer, enable "Store sent files on external storage" so that print files (3MF) are saved to the printer's SD card. Bambuddy needs these files to extract thumbnails and 3D model previews.
Open Bambu Studio or OrcaSlicer
Go to the Device tab for your printer
In Print Options, enable Store Sent Files on External Storage