# Send Printer to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cups-printer",
    "name": "Printer",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/odrobnik/cups-printer",
    "canonicalUrl": "https://clawhub.ai/odrobnik/cups-printer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/cups-printer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cups-printer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SETUP.md",
      "SKILL.md",
      "pyproject.toml",
      "scripts/print.py"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "cups-printer",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T02:31:24.272Z",
      "expiresAt": "2026-05-08T02:31:24.272Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cups-printer",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cups-printer",
        "contentDisposition": "attachment; filename=\"cups-printer-1.2.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "cups-printer"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cups-printer"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cups-printer",
    "downloadUrl": "https://openagent3.xyz/downloads/cups-printer",
    "agentUrl": "https://openagent3.xyz/skills/cups-printer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cups-printer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cups-printer/agent.md"
  }
}
```
## Documentation

### 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.

### 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). Use options to 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 --printer is specified
All commands support --json for 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

### 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.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: odrobnik
- Version: 1.2.2
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T02:31:24.272Z
- Expires at: 2026-05-08T02:31:24.272Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/cups-printer)
- [Send to Agent page](https://openagent3.xyz/skills/cups-printer/agent)
- [JSON manifest](https://openagent3.xyz/skills/cups-printer/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/cups-printer/agent.md)
- [Download page](https://openagent3.xyz/downloads/cups-printer)