核心用法
inkjet 是一款专为 macOS 设计的蓝牙热敏打印机命令行工具,支持 X6h、GT01、儿童玩具猫打印机等低成本 BLE 热敏设备。核心工作流分为三步:扫描发现 (inkjet scan)、配置默认设备 (inkjet config set printer <UUID>)、执行打印 (inkjet print)。
打印内容支持四大类型:
- 纯文本:支持转义序列(如
\n)、字号调节(--size 72) - Markdown:推荐用于复杂收据/日志,支持标题、列表等格式化
- 图片:PNG/JPG 支持,可选
--dither半色调处理 - QR 码:支持 Wi-Fi 配置字符串等标准格式,手机扫描可读最小尺寸为 75px
高级功能包括:管道输入(echo "text" | inkjet print text -)、JSON 输出(--json)、多机编排(-a alias 支持角色路由与负载均衡)、以及通过 .inkjet/config.json 的细粒度配置(边距、对齐、打印能量等)。
显著优点
1. 零配对设计:打印机无需在系统蓝牙设置中配对,inkjet 直接通过 BLE 连接,降低使用门槛
2. Markdown 原生支持:Agent 可直接输出格式化内容,无需生成临时文件
3. 多机编排能力:支持别名管理与负载均衡,适合零售、餐饮等多打印节点场景
4. 极低运营成本:热敏纸成本极低,适合高频物理输出
5. 灵活的输入方式:文件、管道、命令行参数三者兼收,便于脚本集成
潜在缺点与局限性
- 平台限制:主要面向 macOS,Linux/Windows 支持未明确
- 蓝牙距离:BLE 连接稳定性受环境干扰,大型场所需规划打印机密度
- 内容限制:明确禁止使用 Emoji,中文等多字节字符支持未提及
- 持久性:热敏打印内容会随时间褪色,不适合长期存档
- 硬件兼容性:仅验证特定型号(X6h/GT01/猫打印机),其他热敏打印机兼容性未知
适合人群
- 需要物理收据/标签输出的自动化工作流开发者
- 教育/儿童场景:打印练习题、手写工作表(文档专门提供儿童工作流优化建议)
- 小型零售/餐饮:低成本票据系统搭建
- IoT 原型开发者:将数字状态转为物理反馈的硬件交互实验
常规风险
- 隐私泄露:打印内容可能包含敏感信息(如 Wi-Fi 密码二维码),热敏纸丢弃后需物理销毁
- 供应链安全:通过 Homebrew tap 和 pip 分发,需验证
aaronchartier/tap签名与 PyPI 包完整性 - 配置覆盖风险:本地
.inkjet/配置优先于全局配置,多项目切换时可能误用错误设备 - 蓝牙扫描暴露:
inkjet scan会探测周边 BLE 设备,在敏感环境中可能被视为扫描行为