Documentation

Print generated content to receipt and label printers.

Slipbridge is a local CLI for agents, scripts, and terminal workflows. It accepts Markdown, text, images, and JSON templates, renders them into printer-ready output, and sends them to thermal receipt printers or Brother label printers.

Quickstart

Install from the repository, check the local environment, find a printer, and print a Markdown file.

git clone https://github.com/slipbridge/slipbridge
cd slipbridge
cargo install --path . --force

slipbridge doctor --json
slipbridge printers list --json
slipbridge print ./ticket.md \
  --printer tcp://epson-m30:9100 \
  --paper 80mm \
  --json

Use --printer with a discovered printer id, a cups:// destination, a tcp:// endpoint, or a usb:// selector.

Connect printers

Start with discovery, then inspect the selected printer when you need to see resolved driver behavior and capabilities.

Receipt printers over TCP

tcp://epson-m30:9100

Raw socket endpoints used by many ESC/POS receipt printers.

USB receipt printers

usb://04b8:0e15

USB vendor and product id, with optional bus and address.

Brother labels through CUPS

cups://Brother_QL_810W

CUPS destinations for Brother QL label workflows on macOS and Linux.

slipbridge printers list --json
slipbridge printers inspect \
  --printer cups://Brother_QL_810W \
  --json
slipbridge printers test \
  --printer tcp://epson-m30:9100 \
  --json

Automation

Add --json when another process needs to read results. Use the structured fields instead of parsing human output.

slipbridge print ./ticket.md \
  --printer tcp://epson-m30:9100 \
  --paper 80mm \
  --json

ok

Whether the command completed successfully.

printer.id

The resolved printer target used for the command.

driver.resolved

The selected driver, such as escpos or cups.

Queueing

Queueing is useful when more than one process may print to the same device. Slipbridge writes a job to disk, then a worker sends queued jobs while holding a per-printer lock.

slipbridge print ./badge.png \
  --printer cups://Brother_QL_810W \
  --enqueue \
  --json

slipbridge jobs list --json
slipbridge jobs inspect --job <job-id> --json
slipbridge jobs cancel --job <job-id> --json
slipbridge jobs run --once --json

Queue state lives in the platform data directory by default. Set SLIPBRIDGE_STATE_DIR when you want an isolated queue for tests or development.

Printer defaults

Defaults keep repeated commands short. They are stored locally in printers.toml, so a script or agent can use the same settings as a human operator.

slipbridge printers defaults set \
  --printer cups://Brother_QL_810W \
  --driver cups \
  --media c62 \
  --cut-mode end-of-page

slipbridge printers defaults show \
  --printer cups://Brother_QL_810W \
  --json

Troubleshooting

Start with diagnostics

Run slipbridge doctor --json to check local USB access and the rendering pipeline.

Discovery shows the wrong printer

Use an explicit cups://, tcp://, or usb:// selector instead of relying on a display name.

Labels are clipped

Set --media c62, add --label-length-mm, and use slipbridge render to inspect the output before printing.