Printer
/install cups-printer
Printer
Print images and PDF files to any CUPS printer. All settings (paper size, margins, resolution, duplex) are read from the printer's PPD file at runtime.
Entry point: {baseDir}/scripts/print.py
Setup
See SETUP.md for prerequisites and platform notes.
Commands
List Printers
python3 {baseDir}/scripts/print.py list
python3 {baseDir}/scripts/print.py list --json
Shows available printers with status and which is the system default.
Print a File
python3 {baseDir}/scripts/print.py print /path/to/file.pdf
python3 {baseDir}/scripts/print.py print /path/to/image.png
python3 {baseDir}/scripts/print.py print /path/to/file.pdf --printer "Custom_Printer"
python3 {baseDir}/scripts/print.py print /path/to/file.pdf -o InputSlot=tray-2
python3 {baseDir}/scripts/print.py print /path/to/file.pdf -o cupsPrintQuality=High -o sides=one-sided
python3 {baseDir}/scripts/print.py print /path/to/file.pdf --json
- PDFs: Sent directly to the printer with correct media/duplex settings
- Images (PNG, JPG, GIF, BMP, TIFF, WebP): Converted to PDF at the printer's native DPI, centered within the printable area, then printed
-o KEY=VALUE: Pass any CUPS option (repeatable). Useoptionsto discover available settings (tray, quality, media type, duplex, color mode).- Symlinks are followed but the resolved path must be inside the workspace or
/tmp
Printer Info
python3 {baseDir}/scripts/print.py info
python3 {baseDir}/scripts/print.py info --printer "Custom_Printer"
python3 {baseDir}/scripts/print.py info --json
Shows manufacturer, model, resolution, color support, default paper, duplex mode, input trays, and all paper sizes with margins.
Printer Options
python3 {baseDir}/scripts/print.py options
python3 {baseDir}/scripts/print.py options --printer "Custom_Printer"
python3 {baseDir}/scripts/print.py options --json
Shows all CUPS options with current values and available choices.
Notes
- Uses the system default printer unless
--printeris specified - All commands support
--jsonfor machine-readable output - Image conversion respects the printer's imageable area (margins) from the PPD
- Only printable file types accepted: PDF, PNG, JPG, GIF, BMP, TIFF, WebP
Tips
Tray / Media Selection
Some PPDs have empty InputSlot command strings, so -o InputSlot=tray-2 alone may not work. Use the combined media keyword instead:
# Print to a specific tray with media type
python3 {baseDir}/scripts/print.py print envelope.pdf -o media=A6,tray-2,envelope
# Format: -o media=SIZE,TRAY,TYPE
# SIZE: A4, A5, A6, EnvDL, EnvC5, Letter, etc.
# TRAY: tray-1, tray-2, auto
# TYPE: stationery, envelope, cardstock, labels, etc.
This passes tray selection via IPP directly, bypassing the PPD.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install cups-printer - After installation, invoke the skill by name or use
/cups-printer - Provide required inputs per the skill's parameter spec and get structured output
What is Printer?
Print images and PDFs to any CUPS printer. PPD-aware: reads paper sizes, margins, resolution, and duplex at runtime. Use when the user wants to print files (... It is an AI Agent Skill for Claude Code / OpenClaw, with 783 downloads so far.
How do I install Printer?
Run "/install cups-printer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Printer free?
Yes, Printer is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Printer support?
Printer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Printer?
It is built and maintained by Oliver Drobnik (@odrobnik); the current version is v1.2.2.