botcall-print
Local print daemon for botcall. Receives print jobs from the cloud and sends them to your USB thermal printer.
Prerequisites
Linux (Raspberry Pi, etc.)
Install USB libraries before installing botcall-print:
sudo apt install libusb-1.0-0-dev python3-libusb1
pip install pyusb
macOS
brew install libusb
pip install pyusb
Installation
pip install botcall-print
Or install from source:
cd clients/print-daemon
pip install -e .
Setup
- Get your botcall API key from https://botcall.io
- Configure the daemon:
botcall-print setup
# Enter your API key when prompted
- Test your printer:
botcall-print test "Hello from botcall!"
- Start the daemon:
botcall-print daemon
Running as a Service
macOS (launchd)
# Create launch agent
cat > ~/Library/LaunchAgents/io.botcall.print.plist << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.botcall.print</string>
<key>ProgramArguments</key>
<array>
<string>$(which botcall-print)</string>
<string>daemon</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
EOF
# Load it
launchctl load ~/Library/LaunchAgents/io.botcall.print.plist
Linux (systemd)
# Create service file
sudo cat > /etc/systemd/system/botcall-print.service << EOF
[Unit]
Description=botcall print daemon
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which botcall-print) daemon
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# Enable and start
sudo systemctl enable botcall-print
sudo systemctl start botcall-print
Commands
| Command | Description |
|---|---|
botcall-print setup |
Configure API key |
botcall-print daemon |
Start listening for print jobs |
botcall-print test "text" |
Test print some text |
botcall-print status |
Show configuration and printer status |
Supported Printers
Any ESC/POS compatible USB thermal printer. Common models:
- Epson TM-T20/T88
- Star TSP100/TSP650
- Generic 58mm/80mm receipt printers (ZJ-58, XP-58, etc.)
Troubleshooting
"Printing with USB connection requires a usb library"
Install USB dependencies:
# Linux
sudo apt install libusb-1.0-0-dev python3-libusb1
pip install pyusb
# macOS
brew install libusb
pip install pyusb
Printer not found
Check USB connection:
# macOS
system_profiler SPUSBDataType | grep -A5 -i printer
# Linux
lsusb | grep -i printer
Permission denied (Linux)
Add udev rule:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0416", MODE="0666"' | sudo tee /etc/udev/rules.d/99-thermal-printer.rules
sudo udevadm control --reload-rules
Slow/corrupted prints on Mac
Known macOS USB driver issue. The daemon includes chunking to work around this, but very image-heavy prints may still have issues. Consider using a Raspberry Pi for best results.
Metadata
Release files for botcall-print 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| botcall_print-0.4.2.tar.gz | 6.6 kB | Without provenance | Details for botcall_print-0.4.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| botcall_print-0.4.2-py3-none-any.whl | Python 3 | none | any | Details for botcall_print-0.4.2-py3-none-any.whl |
Total release size: 13.3 kB
Release files / botcall_print-0.4.2.tar.gz
| Download URL | botcall_print-0.4.2.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
830f549dc39961cdd3d3b9cb16ced5713d9fcdb98a5bd7875046f6fd16f101e8
|
|
BLAKE2b-256 checksum How to use checksums |
8c7b8f9ec0063b30a041b94e16bf3213d92e0d3686f27c036556752a3126ed8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / botcall_print-0.4.2-py3-none-any.whl
| Download URL | botcall_print-0.4.2-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d4c368b5073b24529309e6b082b5304087f96ee897ee02a1fd55eab74551e5b0
|
|
BLAKE2b-256 checksum How to use checksums |
4c907fb5489fda744a674ca9b336854569416609560140f435ff6d253b3f487a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for botcall-print 0.4.2
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.