Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Moonraker 3D Printer MonitorNew to Visual Studio Code? Get it now.
Moonraker 3D Printer Monitor

Moonraker 3D Printer Monitor

MFoxx

|
1 install
| (0) | Free
Monitor your Klipper/Moonraker 3D printer directly in VS Code — temperatures, progress, live toolhead position, and printer controls in the sidebar.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info


🖨️ Moonraker 3D Printer Monitor

Your 3D printer, right inside VS Code.
Monitor prints, track temperatures, control your machine — without leaving your editor.

Marketplace Version Downloads Rating CI Status License

Features • Installation • Quick Start • Configuration • Experimental • Roadmap • Contributing • Support


Moonraker 3D Printer Monitor preview


✨ Features

🌡️ Live Temperature Dashboard

Stop alt-tabbing to your slicer or browser. The sidebar panel shows hotend, bed, and chamber temperatures in real time, complete with target temps and a scrolling history chart. Know exactly when your printer is ready.

📊 Print Progress at a Glance

  • Progress bar with percentage and live layer count (Layer 42 / 210)
  • ETA and finish time so you can plan your day around the print, not the other way around
  • Elapsed time, filament used, print speed, and fan speed — all visible without touching your browser

🖼️ Thumbnail Previews

Automatically fetches the G-code thumbnail for the currently printing file and displays it in the sidebar. You always know what's on the plate.

📁 Recent Print History

A collapsible section shows your last 5 prints — filename, duration, completion date, and whether they succeeded or failed. Collapsed by default, out of the way when you don't need it.

🔔 Smart Notifications

Never miss a state change. VS Code toast notifications tell you when:

  • ✅ A print starts or resumes
  • ⏸️ A print is paused
  • 🏁 A print finishes
  • ❌ A print is cancelled or hits an error

🌐 Web UI Shortcut

Configure your Mainsail or Fluidd URL once and get a one-click button in the sidebar to open it. Customize the label too (Open Mainsail, Open Fluidd, whatever you like).

📍 Status Bar Integration

Keep an eye on your printer without even opening the sidebar. The status bar shows printer state, temperatures, filename, ETA, and elapsed time. Every item is individually configurable — show only what matters to you.


🗺️ Planned Features

These are features actively planned for future releases. Have a suggestion? Open an issue!

Feature Description
🔐 Authentication / API token Connect to Moonraker instances secured with an API key or trusted clients config
📷 Webcam snapshot Display a periodically refreshed camera image in the sidebar so you can see your print at a glance
🎛️ Klipper macro buttons Auto-discover and expose your custom Klipper macros as one-click sidebar buttons
🖨️ Multi-printer support Monitor and switch between multiple printers from a single VS Code sidebar
▶️ Print queue & quick-start Browse files already on the printer and start or queue a print without opening the web UI

🧪 Experimental Features

⚠️ Use at your own risk. Experimental features send commands directly to your printer. Enabled via moonraker.experimental.enabled.

🛑 Emergency Stop

A big red Emergency Stop button. Sends /printer/emergency_stop immediately. Requires confirmation — no accidental taps.

🏠 Home All Axes (G28)

Homes all axes with a single click. Available when the printer is idle (not while printing).

🔥 Heat Bed & Extruder

Set temperatures directly from the sidebar:

  • Heat (M140 / M104) — set target and continue
  • Heat & Wait (M190 / M109) — set target and block until reached

⚡ Speed Factor & Fan Speed

Adjust print speed (50–150%) and fan speed (0–100%) while printing. Changes take effect immediately via M220 and M106.

🎯 Live Toolhead Position

An isometric 3D visualization of the print bed updates in real time at up to 60 fps with smooth interpolation between position samples. Accurately represents your printer's mechanics — the bed position on X, the gantry on Y and Z — rendered as separate moving elements. Configurable for any bed size.


📦 Installation

Via VS Code Marketplace (recommended)

Search for "Moonraker 3D Printer Monitor" in the Extensions panel, or install directly:

ext install mfoxx.vscode-moonraker

Via VSIX (manual install)

Download the latest .vsix from Releases, then:

code --install-extension vscode-moonraker-x.x.x.vsix

🚀 Quick Start

  1. Install the extension
  2. Open Settings (Ctrl+, / Cmd+,) and search for moonraker
  3. Set moonraker.apiUrl to your printer's IP — e.g. http://192.168.1.100
  4. The extension auto-connects on startup — look for the 🖨️ icon in the activity bar

That's it. No config files, no setup scripts.


⚙️ Configuration

Setting Default Description
moonraker.apiUrl http://localhost Moonraker API base URL (no port)
moonraker.port 7125 Moonraker API port
moonraker.pollingInterval 2000 Status poll interval in ms
moonraker.temperatureHistorySize 120 Number of points in the temperature chart
moonraker.chamberSensorName (empty) Klipper temperature_sensor name for chamber monitoring
moonraker.webUiUrl (empty) URL of your Mainsail/Fluidd instance
moonraker.webUiLabel Open Web UI Label on the Web UI sidebar button
moonraker.notifications.enabled true Enable/disable state-change notifications
moonraker.statusBar.showStatus true Show printer state in status bar
moonraker.statusBar.showHotendTemp true Show hotend temp in status bar
moonraker.statusBar.showBedTemp true Show bed temp in status bar
moonraker.statusBar.showFileName true Show current filename in status bar
moonraker.statusBar.showETA true Show ETA in status bar
moonraker.statusBar.showTotalTime true Show elapsed time in status bar
moonraker.experimental.enabled false Enable experimental printer controls
moonraker.experimental.positionVisualization false Enable the 3D toolhead position view
moonraker.bedWidth 235 Bed width in mm (for position visualization)
moonraker.bedHeight 235 Bed height in mm (for position visualization)
moonraker.positionPollingInterval 100 Position poll interval in ms (min 50)

🤝 Contributing

Contributions are very welcome! Whether it's a bug report, a feature request, or a pull request — all are appreciated.

Reporting Bugs / Requesting Features

Please open an issue and include:

  • Your Moonraker/Klipper version
  • Your printer configuration (if relevant)
  • Steps to reproduce the problem
  • What you expected vs. what happened

Submitting a Pull Request

  1. Fork the repo and create a branch from main
  2. Install dependencies — npm install
  3. Make your changes in src/
  4. Compile — npm run compile (or npm run watch for live recompile)
  5. Run tests — npm test
  6. Open a PR with a clear description of what changed and why

Development Setup

git clone https://github.com/mfoxx/vscode-moonraker.git
cd vscode-moonraker
npm install

# Watch mode (recompiles on save)
npm run watch

# Then press F5 in VS Code to launch an Extension Development Host

Project Structure

src/
├── extension.ts        # Entry point, command registration, event wiring
├── moonrakerClient.ts  # Moonraker HTTP polling, event emitter
├── sidebarProvider.ts  # Webview sidebar (HTML/CSS/JS)
├── statusBar.ts        # Status bar items
└── test/               # Jest unit tests

💖 Support

If this extension saves you time or makes your workflow better, consider buying me a coffee! It keeps the project maintained and new features coming.

Buy Me A Coffee

📄 License

MIT — free to use, modify, and distribute.


Made with ❤️ for the Klipper community

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft