Fact-checked by Grok 2 weeks ago

OctoPrint

OctoPrint is an open-source web interface software for controlling and monitoring consumer printers, enabling users to manage print jobs, view feeds, and adjust settings remotely via a . Developed by Gina Häußge and initially released on December 25, 2012, as a prototype called "Cura WebUI" for her printer, it was renamed OctoPrint in spring 2013 and has since become a cornerstone of the community. Licensed under the GNU Affero General Public License version 3 (AGPLv3), OctoPrint is that supports a wide range of printers through its extensible system, which allows customization for features like timelapse video recording, visualization, access controls, and integration with slicing software. It is commonly deployed on low-cost single-board computers such as the using the dedicated OctoPi distribution, facilitating easy setup for remote printing and monitoring. The project is community-driven, with financial support through and contributions, and maintains active development with regular releases, the latest stable version, 1.11.4 (as of November 2025), incorporating performance improvements and enhanced security features.

Overview

Description

OctoPrint is an open-source application designed as a web-based for controlling and monitoring consumer printers remotely. It enables users to upload and manage print jobs, view real-time printer status including temperature and progress, and send commands to interact directly with the hardware from any internet-connected device, such as a smartphone, tablet, or computer. Initially developed as a web interface prototype called Cura WebUI based on the Cura 3D printing software in 2012, OctoPrint is licensed under the GNU Affero General Public License version 3 (AGPLv3), ensuring it remains free and modifiable for the community. The project was created by developer Gina Häußge to simplify printer management and has evolved into a widely adopted tool in the ecosystem. OctoPrint is typically deployed on single-board computers like the , often using the pre-configured OctoPi distribution, which bundles the software with necessary dependencies for easy setup. As a community-driven project, it supports extensibility through a robust system that allows users to add features like enhanced or integrations. The latest stable version, 1.11.4, was released on November 4, 2025.

Development

OctoPrint is led and maintained by Gina Häußge, a with a in , whose academic focus included and . As the project's founder and primary developer, Häußge oversees its ongoing evolution, ensuring alignment with community needs in control software. The project operates as hosted on , where development occurs through collaborative contributions submitted via pull requests and tracked via the issue system. This model facilitates code reviews, bug reports, and feature proposals from a global community of contributors. OctoPrint's release cycle features stable major versions approximately annually, supplemented by periodic bugfix releases to address issues and enhance stability. For instance, version 1.11.0, released on April 22, 2025, incorporated fixes for vulnerabilities including a path traversal issue and a moderate-severity redirect bypass (CVE-2025-32788), alongside new features such as the bundled Manager for operations, two-factor support via s, and additional event hooks for integrations like checks. Quality assurance involves automated testing for release validation, including update simulations and compatibility checks, combined with community-driven testing during release candidate phases. The 1.11.0 release, for example, benefited from a three-month release candidate period that gathered user feedback to refine functionality and resolve bugs before stable deployment. Documentation for developers is hosted at docs.octoprint.org, providing detailed resources on the for operations like file management and printer control, as well as guides for plugin development, versioning strategies, and setting up development environments. This site ensures contributors have access to up-to-date technical references for extending and maintaining the project.

History

Origins and early development

OctoPrint was created by German software engineer Gina Häußge in late 2012, shortly after she acquired her first 3D printer and sought a more flexible solution for than the available host software at the time. Initially developed over the Christmas holidays as a personal hobby project, it emerged as a web-based interface built upon components of the Cura project—a popular open-source slicer and host—to overcome limitations in wireless monitoring and transmission for consumer 3D printers. Häußge, working under her online handle @foosel, aimed to enable control via a standard web browser from low-cost hardware like the , without requiring a full tethered to the printer. Originally released under the name Printer WebUI, the project underwent a in spring 2013 to OctoPrint, a name inspired by the and its metaphorical "tentacles" for simultaneously managing multiple aspects of printer operation, such as , , and file handling. The initial features centered on a simple web interface that allowed users to upload and send files to the printer, print progress and status in real-time, and integrate basic streaming for visual oversight—core functionalities that addressed the era's common pain points in workflows. The first public release occurred in 2013 via , where Häußge shared the code openly under the AGPL license, quickly attracting early adopters from the community. Community engagement began almost immediately through 's issue tracker and Google+ discussions, with users reporting bugs, requesting enhancements, and contributing feedback that shaped subsequent iterations. By 2014, what had started as a solo pet project evolved into a more structured development effort, bolstered by growing user contributions and Häußge's shift toward dedicating significant time to maintenance and expansion amid rising demand.

Sponsorship and funding

OctoPrint's development received significant initial support through a full-time sponsorship from the 3D printer manufacturer , beginning in August 2014 and continuing until April 2016. This arrangement employed lead developer Gina Häußge on a professional basis, allowing dedicated focus on enhancing the software's features and stability during its early growth phase. Following the end of BQ's sponsorship, OctoPrint transitioned to a community-driven model via in April 2016, enabling Häußge to continue full-time development funded entirely by user contributions. By 2023, this effort had garnered over 1,900 backers providing more than $5,200 in monthly pledges, though levels fluctuated and faced a noted decline prompting renewed appeals for support. As of late 2025, the campaign maintains over 3,600 members, sustaining ongoing work on bug fixes, security updates, and user experience improvements. Supplementary funding comes from one-time and recurring donations through platforms such as Sponsors, PayPal, Ko-fi, Donorbox, and , as well as sales of official merchandise including apparel and stickers, with proceeds directly supporting development. Corporate sponsorship opportunities are also available via direct contact, further bolstering the project's financial stability. This consistent funding has directly enabled key technical advancements, such as the implementation of Python 3 compatibility in OctoPrint version 1.4.0, released in March 2020, which addressed the end-of-life status of Python 2 and ensured long-term maintainability. In September , a widespread security incident highlighted risks associated with OctoPrint deployments when thousands of instances were found exposed to the without proper , due to user misconfigurations allowing public on default port 80 or 443. This exposure potentially enabled unauthorized control of connected printers and to sensitive . In response, the OctoPrint team emphasized enhanced security guidelines, recommending the use of built-in lists (ACLs), reverse proxies with additional , and avoidance of direct exposure to mitigate such vulnerabilities.

Major milestones and releases

OctoPrint's evolution since has been marked by steady releases that enhanced stability, security, and extensibility, culminating in significant updates through 2025. A pivotal milestone came with version 1.7.0, released on October 11, , which deprecated support for 2 by introducing notifications for users on legacy environments and ceasing updates via the built-in Software Update for outdated OctoPi versions, while adding comprehensive to track changes over the past 30 days and link to . Subsequent releases focused on refining core functionality amid growing adoption. Version 1.9.2, issued on July 18, 2023, primarily addressed bugfixes for issues arising from third-party dependencies, including workarounds for compatibility disruptions that affected server startup and plugin operations following recent updates to libraries like pydantic. By June 2024, the plugin ecosystem had expanded to 395 available extensions in the official repository, reflecting increased community contributions for customization in areas such as monitoring and automation. In 2024, version 1.10.0, released on April 24, brought improvements in compatibility through bundled tools like the Achievements plugin and enhanced security protocols for plugin installations, alongside UI enhancements such as faster interface loading via multi-threaded processing, refined graphs with better scaling and markers, and new dialogs for errors and reauthentication. The year saw further advancements in version 1.11.0, launched on , which introduced advanced event hooks for deeper in custom scripts and plugins, along with fixes addressing vulnerabilities like path traversal and redirect bypasses (CVE-2025-32788). Complementing this, OctoPi 1.1.0 followed on May 6, optimizing with full support for 5 hardware and beta compatibility for Le Potato boards, enabling smoother deployment on modern single-board computers. The latest stable release, 1.11.4 on November 4, 2025, delivered minor stability updates as a bugfix iteration, resolving user experience issues and security concerns reported post-1.11.0 while preparing groundwork for future native support of non-serial printer connections in upcoming versions.

Technical architecture

Core components

OctoPrint's backend is implemented as a Python-based server utilizing the Flask web framework, augmented with Tornado for handling WebSocket connections to enable real-time communication. This server manages the core logic for interfacing with 3D printers, primarily through serial or USB connections to transmit and receive G-code commands, allowing for precise control over printer operations such as movement, temperature regulation, and print job execution. The backend processes incoming G-code files, buffers commands to prevent overwhelming the printer's firmware, and handles responses from the printer to monitor status updates like progress and errors. The frontend consists of a responsive web interface built with , , and CSS, designed to provide an intuitive for users to interact with their printers remotely. It leverages WebSockets—via the SockJS library for browser compatibility and fallback—to deliver updates on printer status, such as readings, print progress, and live video feeds from connected cameras, ensuring seamless synchronization without page reloads. This architecture allows the interface to adapt to various devices, from desktops to mobile browsers, while maintaining low latency for critical monitoring tasks. OctoPrint exposes a comprehensive RESTful through its backend server, offering endpoints for external applications to integrate with printer functionalities, including job initiation, pausing, cancellation, and retrieval of system information. These routes support operations like uploading files, querying print history, and controlling printer connections, all secured via keys or session authentication to enable programmatic access for custom tools or third-party services. The follows standard HTTP methods (GET, , PUT, DELETE) and returns responses, facilitating easy integration while adhering to CORS policies for cross-origin requests. For data persistence, OctoPrint employs as its lightweight, file-based database to store configuration settings, user accounts, print job histories, and timelapse , ensuring efficient on resource-constrained devices like single-board computers. This choice of database allows for quick queries and updates without requiring a separate , with all data maintained in a single .db file within the application's data directory. SQLAlchemy is used as the layer to abstract database interactions, supporting migrations as the software evolves. The event system in OctoPrint is built around a flexible hook mechanism that allows plugins and custom scripts to subscribe to and respond to specific events throughout the printing lifecycle, such as PrintStarted, PrintCompleted, PrintFailed, or changes. These hooks are invoked by at predefined points, passing relevant payloads like job details or , automated actions like notifications, , or integrations without modifying codebase. Event subscriptions can be configured in the config.yaml file or through the plugin API, promoting extensibility while maintaining a modular design.

System requirements

OctoPrint is designed to run on resource-constrained devices, with the official recommendation focusing on Raspberry Pi models for optimal performance. The recommended hardware includes Raspberry Pi 3B, 3B+, 4B, or Zero 2 W, which provide at least a 1 GHz CPU and 512 MB RAM to handle core operations like print job management and webcam streaming without significant delays. Older models like the Raspberry Pi Zero or Zero W are not officially supported due to insufficient processing power, particularly when using Wi-Fi or adding peripherals such as cameras, which can lead to print artifacts or prolonged loading times. For operating systems, OctoPrint is platform-agnostic and supports , Windows, macOS, and , provided 3.7 or later is available. The official distribution for is OctoPi 1.1.0, first released in May 2025 and as of November 2025 bundling OctoPrint 1.11.4, a pre-configured image based on (formerly Raspbian), along with essential tools like MJPG-Streamer for support. Manual installations on other systems require 3.7 or later, with OctoPrint 1.11.x supporting versions up to 3.13 as of November 2025. In terms of printer compatibility, OctoPrint works with most consumer FDM 3D printers that use RepRap-compatible firmware such as or Klipper, communicating via USB or serial connections to send commands. It supports a wide range of models out of the box, including popular ones like Ender 3 series and Prusa printers, though some proprietary firmwares may require plugins for full integration. Software dependencies are minimal for the core application, primarily requiring Python 3.7+ and for installation, with additional libraries like Flask and installed automatically. Certain plugins may necessitate for frontend enhancements or other tools like for , while webcam functionality relies on MJPEG streaming protocols supported by USB cameras or cameras. Performance considerations emphasize using a for demanding scenarios, such as high-resolution video streaming, multiple concurrent users, or extensive plugin usage, as lower-end models like the Pi 3B may experience bottlenecks under heavy load. For basic single-user setups without a camera, the Pi 3B suffices, but upgrading to the ensures smoother operation and future-proofing against evolving plugin requirements.

Features

User interface and controls

OctoPrint's user interface is a web-based application accessed via a , providing an intuitive layout for interacting with connected printers. The interface is organized into multiple tabs, including for establishing printer links, for monitoring thermal data, Control for manual adjustments, for direct command input, and Files for managing print jobs. This structure enables users to perform direct printer interactions and job management without physical access to . The dashboard layout centers on key elements for real-time oversight and control. The Terminal tab features a command input field where users can enter G-code directly to send instructions to the printer, with options to filter output for clarity such as showing only temperatures or errors. Adjacent to this, the Control tab includes buttons for essential job operations, such as pause to halt printing, resume to continue a paused job, and cancel to abort the current print entirely. Temperature graphs, displayed prominently in the Temperature tab, plot hotend, bed, and ambient temperatures over time, allowing users to visualize thermal stability during operation. File management is handled through the dedicated Files tab, which supports uploading files via drag-and-drop or file selection, with automatic analysis for print time estimates and material usage. An integrated provides slicing previews by rendering models from uploaded files, enabling users to inspect layer paths and detect potential issues before . Job queuing allows selecting and sequencing multiple files for automated execution, where users can initiate the next upon completion of the current one, streamlining workflows. Access controls are integrated to secure the interface, requiring user authentication upon enabling the feature in settings. Users are assigned to predefined groups such as for full printer control or Read-only for viewing without modifications, with administrators managing permissions granularly. For secure remote access, OctoPrint employs API keys—either a global key or user-specific ones—supplied in request headers like X-Api-Key, ensuring authenticated interactions via the REST without exposing credentials. Custom controls enhance direct printer interaction within the Control tab, configurable via the config.yaml file to add buttons or sliders for specific actions. Examples include bed leveling sequences using like G29 for automated probing, fan speed adjustments through parametric commands such as M106 S{slider_value} ranging from 0 to 255, and an emergency stop button that executes M112 to immediately halt all operations with optional confirmation prompts. These controls allow tailoring the interface to printer-specific needs, such as homing axes or custom macros. The interface incorporates mobile responsiveness, adapting layouts for smaller screens on tablets and phones with scalable elements and touch-optimized . This ensures on portable devices, where buttons enlarge for finger interaction and graphs remain legible without horizontal scrolling, facilitating on-the-go printer management from web browsers.

Monitoring and visualization

OctoPrint provides robust tools for real-time observation of , enabling users to track , print advancement, and visual representations without direct physical access to the printer. These features are integrated into the web interface, drawing from the printer's communication protocol and automated logging mechanisms to offer insights into operational status and potential issues. A core component of is live streaming, which allows users to view the print bed in through a browser-embedded feed. OctoPrint supports MJPEG streams via a configurable , such as those generated by tools like MJPG-Streamer, and can also handle snapshots for with other functions. Additional options include and vertical flipping, 90-degree , and watermarking to enhance and usability during remote oversight. The visualizer, a bundled since OctoPrint version 1.4.1, offers a layer-by-layer preview and simulation of print paths derived from uploaded files. Based on the open-source gCodeViewer library, it renders colored lines representing tool movements, with animation to illustrate progress during active prints. This helps identify potential issues like overhangs or travel paths before or during , and it includes configurable thresholds for to optimize performance on mobile devices (default 2 MB) or larger files (default 20 MB). Users can skip initial segments, such as nozzle priming sequences, by specifying a string threshold for more focused previews. Real-time charts for and provide graphical representations of key metrics, aiding in the assessment of stability and job efficiency. The graph, enabled by default, plots actual and target temperatures for extruders, heated beds, and chambers over time, with historical data retrievable via calls limited to a specified number of points (e.g., the last 120 readings). visualization includes a completion percentage, elapsed print time, estimated time remaining (), and current file position, all updated dynamically during printing. usage estimates, such as length in millimeters and volume in cubic centimeters per tool, are also displayed to track material consumption. Print logging automatically records comprehensive job statistics for post-analysis, capturing details like total duration, filament utilization, and outcomes such as success or failure based on job state transitions. This data is stored per and accessible through the or , including timestamps and environmental notes from the session. Historical readings and job events contribute to a detailed log, facilitating and performance optimization across multiple prints. Timelapse generation automates the capture of print sequences into compiled videos, enhancing and of projects. Built-in includes modes triggered by Z-axis changes (zchange) or fixed intervals (timed, default 2 seconds), with frames saved as snapshots from the feed. Post-print compilation uses FFmpeg to render videos at a configurable (default 25 ), with options to render only on successful completion or always. Temporary files are cleaned after seven days by default, and unrendered timelapses can be processed manually via the .

Integration capabilities

OctoPrint establishes communication with printers via a serial or USB connection, employing the protocol to transmit commands and retrieve operational data such as temperature readings and print progress. This interface is compatible with several popular firmware types, including , , GRBL, Smoothieware, Repetier, and Klipper, allowing it to interface with a broad array of consumer-grade printers from manufacturers like , Prusa, and . While natively designed for a single printer connection per instance, OctoPrint can be configured to manage multiple printers by running separate instances or leveraging its for coordinated control. For , OctoPrint integrates with smart plugs to enable of the printer's , facilitating automated shutdowns and startups to enhance energy efficiency and safety. Devices such as Kasa smart plugs are supported through compatible control mechanisms, where OctoPrint can issue commands to toggle based on print status or user input, preventing issues like filament oozing during periods. This capability is particularly useful for unattended setups, allowing users to remotely power the printer without physical access. OctoPrint exposes a comprehensive RESTful that enables seamless integration with third-party applications, providing endpoints for monitoring job status, controlling printer operations, and managing files. Key endpoints include those for retrieving print progress, pausing or canceling jobs, and uploading files, which support features like notifications for real-time updates on print completion or errors. This structure allows developers to build custom interfaces or automate workflows, such as integrating OctoPrint with systems for enhanced remote management. Compatibility with slicing software streamlines the workflow by permitting direct uploads of sliced files to OctoPrint. Popular slicers like Cura, PrusaSlicer, and Simplify3D include built-in support for connecting to OctoPrint instances, enabling users to slice models on their local machines and transfer files over the network without manual intervention. This integration leverages OctoPrint's for secure and file queuing, reducing setup time and minimizing errors in file handling. OctoPrint's event system provides triggers for external notifications through configurable hooks that execute scripts or commands upon specific occurrences, such as print failures, completions, or connection changes. These can be extended to send alerts via webhooks to services like for or servers for detailed reports, ensuring users stay informed about status remotely. The native framework in OctoPrint's supports this by defining subscriptions to core , promoting reliable integration with notification platforms.

Plugins and extensions

Plugin system overview

OctoPrint's plugin system, introduced in version 1.2.0, enables extensive customization by allowing third-party developers to extend the core functionality through modular packages. These plugins integrate via hooks into core events, the , and the , leveraging mixins for injecting behavior into OctoPrint's components, such as asset loading for JavaScript-based UI extensions or event handlers for reacting to printer states. Backend logic is primarily developed in , while frontend customizations often use to enhance the web interface. The architecture supports a plugin lifecycle that includes loading from designated directories or entry points, enabling with registration of hooks and helpers, and disabling with de-registration to maintain system stability. Plugins can be installed through the built-in Manager, which supports direct downloads from the official , installation via web addresses for releases, or uploading file archives. installation is also possible by copying plugin files to the plugins directory or using commands, such as pip install <plugin_name> or installing from a ZIP URL like those hosted on . The official OctoPrint at plugins.octoprint.org serves as the primary distribution hub, as of October 2024 listing 399 plugins, of which 336 are marked as 3 compatible. Development guidelines are detailed in the official documentation, which outlines requirements for creation, including control properties for like name and version, as well as lifecycle hooks such as on_plugin_enabled() and on_plugin_disabled() for managing activation. Permissions are handled through OctoPrint's system, ensuring plugins respect user roles and keys. Special plugin types, like those requiring restarts (RestartNeedingPlugin), are supported to handle complex integrations without disrupting the core server. Compatibility is version-specific, with plugins declaring supported OctoPrint and versions via control properties, such as >=3.9,<4 for Python 3.9 and above. Releases like 1.11.0 have improved plugin stability through bug fixes, security patches for issues like path traversal vulnerabilities, and enhancements such as auto-escaping templates that require plugin opt-ins for backward compatibility. A safe mode in OctoPrint disables third-party plugins to aid troubleshooting, ensuring core functionality remains accessible. OctoPrint's plugin ecosystem significantly enhances its core functionality, allowing users to tailor the software for specific needs such as data tracking, visualization, and automation. Among the most widely adopted extensions are those that address common pain points in workflows, including print monitoring, timelapse creation, bed calibration, failure detection, and user notifications. These plugins leverage OctoPrint's extensible architecture to integrate seamlessly, often requiring minimal configuration while providing substantial value to hobbyists and professionals alike. The PrintJobHistory plugin stores comprehensive details of each print job in a local database, capturing attributes like file names, start and end times, success status, user information, slicer settings, thumbnails, layer data, and filament usage drawn from OctoPrint and compatible plugins. It enables users to review historical prints through a dedicated tab, edit job details, view statistics on success rates and durations, and export data for further analysis, making it invaluable for optimizing printing processes and troubleshooting recurring issues. OctoLapse specializes in generating high-quality, stabilized timelapse videos of 3D prints by automating camera snapshots at customizable triggers such as layer changes, height intervals, timed intervals, or specific G-code commands. Unlike basic timelapse tools, it moves the print bed or extruder to ensure crisp, level footage without needing custom camera mounts or manual G-code modifications, supporting features like automatic slicer detection, profile presets, enhanced rendering options, and multi-extruder compatibility. This plugin reduces the time impact on prints and offers advanced controls for professional-grade results, appealing to users sharing their builds online. For bed leveling, the Bed Level Visualizer plugin renders a interactive 3D mesh of the printer bed's topography using Plotly.js, based on data from G29 probe commands like those from automatic bed leveling systems. It displays the mesh in a dedicated tab, allowing users to analyze deviations, identify problem areas, and adjust settings for more accurate prints, with configurable options for visualization depth and orientation. This tool is particularly useful for printers with mesh-based leveling, helping to visualize and refine bed calibration without external software. AI-driven failure detection is provided by Obico (formerly The Spaghetti Detective), which uses computer vision on webcam feeds to monitor prints in real-time and alert users to issues like spaghetti failures, layer shifts, or adhesion problems. The plugin supports automatic pausing or recovery, customizable notifications via push, email, or SMS, and integrates remote access features including unlimited streaming and multi-printer management through companion mobile apps. As of July 2024, having analyzed over 89.8 million hours of print footage and detected 1,067,608 failures, it has been adopted by more than 100,000 users as of 2022, demonstrating its reliability in preventing print waste. In shared environments like makerspaces, the Announcements (HeaderAnnouncements) plugin displays customizable messages in the OctoPrint interface header, such as maintenance schedules, policy updates, or safety reminders, ensuring all users receive critical information without disrupting the core UI. It includes simple settings for text, styling, and visibility, promoting efficient communication in multi-user setups. Plugins like these have seen thousands of downloads each from the official repository, underscoring their role in extending OctoPrint's versatility and fostering a robust ecosystem for 3D printing enthusiasts.

Installation and usage

Setup on Raspberry Pi

To install OctoPrint on a , the recommended method is using the official OctoPi distribution, which bundles OctoPrint with a customized image, webcam support, and other essentials for 3D printer control. The process begins by downloading the latest OctoPi image from the official OctoPrint website at octoprint.org/download, which provides direct links to stable releases hosted on . As of November 2025, the current stable version is OctoPi 1.1.0 (incorporating 1.11.4), released on November 4, 2025. Once downloaded, unzip the image file and flash it to a micro (at least 8 GB recommended, Class 10 for reliability) using free tools such as the Imager (available from raspberrypi.com) or balenaEtcher. The Imager allows selecting OctoPi directly from its OS catalog under "Other specific-purpose OS > 3D printing," streamlining the process by handling download and flashing in one step. After flashing, safely eject the and insert it into the . For the initial boot, connect the to power and, if using a printer, attach it via a USB cable to one of the Pi's USB ports (typically USB 2.0 for ). The system boots into a headless , with OctoPrint starting automatically. The default is "octopi," allowing to the web interface at http://octopi.local from any on the same local network; if mDNS resolution fails, use the Pi's (discoverable via router admin like Angry IP Scanner). is enabled by default at https://octopi.local, secured with a that may prompt warnings—users should accept it for local use but consider proper certificates for remote . Network configuration is essential before or after the first boot. For Ethernet, simply connect an RJ45 cable from the Pi to the router for automatic DHCP assignment. For Wi-Fi, prior to initial boot, mount the SD card's boot partition on a computer and edit the octopi-wpa-supplicant.txt file (using a plain text editor like Notepad++ on Windows, ensuring Unix line endings) to add network details in wpa_supplicant format, such as:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="YOUR_NETWORK_NAME"
    psk="YOUR_NETWORK_PASSWORD"
}
Replace placeholders with the actual SSID and (WPA/WPA2 recommended); save and reinsert the to boot into the network. Post-boot adjustments can be made via SSH (using or : ssh [email protected] with default password "raspberry") by editing /etc/wpa_supplicant/wpa_supplicant.conf and running sudo wpa_cli -i wlan0 reconfigure. Basic security measures should be implemented immediately after accessing the system. The default credentials (username: pi, password: raspberry) pose a risk, so connect via SSH and run sudo raspi-config to change the password under "System Options > Change Password," then reboot. Additionally, while HTTPS is pre-enabled, verify its status in the OctoPrint settings under "General > Enable HTTPS" and consider generating a stronger certificate using tools like Let's Encrypt for production use, though the self-signed option suffices for local networks.

Configuration and first use

After accessing the OctoPrint web interface at http://octopi.local or the device's , users encounter an initial setup that guides the creation of an administrator account, enabling basic by default. This wizard ensures secure entry before proceeding to further configuration, with anonymous access denied to prevent unauthorized use. To connect the 3D printer, navigate to the panel in the interface and select "AUTO" for both the and baud rate, then click "Connect" to initiate communication. If automatic detection fails, manually specify the port (e.g., /dev/ttyUSB0) and baud rate—commonly 115200 for firmware—and select the firmware type such as or from the dropdown to match the printer's controller. Test the connection by sending a simple command like M115 via the Terminal tab to retrieve firmware details, confirming successful linkage. For webcam integration, connect a compatible USB camera or Raspberry Pi Camera Module to the host device prior to booting; OctoPrint automatically detects and streams the feed in the Control tab upon connection. If using a network stream, enter the MJPG URL in Settings > Webcam & Timelapse to enable remote viewing during prints. User settings are configured via the Settings menu: enable and manage access control by adding users and assigning roles like "Operator" for print management or "Admin" for full privileges, ensuring only authorized individuals can interact with the printer. Generate an API key in Settings > API for programmatic access, using it in HTTP headers (e.g., X-Api-Key) for secure integrations with external tools. For notifications, activate the bundled Action Command Notification Support plugin in Settings > Plugins, enabling popups or sidebar alerts triggered by firmware commands like //action:notification <message>. To run the first print job, upload a file via the Files panel by selecting "Upload" and choosing the file from your device; once listed, click the printer icon next to it to start the job from the Control tab. Monitor progress through the , which displays real-time temperature graphs, print progress, and feed for visual oversight. Common first-use issues include connection drops, often resolved by verifying the USB cable integrity and retrying with manual port/ settings or restarting the device. Permission errors arise from mismatched credentials; update the administrator password in the settings and ensure the user role permits connections. mismatches, such as incompatible rates, can be diagnosed via with M115 and fixed by selecting the correct type or updating the printer's .

Community and ecosystem

User community

The OctoPrint user revolves around dedicated online platforms where enthusiasts exchange knowledge on setup, troubleshooting, and best practices for printer control. The official at community.octoprint.org acts as the primary hub, featuring categorized threads for support, general discussions, and feature requests, with active participation from thousands of users seeking solutions to common issues like integration and hardware . As of November 2025, the has over 21,000 registered users. Real-time interactions are facilitated through the official server, launched in 2020, which hosts channels for quick help, casual conversations, and announcements, attracting thousands of members for collaborative problem-solving and sharing print experiences. While official support is limited to the forum and , an unofficial presence exists on platforms like Reddit's r/octoprint subreddit, where users post tips and discussions independently of developer oversight. The community demographics skew toward hobbyists and makers passionate about , drawn to OctoPrint's accessibility on affordable hardware like the , though adoption is expanding into professional realms such as educational institutions and prototyping labs. For instance, employ OctoPrint to manage fleets of printers in makerspaces, enabling students to monitor and control prints remotely for coursework and projects. Users engage offline through local maker spaces and meetups, where OctoPrint setups are demonstrated in collaborative environments like labs and , fostering hands-on learning and innovation in additive manufacturing. The ecosystem's growth is bolstered by the Pi's popularity among tinkerers, leading to widespread installations that support both personal and institutional workflows.

Contributions and support

OctoPrint encourages community involvement through structured contribution channels on , where users report bugs via issues and propose code improvements through pull requests to the main repository. Translation efforts are facilitated by creating shareable language packs or submitting pull requests for plugin localizations, enabling multilingual support starting from version 1.2.0. Official support resources include the comprehensive documentation at docs.octoprint.org, which covers installation, configuration, and API usage, alongside an FAQ section integrated into the community forum for common troubleshooting. Video tutorials are available on the official OctoPrint YouTube channel, providing visual guides for setup and feature overviews directly from the project maintainer. The project runs community beta programs through release candidates announced on the blog and GitHub, allowing volunteers to test pre-release versions such as 1.11.0rc1 for bug identification and feedback before stable rollout. Financial backers via receive perks including early access to exclusive content like "OctoPrint on Air" episodes and invitations to live sessions with the developer. Volunteers play key roles as moderators to maintain discussion quality, maintainers to update and sustain extensions in the , and documentation writers to refine guides and references.

References

  1. [1]
    OctoPrint
    OctoPrint is the snappy web interface for your 3D printer that allows you to control and monitor all aspects of your printer and print jobs, right from your ...Download · Documentation · Media about OctoPrint · OctoPrint Plugin Repository
  2. [2]
    Happy Birthday, OctoPrint!
    Dec 13, 2022 · Around spring of 2013 it got named OctoPrint (and how that happened is covered in the video below, so be sure to watch it ), Domains got ...
  3. [3]
    Welcome to OctoPrint's documentation! — OctoPrint main ...
    OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero General Public License V3.REST API · Action Commands · Octoprint.printer · Octoprint.server
  4. [4]
    OctoPrint is the snappy web interface for your 3D printer! - GitHub
    OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero General Public License V3.OctoPrint · OctoPrint Wiki · Issues 253 · Pull requests 2
  5. [5]
    Download & Setup OctoPrint
    Learn how to setup OctoPrint using the preinstalled OctoPi image for Raspberry Pi, or how to install from source on Windows, Linux and Mac.Support OctoPrint · Setting up OctoPrint on Windows · A new camera stack for OctoPi
  6. [6]
    1.10.0 - OctoPrint.org - New release
    Apr 24, 2024 · OctoPrint 1.10.0 includes achievements, performance improvements, a new firmware error dialog, and a new reauthentication dialog for critical ...<|control11|><|separator|>
  7. [7]
    Support OctoPrint
    Send a one-time contribution via GitHub Sponsors! Whether regularly or only once, either way I get every cent due to zero fees! Make a one-time contribution ...Missing: repository | Show results with:repository
  8. [8]
    OctoPrint, the application to control your 3D printer - 3Dnatives
    Aug 26, 2020 · OctoPrint is a controller application for 3D printers: open-source and free, it allows you to manage all your prints remotely and to control your machines with ...
  9. [9]
  10. [10]
    About me - foosel.net
    I'm probably best known for being the creator and maintainer of OctoPrint, a web interface and print server for 3d printers. I know that a lot of people wonder ...
  11. [11]
    1.11.4 - OctoPrint.org - New release
    Nov 4, 2025 · New release: 1.11.4 04 Nov 2025. OctoPrint On Air #66 30 Sep 2025. New release: 1.11.3 09 Sep 2025. Heads-up devs: New branching model is now ...
  12. [12]
    Gina Häußge - GitHub Stars
    Creator & maintainer of OctoPrint. GitHub Star. PSF Fellow. In love with software development since early childhood which led to a diploma in Computer Science.
  13. [13]
    Women in Tech: "Go for it! Don't let them talk you down!" - devmio
    Aug 17, 2022 · Today, we'd like you to meet Gina Häußge, creator and maintainer of OctoPrint. Today's Woman in Tech: Gina Häußge, Project Lead of OctoPrint.
  14. [14]
    Contribute to OctoPrint/OctoPrint - GitHub
    Contribute to OctoPrint/OctoPrint. Make your first contribution to this repository by tackling one of the issues listed below. Read the contributing guidelines.
  15. [15]
    Releases · OctoPrint/OctoPrint - GitHub
    Heads-ups. The heads-ups from previous 1.11.x releases still apply, please read their release notes as well for a full picture of what you should be aware ...
  16. [16]
    1.11.0 - OctoPrint.org - New release
    Apr 22, 2025 · New release: 1.11.4 04 Nov 2025. OctoPrint On Air #66 30 Sep 2025. New release: 1.11.3 09 Sep 2025. Heads-up devs: New branching model is now ...
  17. [17]
  18. [18]
    Automating OctoPrint's release tests
    Jul 29, 2020 · 1.4.1rc4 was the first release candidate to go through final release preparations using my newly created test setup which will save me a ton of ...
  19. [19]
    REST API — OctoPrint main documentation
    The OctoPrint REST API supports file, job, printer, and printer profile operations, including commands for printer states, file operations, and job commands.File operations · Printer profile operations · General information · Job operations
  20. [20]
    Development — OctoPrint main documentation
    Development · OctoPrint's versioning strategy · OctoPrint's branching model · Setting up a Development environment · Obtaining, building and running the source.
  21. [21]
    OctoPrint dev documentation
    OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero General Public License V3.
  22. [22]
    Interview with OctoPrint's Gina Häußge - Make Magazine
    Dec 9, 2014 · From part-time project to full-time job, we talk to the creator of OctoPrint, a wireless solution for managing your 3D printer.
  23. [23]
    Developing OctoPrint
    Why did I create OctoPrint? · Sat down & built first version over Christmas 2012 · Published my little pet project, figured "I'm done" · People started messaging ...Missing: origins Cura
  24. [24]
    OctoPrint – Printer WebUI's New Name, Face and Features
    Jan 22, 2013 · Printer WebUI – Gina Häußge's 3D printer controlling software we reported on last week – has undergone some tweaks on its journey towards ...<|separator|>
  25. [25]
    Console #108 - Interview with Gina of OctoPrint
    Jun 5, 2022 · Where did the name for OctoPrint come from? That came to be during a Google+ discussion on a new name for what is now OctoPrint. When I just ...Missing: Häußge | Show results with:Häußge
  26. [26]
    OctoPrint Startup Soon to Lose Funding from Sponsor BQ, Launches ...
    Apr 16, 2016 · “Most of you probably know that OctoPrint's development has been heavily sponsored by BQ since August 2014, mostly by employing me (Gina Häußge) ...
  27. [27]
    We need to talk about funding - OctoPrint
    Oct 30, 2023 · I am now happy to report that I am signed up for monthly contributions via GitHub. OctoPrint has been an incredible addition to my 3d ...Missing: repository | Show results with:repository
  28. [28]
    Gina Häußge | Creating OctoPrint - Patreon
    Gina Häußge. Creating OctoPrint. 3,664 members; 545 posts. Join for free. See membership options. See membership options. Home · About ... /month. Join now. Join ...
  29. [29]
    1.4.0 - OctoPrint.org - New release
    Mar 4, 2020 · This release officially adds support to run OctoPrint under Python 3 instead of 2, which has become EOL as of January 1st 2020.Missing: impact | Show results with:impact
  30. [30]
    Thousands of 3D Printers Exposed to Remote Attacks - SecurityWeek
    Sep 4, 2018 · The OctoPrint web interface of thousands of 3D printers is exposed to remote, unauthenticated attacks from the Internet due to ...
  31. [31]
    Access misconfiguration opens 3D printers to remote attacks
    Sep 5, 2018 · If you must do this, take advantage of the ACL system built into OctoPrint, and even better, put another form of authentication in front.Missing: incident | Show results with:incident
  32. [32]
    New release: 1.7.0 - OctoPrint
    Oct 11, 2021 · OctoPrint 1.7.0 is the final release that will allow updating through the built in Software Update plugin. The Python environment on OctoPi 0.15 ...Heads-Ups · Thanks · Insights
  33. [33]
  34. [34]
    1.9.2 - OctoPrint.org - New release
    Jul 18, 2023 · This second bugfix release for 1.9.x includes a work around for an issue with a third party dependency that arose since yesterday, July 17th.
  35. [35]
    OctoPrint Plugin Repository
    OctoPrint-CVPrinting. Cloud ... Computer vision for detecting issue during 3d printing with automatic notification to Discord and Telegram and pausing the print.OctoPrint-Cancelobject · Themeify · OctoPrint-PrintTimeGenius · OctoPrint-Hologram
  36. [36]
  37. [37]
  38. [38]
    New OctoPi Release: 1.1.0
    May 6, 2025 · Guy Sheffer has just released OctoPi 1.1.0 - big thanks to him and also to everyone who helped test the release candidates and the nightly builds.
  39. [39]
    octoprint.server - OctoPrint dev documentation
    The request may be a Flask or Tornado request object. Attempts will be made to read the API key from the “apikey” request parameter, the “X-Api-Key” header, or ...
  40. [40]
    JavaScript Client Library — OctoPrint main documentation
    JavaScript Client Library . The JS Client Library provides an interface to all of OctoPrint's API, including the SockJS based socket to send push messages ...Missing: frontend WebSockets
  41. [41]
    General information — OctoPrint main documentation
    To make use of the OctoPrint API from websites other than the OctoPrint web interface, cross-origin resource sharing (CORS) must be enabled. This is the case ...
  42. [42]
    Hooks — OctoPrint main documentation
    Each hook defines a contract detailing the call parameters for the hook handler method and the expected return type. OctoPrint will call the hook with the ...
  43. [43]
    Events — OctoPrint main documentation
    Event hooks are configured via OctoPrint's configuration file config.yaml . There they are contained in a subscriptions list located directly under the ...
  44. [44]
    Setting up OctoPrint on Windows - Guides
    Mar 19, 2018 · To install OctoPrint under Windows, you'll need to do the following: Install Python 3 from python.org. You need a version between 3.7 and 3.11 to run OctoPrint.<|control11|><|separator|>
  45. [45]
    Octoprint compatibility list of Printer and Firmware - Get Help
    Oct 1, 2018 · Octoprint is compatible with most common printers. I googled around and even found a guide for your specific situation.
  46. [46]
    Setting up a Development environment - OctoPrint's documentation!
    Obtaining, building and running the source · run the OctoPrint server via octoprint serve · run the test suite from the checked out source folder via pytest.
  47. [47]
    Minimum hardware requirement? - OctoPrint Community Forum
    Jul 26, 2019 · Pi 3+: 5V fan and CPU copper heat sink, No camera, USB cable to machine, 5V 2.5A PSU, 32GB SanDisk Extreme PLUS 32GB microSDXC or Samsung's ...
  48. [48]
    Welcome to OctoPrint’s documentation! — OctoPrint main documentation
    - **What is OctoPrint**: A web interface for controlling consumer 3D printers, released as Free Software under the GNU Affero General Public License V3.
  49. [49]
    GCODE Scripts — OctoPrint main documentation
    OctoPrint GCODE scripts are custom scripts executed on specified occasions, using Jinja2 templating, and are located in the scripts/gcode folder.Missing: dashboard terminal graphs
  50. [50]
    Job operations — OctoPrint main documentation
    Job operations include starting, pausing, cancelling, and restarting print jobs. The pause command can also resume or toggle the job's state.<|separator|>
  51. [51]
    File operations — OctoPrint main documentation
    Upload a file to the selected location or create a new empty folder on it. Other than most of the other requests on OctoPrint's API which are expected as JSON, ...<|separator|>
  52. [52]
    Slicing — OctoPrint main documentation
    The Slicing API on one hand offers methods for managing slicing profiles stored within OctoPrint, on the other hand it will be extended in the future to also ...
  53. [53]
    Access Control — OctoPrint main documentation
    OctoPrint's bundled access control feature allows granular permission control over which users or user groups are allowed to access which parts of OctoPrint ...Autologin · Gather Configuration... · Octopi Specific StepsMissing: web | Show results with:web
  54. [54]
    Custom Controls — OctoPrint main documentation
    OctoPrint allows you to add custom controls to the “Control” tab of its interface. Control types reach from simple buttons which trigger sending of one or more ...Missing: dashboard | Show results with:dashboard<|control11|><|separator|>
  55. [55]
    Features — OctoPrint main documentation
    Features · Access Control · Autologin · Available Extension Hooks · Custom Controls · Types · Examples · GCODE Scripts · Predefined Scripts · Events · Snippets ...
  56. [56]
  57. [57]
    GCode Viewer Plugin — OctoPrint main documentation
    The GCode Viewer plugin provides a GCode viewer based on Alex Ustyantsev's work. OctoPrint GCode Viewer Plugin. Fig. 17 An example of the GCode Viewer in ...Missing: visualizer | Show results with:visualizer
  58. [58]
    Printer operations — OctoPrint main documentation
    OctoPrint allows commands for print head, tool, bed, chamber, and SD card operations, plus retrieving printer state and sending arbitrary commands.
  59. [59]
  60. [60]
    Common data model — OctoPrint main documentation
    The OctoPrint common data model includes printer, job, and file related data, such as printer state, job information, and file information.
  61. [61]
    Timelapse — OctoPrint main documentation
    Save a new timelapse configuration to use for the next print. Set the optional save flag in the configuration to true in order to make the new configuration ...
  62. [62]
    Connection handling — OctoPrint main documentation
    Retrieve the current connection settings, including information regarding the available baudrates and serial ports and the current connection state. Requires ...
  63. [63]
    PSU Control - OctoPrint Plugin Repository
    Jan 25, 2017 · Smart control of your power supply via GPIO, GCODE Command, System Command, or variety of sub-plugins.
  64. [64]
    OctoPrint PSU Control - GitHub
    This OctoPrint plugin controls an ATX/AUX power supply to help reduce power consumption and noise when the printer is not in use.Missing: bundled | Show results with:bundled
  65. [65]
    PrusaSlicer & OctoPrint: How to Use Them Together | All3DP
    May 26, 2021 · With OctoPrint connected in PrusaSlicer, after uploading your model and slicing it, you can use PrusaSlicer's specific button to send your newly ...
  66. [66]
    PrusaSlicer | Original Prusa 3D printers directly from Josef Prusa
    Prusa Connect offers the most seamless experience and lets you monitor your prints in PrusaSlicer, but we also support Octoprint, Repetier Host, FlashAir SD ...
  67. [67]
    Octoprint compatibility - Simplify3D User Forum
    We've been using Octoprint for a few months. I started with S3D on Monday and have had no problems with the generated gcode uploading to Octo.Missing: slicer Cura
  68. [68]
    OctoPrint-Webhooks
    Apr 29, 2020 · This allows you to send a webhook (aka API Request) to any URL when certain events happen on OctoPrint such as when a print starts, finishes, fails.
  69. [69]
    config.yaml — OctoPrint main documentation
    By modifying the components > order lists you may reorder OctoPrint's UI components as you like. You can also inject Plugins at another than their default ...Missing: dashboard | Show results with:dashboard
  70. [70]
    Plugins — OctoPrint main documentation
    The official OctoPrint Plugin Repository can be found at plugins.octoprint.org. Some plugins may also be found in the list provided in the OctoPrint wiki and on ...
  71. [71]
    General Concepts - OctoPrint dev documentation
    OctoPrint's plugins are Python Packages which in their top-level module define a bunch of control properties defining metadata (like name, version etc of the ...
  72. [72]
    Developing Plugins — OctoPrint main documentation
    Developing Plugins · How to get a Python 3 virtual environment with OctoPrint · Telling OctoPrint your plugin is Python 3 ready · Common pitfalls during migration.
  73. [73]
    Control Properties - OctoPrint dev documentation
    If your plugin is compatible to supported Python 3 versions only, you should set this to >=3.9,<4 . __plugin_pythoncompat__ = ">=3.9,<4".
  74. [74]
    PrintJobHistory - OctoPrint Plugin Repository
    May 28, 2020 · Print Job History-Plugin collects a lot of attributes from OctoPrint itself, like Filename, Start/End-Time, Status, Username, Slicer-Settings and many more.
  75. [75]
    Octolapse - OctoPrint Plugin Repository
    Mar 24, 2018 · Octolapse is designed to make stabilized timelapses of your prints with as little hassle as possible, and it's extremely configurable.
  76. [76]
    Bed Level Visualizer - OctoPrint Plugin Repository
    Apr 14, 2018 · The Bed Level Visualizer plugin displays a 3D mesh of bed topography using Plotly js, rendering a 3D surface of the bed’s reported mesh.
  77. [77]
    Obico for OctoPrint: Full Remote Access - AI Failure Detection ...
    Nov 7, 2019 · As the original creators of AI failure detection for 3D printing (Obico was formerly The Spaghetti Detective), we have the most advanced and ...
  78. [78]
    OctoPrint-HeaderAnnouncements
    Sep 12, 2022 · Add an announcement to the header of your octoprint install for use in a shared environment.
  79. [79]
  80. [80]
  81. [81]
    How to control your 3D printer using OctoPrint and Raspberry Pi
    Unplug your Raspberry Pi from the power supply · Connect your Raspberry Pi camera or webcam · Reconnect the power supply and open OctoPrint at http://octopi.local.Set Up Octoprint · Add A Camera (optional) · Using Octoprint
  82. [82]
  83. [83]
    WiFi setup and troubleshooting - FAQ - OctoPrint Community Forum
    Mar 12, 2018 · To set up WiFi, edit `/boot/octopi-wpa-supplicant.txt` with your network's SSID and password. Use the correct text editor to avoid issues.
  84. [84]
    OctoPrint Setup: How to Install OctoPi on a Raspberry Pi | All3DP
    Oct 6, 2024 · OctoPrint gives you more control over your 3D prints. Learn how to set up OctoPi on a Raspberry Pi with this step-by-step setup guide!
  85. [85]
    Anycubic I3 Mega - Baudrate can't be detected and also not set ...
    Jan 7, 2018 · If your printer's baud is set to 115200 then you need to set OctoPrint to that, if the printer is set to something else then OctoPrint also ...
  86. [86]
    Octoprint - Configuration and install - Prusa Knowledge Base
    Nov 15, 2024 · This article covers how to configure your own image for any Raspberry Pi (RPi) from scratch. Following this article, you will have connected a base ...Missing: architecture | Show results with:architecture
  87. [87]
    Action Command Notification support - OctoPrint's documentation!
    The OctoPrint Action Command Notification Support Plugin comes bundled with OctoPrint. It allows firmware to trigger notifications users with the ...Missing: setup | Show results with:setup
  88. [88]
    Where to get help with OctoPrint?
    OctoPrint has two official support channels: the Community Forum and the official Discord server. These are the best places to get help with OctoPrint.
  89. [89]
    OctoPrint Community Forum
    A centralized place to interact with the OctoPrint community. Have an idea for a new plugin? This is the right place for you.
  90. [90]
    Official Discord server launched! - OctoPrint.org
    May 7, 2020 · OctoPrint now has an official Discord server and you can find the invite at discord.octoprint.org! Discord is not going to replace the well established ...
  91. [91]
    7 things OctoPrint can do on a Raspberry Pi that make 3D printing ...
    Jun 3, 2025 · Advanced users can write their own scripts or customize events. This level of control makes OctoPrint ideal for both hobbyists and pros who ...
  92. [92]
    IDEA Lab Spaces | Sacred Heart University
    The main system is 12 Prusa MK3S 3D printers that are connected to a network (using OctoPrint) that allows students to send the print job from their laptops.
  93. [93]
    Learn About Octoprint Installation at the OPIM Innovate Lab
    Nov 6, 2023 · Octoprint essentially acts as a load/supply management system that increases operational efficiency; similar to examples in the manufacturing ...Missing: education professional
  94. [94]
    workshop – Midsouth Makers – Memphis Area Makerspace
    We have it setup to allow for remote printing on the LAN, using either OctoPrint or Repetier-Server. We recommend Repetier-Server due to it's stability. octo- ...<|separator|>
  95. [95]
    LITT: Makers - Idaho Commission for Libraries
    The Makers LITT is a place for library staff supporting maker programming in Idaho to to connect and share via a quarterly online chat and ongoing Listserv.
  96. [96]
    Translating OctoPrint - Guides
    Jun 17, 2020 · OctoPrint is ready for being translated into various languages. In order to contribute a translation you have to create a shareable language pack.
  97. [97]
    Translate a plugin - Development - OctoPrint Community Forum
    Jun 23, 2020 · Starting with version 1.2.0 OctoPrint is ready for being translated into various languages. In order to contribute a translation you have ...Missing: Weblate | Show results with:Weblate
  98. [98]
    OctoPrint - YouTube
    The official OctoPrint channel on YouTube! The place for first hand updates on all things OctoPrint directly from its maintainer Gina Häußge aka foosel.Missing: support docs
  99. [99]
    New release candidate: 1.11.0rc1 - OctoPrint.org
    Jan 28, 2025 · A new minor version that brings not only bug and security fixes but also improvements and whole new features.Missing: April | Show results with:April
  100. [100]
    OctoPrint On Air #65
    Aug 4, 2025 · Patrons on the Patreon campaign and GitHub Sponsors pledging at the $5 perk or above get early access to it and are also invited to regular live ...Missing: backers | Show results with:backers