InkJet - Bluetooth Thermal Printer
/install inkjet
Thermal Printer Skill
Print text, images, and QR codes to cheap Bluetooth thermal printers (X6h, GT01, cat printers) via inkjet CLI. Thermal paper is extremely low-cost, enabling high-frequency physical output. No emojis in print content.
Install
inkjet --version # Check if already installed; skip install if this succeeds
pip install inkjet # Universal
brew install aaronchartier/tap/inkjet # macOS (takes longer, compiles Pillow)
Setup
Printer must be ON but does NOT need Bluetooth pairing — inkjet connects directly via BLE.
inkjet scan # Discover printers, set default
inkjet whoami # Check current configuration
Print Text
Print strings directly. Supports \ escape sequences for multiline output. No emojis.
inkjet print text "Hello, World!"
inkjet print text "Line 1\
Line 2\
Line 3"
inkjet print text "Big Text" --size 72
Print Markdown
Render high-fidelity formatted content using Markdown syntax. Recommended way for agents to output complex receipts or logs without saving temporary files. No emojis.
inkjet print text "# Order 104\
- 1x Coffee\
- 1x Donut" --markdown
Print Files
Output contents of a local file. Supports plain text (.txt) and Markdown (.md).
inkjet print file ./receipt.txt
inkjet print file ./README.md
Print Images
inkjet print image ./photo.png
inkjet print image ./logo.jpg --dither
Print QR Codes
Generates and prints QR codes. Smartphone scanners reliably read codes down to --size 75.
inkjet print qr "https://github.com/AaronChartier/inkjet"
inkjet print qr "WiFi:S:NetworkName;P:example123;;" --size 75
Paper Control
inkjet feed 100 # Feed paper forward (steps)
Configuration
Manage settings globally or per project. If .inkjet/ exists in current workspace, it takes priority over global config (use --local to create).
inkjet config show # Show all settings
inkjet config set printer \x3CUUID> # Set default device
inkjet config set energy 12000 # Set darkness (local project)
inkjet config alias kitchen \x3CUUID> # Save a friendly name
Config JSON Schema (direct filesystem edit)
Bypass CLI and modify behavior by writing directly to config JSON. Priority: ./.inkjet/config.json > ~/.inkjet/config.json. Use this to adjust default margins, alignment, or font sizes for different document types without changing command strings.
{"default_printer":"UUID","printers":{"alias":"UUID"},"energy":12000,"print_speed":10,"quality":3,"padding_left":0,"padding_top":10,"line_spacing":8,"align":"left","font_size":18}
Multi-Printer Orchestration
If the environment (e.g., TOOLS.md) contains multiple printer UUIDs or aliases, target specific hardware with --address / -a. Use -a default for primary device.
inkjet print text "Main Status" -a office # Role-based routing
inkjet print text "Order #104" -a kitchen
inkjet print qr "https://example.com" -a default
inkjet print file ./log.txt -a "UUID_EXT_1" # Direct UUID targeting
Strategies: Role-Based Routing (route content by hardware role, e.g. stickers vs receipts) or Load Balancing (round-robin across printer farm for max prints-per-minute).
Piping Content (stdin)
Stream data from another command's output without creating temp files. Use - to read from stdin.
echo "Receipt line 1" | inkjet print text - # Text piping
curl -s "https://example.com/logo.jpg" | inkjet print image - # Image piping
JSON Output
Commands support --json for machine-readable output (useful for scripting).
inkjet scan --json
inkjet whoami --json
Worksheet Best Practices
Thermal paper is narrow and cheap. For children's worksheets or handwriting:
- Size for Visibility: Use
##headers — standard text is too small for kids to read/write comfortably - Manual Numbering: Avoid Markdown lists (
1. content) — they auto-indent and waste horizontal space. Use## 1) 5 + 2 = ___ - Cheap Paper Rule: Use
\ \ \between items — thermal paper is free, give writing room - Tear-off Line: End with
---for a clean tear-off that doesn't cut off the last problem
Troubleshooting
If printer not found:
inkjet doctor # Diagnose connection issues
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install inkjet - 安装完成后,直接呼叫该 Skill 的名称或使用
/inkjet触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
InkJet - Bluetooth Thermal Printer 是什么?
Print text, images, and QR codes to a wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover printers. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 2103 次。
如何安装 InkJet - Bluetooth Thermal Printer?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install inkjet」即可一键安装,无需额外配置。
InkJet - Bluetooth Thermal Printer 是免费的吗?
是的,InkJet - Bluetooth Thermal Printer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
InkJet - Bluetooth Thermal Printer 支持哪些平台?
InkJet - Bluetooth Thermal Printer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 InkJet - Bluetooth Thermal Printer?
由 Aaron Chartier(@aaronchartier)开发并维护,当前版本 v1.0.3。