OpenPrinterOpenPrinter

Introduction

Understand the boundary between the OPPA desktop agent and the OpenPrinter integration ecosystem.

OPPA and OpenPrinter connect a remote application to printers that are reachable only from a user's local machine or network.

OPPA is the Open Printer Proxy Agent. It is a lightweight Tauri desktop application backed by a shell-independent Rust agent. It discovers and authenticates with a validated OpenPrinter service selected in runtime settings, discovers local printers, receives jobs, writes them to SQLite, renders their structured documents, submits them to a concrete printer transport, and reports the resulting state.

OpenPrinter is the generic integration layer. @openprinter/protocol publishes the canonical TypeScript schemas and codecs. @openprinter/server runs validated protocol sessions over host-owned transports. The integrating application owns HTTP, WebSocket or broker lifecycle, pairing authorization, durable public credential storage, and connection routing; the SDK verifies the initial gateway challenge. Neither package contains restaurant, tenant, station, billing, or application-specific routing concepts.

The important invariant

OPPA never acknowledges receipt of a print job until the job is durably stored locally:

receive → validate → persist → acknowledge → render → submit → persist result → report

The word submitted means that a printer backend accepted the job. It does not universally mean that paper was physically produced, because most printer interfaces cannot prove that.

Where to begin

The repository is intentionally conservative: it provides the foundation and explicit extension points without embedding a hosted queue, a business dashboard, arbitrary plugin execution, or a generic remote-control channel.

On this page