print

Prints files on Mac or Linux with options for color, copies, and which pages to print.

Installation
Run `npx skills add "https://github.com/steveclarke/dotfiles" --skill "print"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: print
description: "Print files on Mac or Linux via `lp` — defaults to double-sided B&W. Supports PDF, markdown (via md-to-pdf), copies, page ranges, color, printer selection."
---

# Print

Print files on Mac or Linux using the `lp` command with sensible defaults.

## Printing Markdown

To print a markdown file, first convert it to PDF using the `/md-to-pdf` skill:

```bash
~/.claude/skills/md-to-pdf/scripts/md-to-pdf.cjs doc.md
~/.claude/skills/print/scripts/print doc.pdf
rm doc.pdf  # Delete if PDF was just for printing
```

The `/md-to-pdf` skill handles Mermaid diagrams, syntax highlighting, and page numbers.

## Defaults

| Setting | Default | Rationale |
|---------|---------|-----------|
| **Duplex** | Double-sided (long-edge) | Save paper |
| **Color** | Black & white | Save toner on color printers |

These defaults can be overridden per-request.

## Usage

### Quick Print (uses system default printer)

```bash
# Print a file with defaults (double-sided, b&w)
lp -o sides=two-sided-long-edge -o ColorModel=Gray <file>

# Or use the helper script
~/.claude/skills/print/scripts/print <file>
```

### Common Options

| Option | Flag | Example |
|--------|------|---------|
| Printer | `-d <name>` | `-d HP_LaserJet_4001` |
| Copies | `-n <count>` | `-n 3` |
| Pages | `-P <range>` | `-P 1-5` or `-P 1,3,7` |
| Single-sided | `-o sides=one-sided` | Override duplex |
| Color | `-o ColorModel=Color` | Override b&w |
| Landscape | `-o landscape` | Rotate 90° |
| Fit to page | `-o fit-to-page` | Scale to fit |

### List Available Printers

```bash
lpstat -p -d
```

Shows all printers and the system default (marked with `system default destination:`).

### Check Print Queue

```bash
lpstat -o          # Show pending jobs
lpstat -W completed # Show completed jobs
```

### Cancel a Job

```bash
cancel <job-id>    # e.g., cancel HP_LaserJet_4001-852
cancel -a          # Cancel all jobs
```

## Helper Script

The `print` script at `~/.claude/skills/print/scripts/print` wraps `lp` with the defaults:

```bash
# Basic usage
~/.claude/skills/print/scripts/print document.pdf

# Specify printer
~/.claude/skills/print/scripts/print document.pdf -d Brother_HL_L3280CDW_series

# Multiple copies
~/.claude/skills/print/scripts/print document.pdf -n 3

# Single-sided color
~/.claude/skills/print/scripts/print document.pdf --single-sided --color

# Page range
~/.claude/skills/print/scripts/print document.pdf -P 1-5
```

Run `~/.claude/skills/print/scripts/print --help` for all options.

## Printer-Specific Notes

### HP LaserJet 4001
- Supports duplex
- Monochrome only (no color option needed)
- Steve's default printer

### Brother HL-L3280CDW
- Color laser
- Supports duplex
- Use `--color` to override b&w default

### Brother DCP-L2550DW
- Monochrome
- Supports duplex

## Troubleshooting

### "No such file or directory"
The printer name has changed. Run `lpstat -p` to see current names.

### Job stuck in queue
```bash
lpstat -o                    # Check status
cancel <job-id>              # Cancel stuck job
cupsenable <printer-name>    # Re-enable if disabled
```

### Duplex not working
Not all printers support duplex. Check printer capabilities:
```bash
lpoptions -p <printer-name> -l | grep -i sides
```

Ships with 1 supporting file:

  • scripts/print

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us