# octoprint/octoprint

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/octoprint-octoprint).**

9,020 stars · 1,693 forks · Python · AGPL-3.0

## Links

- GitHub: https://github.com/OctoPrint/OctoPrint
- Homepage: https://octoprint.org
- awesome-repositories: https://awesome-repositories.com/repository/octoprint-octoprint.md

## Topics

`3d-printer` `octoprint` `python` `raspberry-pi`

## Description

OctoPrint is a web-based platform for remotely controlling and monitoring 3D printers. It provides a browser dashboard to start, pause, cancel, and track print jobs, while streaming real-time printer status, temperature, and progress updates. The system is built around a plugin-based architecture that allows extending core functionality, and it offers a documented REST API for programmatic printer control and data management.

The platform distinguishes itself through its comprehensive automation and extensibility capabilities. It supports event-driven workflows that automatically execute custom GCODE scripts or system commands in response to printer and server events. A dual REST API and command-line interface provides flexible remote control options, while the plugin system enables community-developed integrations and custom UI controls. OctoPrint also includes a virtual printer simulation for testing and development without physical hardware.

Beyond core control and monitoring, OctoPrint handles file management, GCODE visualization, model slicing through integrated engines, and timelapse recording from connected webcams. It provides user account management with role-based access control, API key authentication, and firmware safety scanning. The system supports configuration backup and restore, automated software updates, and network printer discovery for easy connection setup.

## Tags

### System Administration & Monitoring

- [Remote 3D Printer Managers](https://awesome-repositories.com/f/system-administration-monitoring/3d-printer-management/remote-3d-printer-managers.md) — Provides a web-based dashboard for remotely monitoring, controlling, and managing 3D printers from any browser. ([source](https://docs.octoprint.org/))
- [Configuration Profiles](https://awesome-repositories.com/f/system-administration-monitoring/3d-printer-management/configuration-profiles.md) — Ships a configuration system for printer profiles, serial connections, temperature presets, and slicing parameters.
- [GCODE Managers](https://awesome-repositories.com/f/system-administration-monitoring/3d-printer-management/gcode-managers.md) — Provides a tool for uploading, organizing, and slicing 3D model files into printable GCODE instructions.
- [REST APIs](https://awesome-repositories.com/f/system-administration-monitoring/3d-printer-management/remote-3d-printer-managers/rest-apis.md) — Exposes a documented REST API for programmatic printer control, file management, and status queries.
- [3D Print Progress Monitors](https://awesome-repositories.com/f/system-administration-monitoring/activity-monitors/activity-progress-monitors/3d-print-progress-monitors.md) — Displays real-time status, temperature, and progress of an active print job through the web interface. ([source](https://docs.octoprint.org/bundledplugins/index.html))
- [Real-Time Monitors](https://awesome-repositories.com/f/system-administration-monitoring/gpu-resource-monitoring/real-time-monitors.md) — Streams live status updates, temperatures, and a visual G-code viewer to the browser during a print. ([source](https://docs.octoprint.org/_sources/index.rst.txt))
- [Printer Configuration](https://awesome-repositories.com/f/system-administration-monitoring/printer-configuration.md) — Adjusts printer profiles, slicing parameters, and connection settings through a YAML file or web UI. ([source](https://docs.octoprint.org/configuration/config_yaml.html))
- [3D Printer Profile Definitions](https://awesome-repositories.com/f/system-administration-monitoring/printer-configuration/3d-printer-profile-definitions.md) — Stores and switches between multiple printer definitions including build volume, axes, and tool head settings. ([source](https://docs.octoprint.org/api/index.html))
- [3D Printer Profile Switching](https://awesome-repositories.com/f/system-administration-monitoring/printer-configuration/3d-printer-profile-switching.md) — Stores and switches between multiple printer configurations including bed size and firmware settings. ([source](https://docs.octoprint.org/))
- [Printer Profile CRUD APIs](https://awesome-repositories.com/f/system-administration-monitoring/printer-configuration/printer-profile-crud-apis.md) — Creates, reads, updates, and deletes printer profile definitions storing hardware settings and dimensions. ([source](https://docs.octoprint.org/api/printerprofiles.html))
- [Web-Based 3D Printer Settings](https://awesome-repositories.com/f/system-administration-monitoring/printer-configuration/web-based-3d-printer-settings.md) — Adjusts printer profiles, connection parameters, and slicing options through a web-based configuration panel. ([source](https://docs.octoprint.org/api/wizard.html))
- [Temperature Settings](https://awesome-repositories.com/f/system-administration-monitoring/printer-configuration/web-based-3d-printer-settings/temperature-settings.md) — Sets target temperatures for the printer's hotend and heated bed. ([source](https://docs.octoprint.org/api/printer.html))
- [Remote 3D Printer Controllers](https://awesome-repositories.com/f/system-administration-monitoring/remote-hardware-controls/remote-3d-printer-controllers.md) — Provides a web-based interface to start, pause, cancel, and monitor print jobs on a connected 3D printer. ([source](https://docs.octoprint.org/api/datamodel.html))
- [Backup and Restore](https://awesome-repositories.com/f/system-administration-monitoring/backup-disaster-recovery/azure-backup-and-restore/backup-and-restore.md) — Creates downloadable archives of application configuration and restores them from saved files. ([source](https://docs.octoprint.org/bundledplugins/backup.html))
- [3D Print Path Previews](https://awesome-repositories.com/f/system-administration-monitoring/execution-path-visualization/3d-print-path-previews.md) — Renders a 3D preview of the print path from uploaded GCode files for visual inspection before printing. ([source](https://docs.octoprint.org/bundledplugins/gcodeviewer.html))
- [3D Printer File Managers](https://awesome-repositories.com/f/system-administration-monitoring/remote-file-managers/3d-printer-file-managers.md) — Uploads, organizes, and deletes G-code files on the printer's storage through the web interface. ([source](https://docs.octoprint.org/_sources/index.rst.txt))

### Part of an Awesome List

- [File Managers](https://awesome-repositories.com/f/awesome-lists/devtools/g-code-software/file-managers.md) — Provides a file manager for uploading, organizing, deleting, and previewing G-code files on the printer.
- [G-Code Syntax Validators](https://awesome-repositories.com/f/awesome-lists/devtools/g-code-software/g-code-syntax-validators.md) — Checks uploaded G-Code files for common errors before printing to prevent failures. ([source](https://docs.octoprint.org/bundledplugins/file_check.html))

### Data & Databases

- [Printer File Managers](https://awesome-repositories.com/f/data-databases/file-upload-management/printer-file-managers.md) — OctoPrint removes a specific file from the printer's storage permanently. ([source](https://docs.octoprint.org/api/files.html))
- [File Upload Management](https://awesome-repositories.com/f/data-databases/file-upload-management.md) — Transfers files to the printer's storage for later printing or management. ([source](https://docs.octoprint.org/api/files.html))
- [GCODE File Managers](https://awesome-repositories.com/f/data-databases/file-upload-management/gcode-file-managers.md) — Provides a dedicated manager for uploading, listing, deleting, and organizing GCODE files on the printer. ([source](https://docs.octoprint.org/api/util.html))
- [Print File Managers](https://awesome-repositories.com/f/data-databases/file-upload-management/print-file-managers.md) — Uploads, lists, deletes, and organizes GCODE files on the printer's storage for selection and execution. ([source](https://docs.octoprint.org/api/datamodel.html))

### Development Tools & Productivity

- [REST API Integrations](https://awesome-repositories.com/f/development-tools-productivity/rest-api-integrations.md) — Provides a documented HTTP interface for programmatic printer control and data management. ([source](https://docs.octoprint.org/api/wizard.html))
- [REST APIs](https://awesome-repositories.com/f/development-tools-productivity/rest-apis.md) — Ships a documented REST API for programmatic printer control and data management. ([source](https://docs.octoprint.org/))
- [Direct Command Sends](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution/event-driven-execution/printer-event-shell-executions/direct-command-sends.md) — Issues G-code or custom commands to a printer and returns the response for immediate execution. ([source](https://docs.octoprint.org/api/printer.html))
- [GCODE Action Command Triggers](https://awesome-repositories.com/f/development-tools-productivity/action-execution-frameworks/multi-action-triggers/predefined-action-triggers/gcode-action-command-triggers.md) — Processes GCODE comments to trigger predefined actions on the printer or host system. ([source](https://docs.octoprint.org/bundledplugins/action_command_prompt.html))
- [Integrated Slicing Engines](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/3d-slicing-command-line-interfaces/integrated-slicing-engines.md) — Integrates slicing engines to convert 3D models into printable GCODE without external tools. ([source](https://docs.octoprint.org/))
- [3D Printer Event Workflows](https://awesome-repositories.com/f/development-tools-productivity/event-driven-automation-engines/3d-printer-event-workflows.md) — Automatically triggers GCODE scripts and actions based on printer lifecycle events. ([source](https://docs.octoprint.org/bundledplugins/logging.html))
- [Plugin Updaters](https://awesome-repositories.com/f/development-tools-productivity/project-add-on-installers/plugin-updaters.md) — Checks for and applies available updates to installed plugins from the web interface. ([source](https://docs.octoprint.org/bundledplugins/pluginmanager.html))
- [Printer Event Shell Executions](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution/event-driven-execution/printer-event-shell-executions.md) — Executes shell commands or G-code sequences automatically on printer or system events. ([source](https://docs.octoprint.org/en/main/configuration/config_yaml.html))
- [GCODE Event Scripting](https://awesome-repositories.com/f/development-tools-productivity/shell-script-execution-engines/custom-run-scripts/scheduled-script-executions/event-driven-scripting/gcode-event-scripting.md) — Executes custom GCODE sequences triggered by printer events or user actions. ([source](https://docs.octoprint.org/_sources/index.rst.txt))

### DevOps & Infrastructure

- [Feature Extension Plugins](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility/feature-extension-plugins.md) — Installs community or custom plugins to add new features like custom controls, backup, and GCode visualization. ([source](https://docs.octoprint.org/api/datamodel.html))
- [3D Printer Event Automations](https://awesome-repositories.com/f/devops-infrastructure/event-driven-triggers/3d-printer-event-automations.md) — Automates GCODE script and system command execution based on printer lifecycle events.

### Hardware & IoT

- [File and Job Managers](https://awesome-repositories.com/f/hardware-iot/3d-printing-management/file-and-job-managers.md) — Manages GCode files and controls the print job queue from the web interface. ([source](https://docs.octoprint.org/configuration/config_yaml.html))
- [Job Controllers](https://awesome-repositories.com/f/hardware-iot/3d-printing-management/job-controllers.md) — Provides a web interface and API for starting, pausing, canceling, and tracking 3D print jobs.
- [3D Printer Serial Bridges](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/serial-communication-interfaces/3d-printer-serial-bridges.md) — Manages bidirectional serial communication with printers including command queuing and protocol parsing.
- [Serial Connection Establishments](https://awesome-repositories.com/f/hardware-iot/serial-command-line-interfaces/3d-printer-cli-controllers/serial-connection-establishments.md) — Establishes the serial connection to the 3D printer for communication. ([source](https://docs.octoprint.org/api/connection.html))
- [Serial Parameter Configurations](https://awesome-repositories.com/f/hardware-iot/serial-parameter-configurations.md) — Configures serial port, baud rate, timeouts, and command handling for printer communication. ([source](https://docs.octoprint.org/en/main/configuration/config_yaml.html))
- [3D Printer Motion Control](https://awesome-repositories.com/f/hardware-iot/stepper-motor-controllers/3d-printer-motion-control.md) — Controls printer axis movement via API calls for positioning. ([source](https://docs.octoprint.org/api/printer.html))
- [3D Printing Slicing Workflows](https://awesome-repositories.com/f/hardware-iot/3d-printing-slicing-workflows.md) — Converts 3D model files into printer instructions using integrated or external slicing engines. ([source](https://docs.octoprint.org/api/datamodel.html))
- [Slicing Engine Wrappers](https://awesome-repositories.com/f/hardware-iot/3d-printing-slicing-workflows/slicing-engine-wrappers.md) — Integrates external slicing engines through a unified API for converting 3D models to GCODE.
- [Slice Job Submissions](https://awesome-repositories.com/f/hardware-iot/3d-printing-slicing-workflows/slicing-engine-wrappers/slice-job-submissions.md) — Submits a model file to a slicing engine and receives the resulting G-code or an error. ([source](https://docs.octoprint.org/api/slicing.html))
- [Slicing Profile Managers](https://awesome-repositories.com/f/hardware-iot/3d-printing-slicing-workflows/slicing-profile-managers.md) — Creates, updates, and selects slicing profiles that define print quality and material settings. ([source](https://docs.octoprint.org/api/slicing.html))
- [Virtual Printer Simulators](https://awesome-repositories.com/f/hardware-iot/custom-printer-integration/virtual-printer-simulators.md) — Emulates a physical 3D printer over a serial connection for testing without hardware. ([source](https://docs.octoprint.org/bundledplugins/virtual_printer.html))

### Networking & Communication

- [Printer File Downloads](https://awesome-repositories.com/f/networking-communication/remote-file-downloads/progress-tracking-file-downloads/cloud-file-downloads/timelapse-file-downloads/printer-file-downloads.md) — OctoPrint streams a stored file from the printer to the requesting client. ([source](https://docs.octoprint.org/api/files.html))
- [REST API Configurations](https://awesome-repositories.com/f/networking-communication/load-balancers/rest-api-configurations.md) — Exposes a REST API endpoint to retrieve current printer configuration settings as JSON. ([source](https://docs.octoprint.org/api/settings.html))
- [REST and CLI Dual Interfaces](https://awesome-repositories.com/f/networking-communication/rest-and-cli-dual-interfaces.md) — Offers both a REST API and command-line interface for remote printer control and automation.

### Security & Cryptography

- [API Access Security](https://awesome-repositories.com/f/security-cryptography/api-access-security.md) — Restricts API access by requiring a valid API key on each request. ([source](https://docs.octoprint.org/api/access.html))
- [Role-Based Access Controls](https://awesome-repositories.com/f/security-cryptography/multi-tenant-isolation/role-based-access-controls.md) — Requires login and checks permissions before allowing printer control. ([source](https://docs.octoprint.org/api/util.html))
- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — Restricts web interface and API actions based on user roles. ([source](https://docs.octoprint.org/))
- [User Role Assignments](https://awesome-repositories.com/f/security-cryptography/role-based-access-control/workspace-role-assignments/organization-role-assignments/user-role-assignments.md) — Assigns predefined roles to users to control access to printer operations and settings. ([source](https://docs.octoprint.org/api/access.html))
- [Security and Access Control](https://awesome-repositories.com/f/security-cryptography/security-and-access-control.md) — Restricts web interface access with user accounts and role-based permissions. ([source](https://docs.octoprint.org/api/wizard.html))
- [User Access Controls](https://awesome-repositories.com/f/security-cryptography/user-access-controls.md) — Restricts web interface access with user login and authentication options. ([source](https://docs.octoprint.org/en/main/configuration/config_yaml.html))
- [User Account Management](https://awesome-repositories.com/f/security-cryptography/user-account-management.md) — Creates, edits, and deletes user accounts with permission settings. ([source](https://docs.octoprint.org/api/access.html))

### Software Engineering & Architecture

- [3D Print Job Lifecycle Controls](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-integration-strategies/restful-workflow-apis/automation-job-apis/job-management-apis/3d-print-job-lifecycle-controls.md) — Provides REST API endpoints for full lifecycle control of 3D print jobs. ([source](https://docs.octoprint.org/))
- [Dashboard Print Job Controls](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-integration-strategies/restful-workflow-apis/automation-job-apis/job-management-apis/3d-print-job-lifecycle-controls/dashboard-print-job-controls.md) — Provides a web dashboard to start, pause, cancel, and track print jobs with real-time feedback. ([source](https://docs.octoprint.org/api/util.html))
- [Print Job Cancellations](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-integration-strategies/restful-workflow-apis/automation-job-apis/job-management-apis/3d-print-job-lifecycle-controls/print-job-cancellations.md) — Stops the active print operation and resets the printer to an idle state. ([source](https://docs.octoprint.org/api/job.html))
- [Print Job Pauses](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-integration-strategies/restful-workflow-apis/automation-job-apis/job-management-apis/3d-print-job-lifecycle-controls/print-job-pauses.md) — Suspends the current print operation mid-print without canceling the job. ([source](https://docs.octoprint.org/api/job.html))
- [Print Job Resumes](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-integration-strategies/restful-workflow-apis/automation-job-apis/job-management-apis/3d-print-job-lifecycle-controls/print-job-resumes.md) — Resumes a paused print from the exact point where it stopped. ([source](https://docs.octoprint.org/api/job.html))
- [Print Job Starts](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/api-design-management/api-integration-strategies/restful-workflow-apis/automation-job-apis/job-management-apis/3d-print-job-lifecycle-controls/print-job-starts.md) — Begins executing a loaded file, transitioning the printer from idle to printing state. ([source](https://docs.octoprint.org/api/job.html))
- [3D Printer Plugin Hooks](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/hook-based-plugin-systems/3d-printer-plugin-hooks.md) — Extends core functionality through a plugin system with hooks into printer events and UI components.
- [GCODE Scripting Controls](https://awesome-repositories.com/f/software-engineering-architecture/custom-scripting-engines/gcode-scripting-controls.md) — Lets users create custom buttons and scripts that automate printer tasks with GCODE commands. ([source](https://docs.octoprint.org/))
- [Plugin Installation and Management](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/plugin-installation-and-management.md) — Lists, enables, disables, and uninstalls plugins from the web interface without manual file manipulation. ([source](https://docs.octoprint.org/bundledplugins/pluginmanager.html))
- [Repository Plugin Installations](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/plugin-installation-and-management/repository-plugin-installations.md) — Allows browsing and installing plugins directly from the official plugin repository via the web interface. ([source](https://docs.octoprint.org/bundledplugins/pluginmanager.html))
- [Filament Temperature Presets](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/project-management/project-lifecycle-management/project-configuration-presets/configuration-presets/filament-temperature-presets.md) — Stores preset target temperatures for different filament types to quickly set the hotend and bed. ([source](https://docs.octoprint.org/en/main/configuration/config_yaml.html))

### Web Development

- [Job Status Monitoring](https://awesome-repositories.com/f/web-development/reactive-networking/progress-tracking/job-status-monitoring.md) — Displays real-time printer status and job progress through a browser-based dashboard. ([source](https://docs.octoprint.org/bundledplugins/logging.html))
- [3D Printer Status Streaming](https://awesome-repositories.com/f/web-development/websocket-integrations/real-time-data-pushing/3d-printer-status-streaming.md) — Streams real-time printer status, temperature, and job progress via WebSocket connections.
- [Polling Mechanisms](https://awesome-repositories.com/f/web-development/websocket-integrations/real-time-data-pushing/3d-printer-status-streaming/polling-mechanisms.md) — Polls the printer's current state and reports temperature, progress, and connection status in real time. ([source](https://docs.octoprint.org/api/datamodel.html))
- [REST API Polling](https://awesome-repositories.com/f/web-development/websocket-integrations/real-time-data-pushing/3d-printer-status-streaming/rest-api-polling.md) — Retrieves real-time temperature, progress, and status data from a connected 3D printer via a REST API. ([source](https://docs.octoprint.org/api/printer.html))
- [File Upload Management](https://awesome-repositories.com/f/web-development/file-upload-management.md) — Uploads G-code and other 3D printing files directly through the browser for storage and management. ([source](https://docs.octoprint.org/bundledplugins/uploadmanager.html))
- [Printer File Managers](https://awesome-repositories.com/f/web-development/file-upload-management/printer-file-managers.md) — Uploads, organizes, and deletes GCODE files on the printer through the web interface or API. ([source](https://docs.octoprint.org/api/wizard.html))

### Graphics & Multimedia

- [Extrusions](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/materials-shading/material-templates/filament/extrusions.md) — Controls filament extrusion and retraction for 3D printing. ([source](https://docs.octoprint.org/api/printer.html))
- [Timelapse Recorders](https://awesome-repositories.com/f/graphics-multimedia/timelapse-recorders.md) — Captures periodic snapshots during prints to render timelapse videos automatically from a connected webcam.
- [Webcam Feeds](https://awesome-repositories.com/f/graphics-multimedia/webcam-feeds.md) — Streams a live webcam feed alongside real-time print status and temperature data. ([source](https://docs.octoprint.org/configuration/index.html))
- [Live Webcam Feeds](https://awesome-repositories.com/f/graphics-multimedia/webcam-input-sharing/live-webcam-feeds.md) — Shows a live video stream from a connected webcam alongside the printer status during a print. ([source](https://docs.octoprint.org/bundledplugins/index.html))
- [Webcam Stream Configurators](https://awesome-repositories.com/f/graphics-multimedia/webcam-input-sharing/webcam-stream-configurators.md) — Displays a live video feed from a connected webcam and enables timelapse recording with configurable encoding. ([source](https://docs.octoprint.org/en/main/configuration/config_yaml.html))
- [Webcam Streams](https://awesome-repositories.com/f/graphics-multimedia/webcam-streams.md) — Streams live camera feed and captures timelapse videos during print jobs. ([source](https://docs.octoprint.org/))

### User Interface & Experience

- [Printer Control Panels](https://awesome-repositories.com/f/user-interface-experience/admin-panel-extensions/custom-content-panels/printer-control-panels.md) — Creates custom buttons and sliders on the printer control panel to send GCODE commands or adjust settings. ([source](https://docs.octoprint.org/bundledplugins/customcontrolmanager.html))
- [GCODE Command Buttons](https://awesome-repositories.com/f/user-interface-experience/custom-ui-control-implementations/gcode-command-buttons.md) — Allows creating user-defined buttons that send G-code or system commands to the printer. ([source](https://docs.octoprint.org/en/main/configuration/config_yaml.html))
