OctoClaw

Control OctoPrint 3D printer — monitor status, capture webcam snapshots, manage prints, analyze gcode, and detect errors. Use when the user asks about their 3D printer, print status, filament, temperatures, or wants to start/pause/cancel a print.

Audits

Pass

Install

openclaw skills install octoclaw-print

OctoClaw — OctoPrint Control

Helper script: scripts/octoprint.py (relative to this skill directory). Config: config.json (same directory) with octoprint_url and api_key.

Resolve all paths relative to this skill's directory.

Commands

All commands: python3 <skill-dir>/scripts/octoprint.py <command> [args]

Status

  • status-pretty — Formatted status with temps, progress bar, ETA (show this to users)
  • status — Raw JSON
  • check-errors — Returns JSON with errors/warnings (temp anomalies, stalls, connection issues)

Print Control

  • print <filename> — Start a print
  • control <pause|resume|cancel> — Control active print
  • temp <tool0|bed> <temperature> — Set temperature

Files

  • list-files — List uploaded files
  • upload <local-path> [remote-name] — Upload gcode
  • analyze <filepath> — Extract gcode metadata (layers, time, filament, temps, dimensions)

Webcam

  • snapshot [output-path] — Capture webcam image (default: /tmp with timestamp)

Telegram (if configured)

  • telegram-status — Send formatted status to Telegram
  • telegram-snapshot — Send webcam snapshot with progress caption
  • telegram-msg "message" — Send custom message

Workflows

Check on a print: status-pretty → optionally snapshotcheck-errors

Start a print: status-pretty (verify Operational) → list-files or upload → optionally analyzeprint <file>

Error detection: check-errors returns critical errors (>15°C deviation, connection lost) and warnings (5-15°C deviation, stalled prints). Recommend pausing on temp issues, cancelling on critical errors.

Formatting

  • Use status-pretty output for user display
  • Always show progress %, time remaining, ETA for active prints
  • Include temperature actual/target