Print anything from anywhere.

Created by Gina Häußge & Sponsored by BQ

The snappy web interface for your 3D printer

Make your printer wireless

Connect your printer to a small embedded and WiFi enabled device such as the popular Raspberry Pi, install OctoPrint on it and you have an instant wireless printer.

Control your printer

Start, pause and stop print jobs, remotely move the print head along all axes, extrude, retract or just define your own custom controls.

Monitor your prints

Get constant feedback regarding the current progress of your print job, your printer's extrusion and bed temperature. Watch your print live via the embedded webcam feed or create a timelapse movie.

Free as in beer and speech

OctoPrint is free and open source software released under the Affero General Public License (AGPL).

Visualize your gcode

OctoPrint incorporates the awesome gCodeVisualizer by Alexey Ustyantsev which allows you to visualize your gcode files before and even during printjobs.

Highly compatible

OctoPrint has been proven to work with many different printer electronics and firmwares. Give it a try!

... and more to come!



OctoPrint is a so called host software for 3D printers that controls your 3D printer and sends it the actual commands to do its job. Other tools for this task include Printrun, Repetier Host and also Cura.

OctoPrint differs from existing host solutions in that its major focus is to provide a web interface that allows controlling the printer remotely from anywhere on the network or even the internet while offering the same responsiveness and feedback options available on native host applications like the ones listed above. In order to achieve this, OctoPrint makes heavy use of current web technologies and frameworks, such as AJAX and HTML5 web sockets.

OctoPrint was developed to be run on small embedded devices such as the popular Raspberry Pi. It allows you to turn your existing 3D printer into a WiFi enabled one and untether it from your laptop or work station.

What's in the package?

OctoPrint currently offers the following features, with more on the way:

  • uploading .gcode files to the server plus optionally the printer's SD card and managing them via the UI
  • selecting a file for printing, getting the usual stats regarding filament usage (length and volume, stats not available for SD card files
  • starting, pausing and cancelling a print job
  • while connected to the printer getting information regarding the current temperature of both head and bed (if available) in a nice shiny javascript-y temperature graph
  • access to the communication log (with the temperature and SD progress calls optionally filtered out to avoid clutter) and sending arbitrary codes to be executed by the printer
  • previewing the gcode of the selected model to be printed (via GCodeVisualizer), including rendering of the progress during printing (not available when SD printing)
  • visual monitoring of the printer via webcam stream integrated into the UI (using e.g. MJPG-Streamer)
  • creation of timelapse recordings of the printjob via webcam stream with shots triggered either by a z-change (not available when SD printing) or every n seconds
  • access control to provide a read-only mode on the web interface, allowing any actions only to logged in users
  • configurable custom controls to add to the "Control" tab (Examples)
  • configurable system commands made available in a special dropdown, e.g. to shutdown OctoPrint's host or updating the software via git (Examples)
  • configurable system commands or gcode commands to be triggered on certain system events (Examples)

Credit where credit is due

OctoPrint started out as a fork of Cura for adding a web interface to its printing functionality and was originally named "Printer WebUI". It still uses large parts of Cura's communication code for talking to the printer, but has been reorganized to only include those parts of Cura necessary for its targeted use case.

It also uses the following libraries and frameworks for backend and frontend:

For webcam support on the Raspberry Pi I recommend MJPG-Streamer.

I also want to thank Janina Himmen for providing the kick-ass logo!

The project in a nutshell

  • OctoPrint is sponsored by BQ, a Spanish technology company which has over the last year embraced Open Source DIY projects including (but not limited to) 3D printing, which provides the project with a development team fully dedicated to improve, evolve and expand its functionality, robustness and quality, lead by its creator Gina Häußge.
  • OctoPrint is and will remain Open Source Software under the GNU AGPL 3 license and anyone using it is encouraged to participate in OctoPrint's continued development through pull requests and other forms of contribution
  • BQ as the company sponsoring OctoPrint ensures the quality and continuity of OctoPrint and guarantees its maintenance and technical support
  • OctoPrint will never limit (or force) its functionality solely to BQ products. API and source will remain open and usable by anyone in accordance with the license.
  • OctoPrint will continue to pay special attention to RepRap based printers

Why is it called OctoPrint and what's with the crystal ball in the logo?

It so happens that I needed a favicon and also OctoPrint's first name -- Printer WebUI -- simply lacked a certain coolness to it. So I asked The InternetTM for advice. After some brainstorming, the idea of a cute Octopus watching his print job remotely through a crystal ball was born... or something like that.



Timelapse of an OctoPrint ornament

Timelapse with a surprise ending

by Jason Gullickson

Video Guide: Getting started with OctoPrint on the Raspberry Pi 2! [2016 edition]

by Thomas Sanladerer
Fork me on GitHub