Skip to main content

kleo-receipts

Named for KLEO, the Assaultron shopkeeper in Fallout 4. Every good merchant needs a receipt printer.

CLI tool for printing task tickets to Epson receipt printers. Fetches tasks from Things and prints them as physical tickets with QR codes for "scan to complete".

Install

brew install yesawoo/tap/kleo-receipts

Or with pip:

pip install kleo-receipts

Usage

# Discover network printers
kleo discover

# Print a single task ticket
kleo print-task "Fix the login bug" --auto

# Preview without printing
kleo print-task "Fix the login bug" --preview

# Server mode: periodically fetch and print tasks from Things
kleo serve --auto

# Custom schedule and tag filter
kleo serve --every "1 day at 09:00" --tag focus --auto

Background Service (Homebrew)

Run kleo as a background launchd service that auto-starts on login:

# Start the service
brew services start kleo-receipts

# Check status
kleo status

# Stop the service
brew services stop kleo-receipts

The service runs kleo serve with no arguments — all configuration comes from the config file. Use kleo config set to customize before starting:

# Configure schedule (default: daily at 9:00 AM)
kleo config set schedule.every="1 day at 09:00"

# Configure tag filter (default: 5m)
kleo config set schedule.tag=focus

# Set Things auth token for QR codes
kleo config set things.auth_token=YOUR_TOKEN

# Disable auto-discovery if using a specific printer
kleo config set printer.printer_name=kleo

Configuration

Kleo loads configuration from ~/.config/kleo/config.toml, environment variables, and CLI flags (highest priority).

# Show current config with sources
kleo config show

# Set a value
kleo config set schedule.every="2 hours"

# Show config file path
kleo config path

Config file format (~/.config/kleo/config.toml):

[schedule]
every = "1 day at 09:00"
tag = "5m"
strategy = "random"

[printer]
auto = true
# printer_name = "kleo"
# host = "192.168.1.100"

[things]
# auth_token = "your-token-here"

Priority: CLI flags > config file > environment variables > defaults.

Environment Variables

Variable Default Description
KLEO_EVERY "1 day at 09:00" Schedule interval
KLEO_TAG "5m" Things tag to filter
KLEO_STRATEGY "random" Task selection strategy
KLEO_PRINTER_NAME - Bonjour printer name
KLEO_PRINTER_HOST - Network printer host
KLEO_THINGS_AUTH_TOKEN - Things URL auth token (required for QR codes)

License

MIT

Metadata

Release files for kleo-receipts 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kleo-receipts 0.5.0
File Size Uploaded Provenance Actions
kleo_receipts-0.5.0.tar.gz 19.7 kB Without provenance Details for kleo_receipts-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for kleo-receipts 0.5.0
File Interpreter ABI Platform Actions
kleo_receipts-0.5.0-py3-none-any.whl Python 3 none any Details for kleo_receipts-0.5.0-py3-none-any.whl

Total release size: 45.5 kB

Release files / kleo_receipts-0.5.0.tar.gz

Download URL kleo_receipts-0.5.0.tar.gz
Size 19.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b06d55a3b732d1695ee42547e2f7be4b67aaa4abe8bec2c7c9999d0d7a530f48
BLAKE2b-256 checksum
How to use checksums
f2641b5881de85a345cece6d6dd33565d25f42f7dbbe35980ae54b03bfc00073
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / kleo_receipts-0.5.0-py3-none-any.whl

Download URL kleo_receipts-0.5.0-py3-none-any.whl
Size 25.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ca7c075041d82a9ba808b25c471949737aaad99fb32d2b713f664a3a9ca1f0c
BLAKE2b-256 checksum
How to use checksums
92995f598d7376070ced5306f6162177fc734150da8e121c98b86775a2db1e8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for kleo-receipts 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page