The most complete ESC/POS developer toolbox.

ESCPost is a Rust CLI and library for building, testing, and debugging ESC/POS integrations. Render receipts and labels without hardware, capture and preview print jobs through a virtual network printer, then print to USB or network devices.

terminal

$ escpost --help

Usage: escpost <COMMAND>

render
Preview an ESC/POS receipt as an accurate PNG
print
Print a receipt to a connected thermal printer
serve
Receive and preview receipts in realtime with built-in virtual IP printer
printers
Manage connected thermal printers
profiles
Browse supported printer profiles
READ: BINARY FILES · HEX FILES · STDINPREVIEW: PNG · BROWSERPRINT: USB · NETWORK · CLOUD

ESC/POS development,
end to end

Six components cover the path from previewing a print job to integrating local hardware and production cloud printing.

CLI & libraries

Use ESCPost from the command line, Rust applications, or Python projects.

  • Rust CLI and reusable libraries
  • Python rendering library
  • Binary, hex, stdin, and saved test case inputs

Virtual IP printer

escpost serve creates a virtual network printer on your computer. Connect an application to it like a physical printer, then inspect captured print jobs in the browser.

  • Accessible only from your computer by default
  • Compatible with network printing on port 9100
  • Automatically separates incoming print jobs

USB & IP printers

Automatically discover USB printers or add network printers by address. Save printers by name so scripts do not need USB or network settings.

  • Automatic USB printer discovery
  • Network printer connectivity checks
  • Saved printer configurations

Printer profiles

Printer profiles help ESCPost render output accurately for different paper sizes, features, and device behavior. Use the generic profile when you do not know the printer model.

  • Built-in printer profile library
  • Profiles tested against real printers
  • Generic profile for unknown printers

PNG & web preview

Render consistent black-and-white PNG previews or inspect results in the built-in browser. Each receipt cut produces a separate image, and watch mode rerenders changed files.

  • Pixel-accurate receipt rendering
  • Multiple receipts from one print job
  • Integer zoom and automatic file watching

Cloud printing

Use ESCPost to develop ESC/POS integrations for Receiptful.io, a managed cloud printing service, then connect receipt workflows to deployed printers.

  • Local ESC/POS development loop
  • Compatible with Receiptful cloud printing
  • Send cloud print jobs to deployed printers
receiptful.io ↗