Data privacy

Private by design.

ESCPost runs on your own machine. Receipts go from the browser to a local process to the printer and never through a server of ours. The CLI can send anonymous usage data, only after asking, and every field it sends is listed below.

Usage data from
the command-line tool

On the first interactive run escpost asks once: Share anonymous usage data? (Y/n). No prompt without a TTY or with --non-interactive, and nothing is sent until you have answered.

What one event contains

With consent, each invocation sends one event. The complete list:

  • a random installation UUID, generated once, derived from nothing;
  • the subcommand path, such as render or printers add;
  • the long option names used, such as --profile, never their values;
  • the outcome: ok or an error kind such as missing_profile, never the message;
  • the duration;
  • ESCPost version, operating system and CPU architecture;
  • a timestamp, a fixed source: escpost-cli tag, and first_run on the consenting invocation.

What is never sent

Receipt data, paths, printer names, hosts, serial numbers, profile IDs, configuration contents, error messages, environment variables, user name, hostname, hardware identifiers. The event builder reads option names from the argument parser and never their values, and the test suite asserts that typed values do not appear in the body.

Where it goes

PostHog, EU region, the same project as receiptful.io. Events are anonymous: no person profile, and the request IP is discarded at ingestion. We look at which commands are used, how often they fail, and on which platforms.

Switching it off

  • escpost telemetry off, and escpost telemetry status to check;
  • DO_NOT_TRACK=1;
  • ESCPOST_TELEMETRY=0.

The answer and the UUID live in telemetry.toml in the ESCPost configuration directory. Delete it to be asked again.

This website

Static files, no backend.

No cookies, no third-party fonts, scripts, images or trackers. The hosting provider sees the request IP, as any host does; we do not. The light or dark theme choice sits in localStorage and goes nowhere.

Check it
for yourself

ESCPost is Apache 2.0. Application, extension and page library are public; none of this needs to be taken on trust.

Read the code that talks to your printer, the code that decides which websites may print, and the code that builds the usage event in crates/escpost/src/telemetry/:

github.com/receiptful/escpost

Questions about privacy

Write to service@escpost.dev, or open an issue in the repository above.