octoprint-cli is a command line tool for controlling OctoPrint servers created in Python

This tool uses the OctoPrint API to control and view the status of 3D printers connected to OctoPrint servers

This project is a work in progress. Some features may not work as intended or be missing. If you have suggestions or find bugs, please report them in issues. Feel free to fork the repo to fix issues or to implement new features.


These are the features that have been implemented so far, more functions will be implemented in the future. Current progress on features can be found on the project board.

  • Printer connection status
  • Print job status
  • File selection
  • Pause, resume, cancel prints
  • Start print
  • System commands (shutdown, reboot, restart)
  • Listing files/folders
  • Retrieving file/folder information
  • Setting extruder and bed temperature
  • Connect and disconnect from printer
  • Continuous status output with temperature status and progress bar
  • GCODE and STL file uploads to server storage
  • Run G-code on printer from terminal
  • Layer information from OctoPrint-DisplayLayerProgress plugin if installed on server


Currently, octoprint-cli is limited to only printers with a single extruder and heated bed. Support for additional extruders and heated chambers may be implemented in the future. This program has been tested on OctoPi 0.17.0 on the Raspberry Pi 4 running OctoPrint 1.4.1 with a Monoprice Select Mini V2.

Colored and formatted text is not available on Windows systems due to the lack of support on cmd and powershell terminals

The program requires the API key to have all permissions to run

Built With

Share this project: