Skip to main content

octoprint-cli

Agent-friendly command-line interface for OctoPrint 3D printer management.

Designed for autonomous AI agent interaction with structured JSON outputs, clear exit codes, and safety guards for unattended operation.

Installation

pip install .

Or in development mode:

pip install -e ".[dev]"

Quick Start

1. Initialize configuration

octoprint-cli init
# Prompts for host URL and API key, saves to ~/.octoprint-cli/config.yaml

2. Or use environment variables

export OCTOPRINT_HOST="http://octopi.local"
export OCTOPRINT_API_KEY="your_api_key_here"

3. Check printer status

octoprint-cli status --json

Commands

Command Description
status Get printer state, temperatures, and job progress
files List available G-code files on the printer
upload <file> Upload a G-code file
print <file> Upload and start printing (requires --confirm)
cancel Cancel current print (requires --confirm)
pause Pause current print
resume Resume paused print
preflight [file] Run pre-flight safety checks
temp Get or set temperatures
gcode <cmds> Send raw G-code commands
connect Connect printer to OctoPrint
disconnect Disconnect printer from OctoPrint
init Create configuration file

Agent-Friendly Design

Structured JSON Output

Every command supports --json for machine-parseable output:

octoprint-cli status --json
{
  "status": "success",
  "data": {
    "state": "Operational",
    "temperature": {
      "tool0": {"actual": 22.5, "target": 0.0},
      "bed": {"actual": 21.8, "target": 0.0}
    },
    "job": {
      "file": null,
      "completion": null,
      "print_time_left": null
    }
  }
}

Exit Codes

Code Meaning
0 Success
1 Printer offline / unreachable
2 File error (not found, invalid format)
3 Printer busy (already printing)
4 Other error (auth, server, validation)

Safety Flags

Destructive operations require explicit confirmation:

# Will fail without --confirm
octoprint-cli print model.gcode --confirm --json

# Cancel with confirmation
octoprint-cli cancel --confirm --json

Idempotent Operations

# Exits 0 if already printing instead of erroring
octoprint-cli print model.gcode --confirm --skip-if-printing --json

Configuration

Configuration is resolved with this precedence (highest first):

  1. CLI flags (--host, --api-key)
  2. Environment variables (OCTOPRINT_HOST, OCTOPRINT_API_KEY)
  3. Config file (~/.octoprint-cli/config.yaml)

Config File Format

host: "http://octopi.local"
api_key: "YOUR_API_KEY_HERE"
timeout: 30
retries: 3

Agent Workflow Example

A typical autonomous print workflow:

# Step 1: Verify printer is ready
octoprint-cli preflight ./model.gcode --json
# Parse JSON, check "ready": true

# Step 2: Upload and print
octoprint-cli print ./model.gcode --confirm --json
# Parse JSON, check "status": "success"

# Step 3: Monitor progress (poll periodically)
octoprint-cli status --json
# Parse JSON, read data.job.completion and data.job.print_time_left

# Step 4: Handle completion or errors based on exit codes
# Exit 0 = success, 1 = offline, 2 = file error, 3 = busy, 4 = other

Error Handling Example

octoprint-cli status --json
echo "Exit code: $?"
{
  "status": "error",
  "data": null,
  "error": {
    "code": "CONNECTION_ERROR",
    "message": "Could not connect to OctoPrint at http://octopi.local"
  }
}

Exit code: 1 (printer offline)

Pre-flight Checks

The preflight command (and automatic checks before print) validates:

  • Printer is connected and operational
  • Printer is not already printing
  • No printer errors detected
  • Temperatures are within safe limits
  • File exists, has valid extension, reasonable size
octoprint-cli preflight ./model.gcode --json

Temperature Control

# View current temperatures
octoprint-cli temp --json

# Set hotend to 200C and bed to 60C
octoprint-cli temp --tool 200 --bed 60 --json

# Turn off all heaters
octoprint-cli temp --off --json

Raw G-code

# Home all axes
octoprint-cli gcode G28 --json

# Multiple commands
octoprint-cli gcode G28 "M104 S200" "M140 S60" --json

Requirements

  • Python 3.8+
  • OctoPrint server with API access enabled
  • Dependencies: click, requests, pyyaml, rich

License

MIT

Metadata

Release files for kiln3d-octoprint 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kiln3d-octoprint 0.2.1
File Size Uploaded
kiln3d_octoprint-0.2.1.tar.gz 32.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kiln3d-octoprint 0.2.1
File Interpreter ABI Platform
kiln3d_octoprint-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 55.6 kB

Release files / kiln3d_octoprint-0.2.1.tar.gz

Download URL kiln3d_octoprint-0.2.1.tar.gz
Size 32.2 kB
Tags Source
SHA-256 checksum
How to use checksums
18f7aab1b50d161dd687f2e3747b28d3f768041ad42c6b4385b151903e20b4af
BLAKE2b-256 checksum
How to use checksums
9ba04e94a2c0c14e7c8f28fa6446f4c2f84f2c03a1070494f4933d153f54424a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 20, 2026.

Transparency log

Release files / kiln3d_octoprint-0.2.1-py3-none-any.whl

Download URL kiln3d_octoprint-0.2.1-py3-none-any.whl
Size 23.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8daa2a3e960fe41f1d12554f3f68b8fdb89f1af0e66f4a2991917afbb9a55fb2
BLAKE2b-256 checksum
How to use checksums
20bc4f6c0e8750aa98ff39035c9e963fb4ac96683db38fd145893d05fab93533
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page