AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Printago

skill-printago-printago-skill-printago · by printago

>-

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-printago-printago-skill-printago

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-printago-printago-skill-printago)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Printago? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Printago CLI

Operate a Printago print farm via the printago command, a zero-dependency client wrapping the entire Printago REST API.

This skill drives the printago CLI. If printago is not found, install it (it requires Node.js 18+):

brew install printago/tap/printago    # macOS / Linux
npm install -g @printago/cli          # any platform

When piped (non-TTY), every command returns a single-line JSON envelope, so you can parse stdout directly: { ok, command, method, path, status, meta?, result, next_actions? }. Errors are { ok:false, error:{message,code,status}, fix, details }.

Credentials — do NOT ask the user to paste their API key into chat

Check auth first:

printago auth status

If authenticated is false, the key must be set without exposing it in the conversation. Ask the user to run this themselves with the ! prefix so the key never enters the transcript:

!printago auth login

(interactive: prompts for store id + a hidden API key, saved to ~/.config/printago/credentials.json, mode 0600). Alternatively they can export PRINTAGO_API_KEY / PRINTAGO_STORE_ID. Never echo, log, cat, or pass the key as a visible CLI argument.

Discovering commands

The CLI is self-documenting — don't guess command names, list them:

printago                 # all 38 command groups
printago printers        # commands in a group
printago printers get --help   # method, path, and full request-body fields
printago parts create --help   # shows every body field, type, and which are required

--help resolves the request-body schema and lists its fields (name, type, *=required). You almost never need to read the API source or OpenAPI spec to construct a body — run --help first. For nested object/array field types (e.g. EmbeddedPartMaterialAssignments), get the full JSON schema with printago hints schema-types-get .

Common groups: printers, print-jobs, orders, order-items, parts, materials, material-variants, skus, sku-variants, profiles, part-builds, maintenance, api-keys, subscriptions, folders, shopify, etsy, e-bay, tik-tok.

Naming convention: list, get , create, update , delete , search, plus action-named subcommands (printers snapshot , print-jobs cancel, print-jobs retry, orders cancel ).

Discover available actions (hints)

The API self-describes the meaningful actions for each object type. The CLI surfaces them so you can find the right command for a goal without scanning all 379 endpoints. No credentials needed (hints are public).

printago hints                 # which objects have hints + their CLI group
printago hints printer         # actions for an object, each mapped to a command
printago hints print-jobs
printago printers list --hints # attach hints to a normal response
printago hints schema-types-get Printer   # JSON schema for a data type

Reading data

List and search endpoints return a { data, meta } envelope (the CLI sends meta=true by default), so you get meta.total / meta.count / hasMore for pagination. result is the rows. Opt out with --no-meta.

printago printers list --limit 10
printago orders list --all          # auto-paginate every page
printago print-jobs get 

Filtering (important)

Filter on the list command, not search. Pass --filter as {field:{op:value}} JSON, or -q field.op=value directly:

printago print-jobs list --filter '{"status":{"eq":"printing"}}'
printago print-jobs list -q status.eq=printing
printago print-jobs list -q status.in=printing,paused
printago parts list -q name.contains=bracket --limit 20

Operators: eq, ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull, between. Multiple -q conditions AND together.

⚠️ Do NOT filter via search. The API currently ignores a filter sent in the POST /search body and returns everything; the CLI prints a warning field when you do this. Logical and/or/not filters aren't expressible as list query params yet (the CLI errors clearly instead of returning all rows).

Mutating data

Bodies come from --data (inline JSON, @file.json, or - for stdin). Run the command with --help first — it lists every body field and which are required.

printago parts create --data @part.json
printago printers update  --data '{"name":"Printer 2"}'
printago print-jobs cancel --data '{"printJobIds":[""]}'

Mutations hit the user's live store. For destructive actions (delete, delete-many, orders batch-delete, cancel/clear queues) confirm with the user before running.

Uploading files

File upload is a signed-URL handshake then a raw PUT of the bytes. The upload command does both and prints the fileUri to hand to parts create:

printago upload model.3mf
# -> { "fileUris": ["uploads://model.3mf"], ... }

Common workflow: upload a file and queue it for printing

There is no print-jobs create; jobs are spawned by a build. The chain is upload → part → build. When unsure of a body shape, run the command with --help, or printago hints (it encodes this chain).

# 1. upload the model, capture the returned fileUri
printago upload model.3mf

# 2. create a part referencing it (see `parts create --help` for all fields)
printago parts create --data '{"name":"My Model","type":"3mf","fileUris":[""]}'

# 3. preview, then queue a build (POST /v2/builds lives in `printing`)
printago printing preview --data '{"parts":[{"partId":""}]}'
printago printing create  --data '{"parts":[{"partId":""}]}'

# 4. let the matcher assign it, or pin a job to a printer
printago print-jobs queue-run
printago print-jobs send-to-printer  --data '{"printerId":""}'

Diagnose the queue

printago print-jobs list -q status.eq=printing
printago print-jobs matching-troubleshoot    # why isn't it matching a printer?
printago printers snapshot                # live camera snapshot

Point at local dev instead of prod

!printago auth set-base-url http://localhost:3001
# or per-call: printago printers list --base-url http://localhost:3001

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.