Printer skill
Manage printers via CUPS on macOS (discover, add, print, queue, status, wake).
Manage printers via CUPS on macOS (discover, add, print, queue, status, wake).
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Control printers on macOS using built-in CUPS commands. No external CLI needed.
# Network printers (Bonjour/AirPrint) dns-sd -B _ipp._tcp . 2>/dev/null & sleep 3; kill $! 2>/dev/nullGet printer details (host, port, resource path)
dns-sd -L "Printer Name" _ipp._tcp . 2>/dev/null & sleep 3; kill $! 2>/dev/null
CUPS-native discovery
lpstat -e # available network destinations lpinfo --include-schemes dnssd -v # dnssd backends
IPP discovery
ippfind --timeout 5
# Recommended: driverless queue lpadmin -p MyPrinter -E -v "ipp://printer.local:631/ipp/print" -m everywhereSet as default
lpadmin -d MyPrinter
Enable SNMP supply reporting (toner levels)
sudo lpadmin -p MyPrinter -o cupsSNMPSupplies=true
lp filename.pdf # to default printer lp -d MyPrinter filename.pdf # specific printer lp -d MyPrinter -n 2 file.pdf # 2 copies lp -d MyPrinter -o sides=two-sided-long-edge file.pdf # duplex lp -d MyPrinter -o media=letter file.pdf lp -d MyPrinter -o ColorModel=Gray file.pdf # grayscalePrint text directly
echo "Hello World" | lp -d MyPrinter
# Check status lpstat -p MyPrinter # printer status lpstat -o MyPrinter # queued jobs lpstat -t # everything lpq -P MyPrinter # BSD-style queue viewCancel jobs
cancel JOB_ID cancel -a MyPrinter # cancel all
Enable/disable
cupsenable MyPrinter # resume printing cupsdisable MyPrinter # pause printer cupsaccept MyPrinter # accept new jobs cupsreject MyPrinter # reject new jobs
# List available options for a printer lpoptions -p MyPrinter -lSet default options (per-user)
lpoptions -p MyPrinter -o sides=two-sided-long-edge
Set server-side defaults
sudo lpadmin -p MyPrinter -o sides-default=two-sided-long-edge
# IPP status query (detailed) ipptool -t ipp://PRINTER_IP/ipp/print get-printer-attributes.testFilter for key info
ipptool -t ipp://PRINTER_IP/ipp/print get-printer-attributes.test
| grep -iE 'printer-state|marker|supply|media|error'
# IPP poke (usually wakes the printer) ipptool -q -T 5 ipp://PRINTER_IP/ipp/print get-printer-attributes.testHTTP poke (wakes web UI stack)
curl -s -m 5 http://PRINTER_IP/ >/dev/null
TCP connect test
nc -zw2 PRINTER_IP 631
# Poll every 5 minutes (runs in foreground) ipptool -q -T 3 -i 300 ipp://PRINTER_IP/ipp/print get-printer-attributes.test
For persistent keep-alive, create a launchd agent.
Requires
brew install net-snmp:
snmpwalk -v2c -c public PRINTER_IP 1.3.6.1.2.1.43.11.1.1
Note: SNMP may be disabled on the printer. Check Remote UI settings.
Most network printers expose a web UI at
http://PRINTER_IP/ for:
# Printer stuck/disabled? Re-enable it cupsenable MyPrinterCheck device URI
lpstat -v MyPrinter
Remove and re-add printer
lpadmin -x MyPrinter lpadmin -p MyPrinter -E -v "ipp://..." -m everywhere
CUPS error log
tail -f /var/log/cups/error_log
ipp:// or ipps:// URIs over raw 9100 or LPD-m everywhere auto-configures from printer's IPP capabilitieslpoptions -l to discoverNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.