{"id":"95e2bdf4-6efd-4db8-a446-ddc171acb702","entityType":"agent","slug":"clawhub-aaronchartier-inkjet","name":"InkJet - Bluetooth Thermal Printer","canonicalUrl":"https://www.xpersona.co/agent/clawhub-aaronchartier-inkjet","canonicalPath":"/agent/clawhub-aaronchartier-inkjet","generatedAt":"2026-10-09T07:40:37.169Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover... Skill: InkJet - Bluetooth Thermal Printer Owner: AaronChartier Summary: Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use inkjet print for output, inkjet scan to discover... Tags: latest:1.0.2 Version history: v1.0.2 | 2026-02-17T20:33:09.901Z | user - Updated homepage link to point to PyPI instead of GitHub. - Removed explicit installation instructions for pip an","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn7825d6e66rtzz81xrc6qp30x809nyj:inkjet","sourceUrl":"https://clawhub.ai/AaronChartier/inkjet","homepage":"https://clawhub.ai/AaronChartier/inkjet","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/AaronChartier/inkjet","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover... "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":1492,"packageName":null,"latestVersion":"1.0.2","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T21:48:01.527Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T21:48:01.527Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T21:48:01.527Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.2","createdAt":"2026-02-17T20:33:09.901Z","changelog":"- Updated homepage link to point to PyPI instead of GitHub. - Removed explicit installation instructions for pip and Homebrew from the documentation. - Added a section describing the default configuration JSON schema in the Configuration section. - Updated QR code print and orchestration examples to use the new homepage URL.","fileCount":2,"zipByteSize":2557},{"version":"1.0.1","createdAt":"2026-02-08T00:49:46.760Z","changelog":"Updated stub for display purposes.","fileCount":2,"zipByteSize":2940},{"version":"1.0.0","createdAt":"2026-02-08T00:44:41.841Z","changelog":"Initial release of inkjet: print to Bluetooth thermal printers from macOS - Send text, images, and QR codes to cheap Bluetooth thermal printers using the CLI. - Supports device discovery (`inkjet scan`) and configuration without Bluetooth pairing. - Print from Markdown, local files, or standard input; suitable for receipts, logs, and worksheets. - Manage multiple printers with aliases and target via the `--address` flag. - Configurable print options: font size, energy (darkness), margins, alignment, and more. - Cross-platform installation via pip or Homebrew; includes troubleshooting (`inkjet doctor`).","fileCount":null,"zipByteSize":null},{"version":"0.1.3","createdAt":"2026-02-01T14:15:49.341Z","changelog":"- removing src, relying on homepage link for review. - SKILL.md updated to describe usage and best practices.","fileCount":null,"zipByteSize":null},{"version":"0.1.2","createdAt":"2026-02-01T05:37:18.420Z","changelog":"Adding best supported models for reference","fileCount":null,"zipByteSize":null},{"version":"0.1.1","createdAt":"2026-02-01T05:24:33.793Z","changelog":"Emoji limitation defined","fileCount":null,"zipByteSize":null},{"version":"0.1.0","createdAt":"2026-02-01T04:15:20.545Z","changelog":"Initial release. - Support for X6H/Cat thermal printers via Bluetooth. - CLI commands for text, markdown, images, and QR codes. - Installation via pip and Homebrew.","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn7825d6e66rtzz81xrc6qp30x809nyj:inkjet","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T07:40:37.169Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-aaronchartier-inkjet/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: InkJet - Bluetooth Thermal Printer\n\nOwner: AaronChartier\n\nSummary: Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover...\n\nTags: latest:1.0.2\n\nVersion history:\n\nv1.0.2 | 2026-02-17T20:33:09.901Z | user\n\n- Updated homepage link to point to PyPI instead of GitHub.\n- Removed explicit installation instructions for pip and Homebrew from the documentation.\n- Added a section describing the default configuration JSON schema in the Configuration section.\n- Updated QR code print and orchestration examples to use the new homepage URL.\n\nv1.0.1 | 2026-02-08T00:49:46.760Z | user\n\nUpdated stub for display purposes.\n\nv1.0.0 | 2026-02-08T00:44:41.841Z | user\n\nInitial release of inkjet: print to Bluetooth thermal printers from macOS\n\n- Send text, images, and QR codes to cheap Bluetooth thermal printers using the CLI.\n- Supports device discovery (`inkjet scan`) and configuration without Bluetooth pairing.\n- Print from Markdown, local files, or standard input; suitable for receipts, logs, and worksheets.\n- Manage multiple printers with aliases and target via the `--address` flag.\n- Configurable print options: font size, energy (darkness), margins, alignment, and more.\n- Cross-platform installation via pip or Homebrew; includes troubleshooting (`inkjet doctor`).\n\nv0.1.3 | 2026-02-01T14:15:49.341Z | user\n\n- removing src, relying on homepage link for review.\n- SKILL.md updated to describe usage and best practices.\n\nv0.1.2 | 2026-02-01T05:37:18.420Z | user\n\nAdding best supported models for reference\n\nv0.1.1 | 2026-02-01T05:24:33.793Z | user\n\nEmoji limitation defined\n\nv0.1.0 | 2026-02-01T04:15:20.545Z | user\n\nInitial release.\n- Support for X6H/Cat thermal printers via Bluetooth.\n- CLI commands for text, markdown, images, and QR codes.\n- Installation via pip and Homebrew.\n\nArchive index:\n\nArchive v1.0.2: 2 files, 2557 bytes\n\nFiles: SKILL.md (4671b), _meta.json (125b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: inkjet\ndescription: \"Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover printers.\"\nhomepage: https://pypi.org/project/inkjet/\nmetadata:\n  openclaw:\n    emoji: \"🖨️\"\n    requires: { bins: [\"inkjet\"], bluetooth: true }\n    install:\n      - { id: \"pip\", kind: \"pip\", package: \"inkjet\", label: \"Install (pip)\" }\n      - { id: \"brew\", kind: \"brew\", package: \"aaronchartier/tap/inkjet\", label: \"Install (Homebrew)\" }\n---\n\n# Thermal Printer Skill\n\nPrint text, images, and QR codes to a small cheap Bluetooth thermal printer like the X6h, GT01, and childrens toy cat printers using the `inkjet` CLI. Thermal paper is extremely low-cost, enabling high-frequency physical output.\n\n## Setup\n\n**Preparation:** Ensure your printer is turned **ON**. The printer does **NOT** need to be paired to the host computer's Bluetooth settings; `inkjet` connects directly via BLE.\n\nScan for printers and set default:\n```bash\ninkjet scan\n```\n\nCheck current configuration:\n```bash\ninkjet whoami\n```\n\n## Print Text\n\nPrint strings directly. Supports standard escape sequences like `\\n` for multiline output. Do not use emojis.\n\n```bash\ninkjet print text \"Hello, World!\"\ninkjet print text \"Line 1\\nLine 2\\nLine 3\"\ninkjet print text \"Big Text\" --size 72\n```\n\n## Print Markdown\n\nRender high-fidelity formatted content using Markdown syntax. This is the recommended way for agents to output complex receipts or logs without saving temporary files. Do not use emojis.\n\n```bash\ninkjet print text \"# Order 104\\n- 1x Coffee\\n- 1x Donut\" --markdown\n```\n\n## Print Files\n\nOutput the contents of a local file. Supports plain text (`.txt`) and Markdown (`.md`).\n\n```bash\ninkjet print file ./receipt.txt\ninkjet print file ./README.md\n```\n\n## Print Images\n\n```bash\ninkjet print image ./photo.png\ninkjet print image ./logo.jpg --dither\n```\n\n## Print QR Codes\n\nGenerates and prints QR codes. Smartphone scanners (iPhone/Android) can reliably read codes down to `--size 75`.\n\n```bash\ninkjet print qr \"https://pypi.org/project/inkjet\"\ninkjet print qr \"WiFi:S:NetworkName;P:example123;;\" --size 75\n```\n\n## Paper Control\n\n```bash\ninkjet feed 100      # Feed paper forward (steps)\n```\n\n## Configuration\n\nManage settings globally or locally per project. If a `.inkjet/` folder exists in the current workspace, it will be prioritized (config setting with --local to create).\n\n```bash\ninkjet config show                    # Show all settings\ninkjet config set printer <UUID>      # Set the default device\ninkjet config set energy 12000        # Set local project darkness\ninkjet config alias kitchen <UUID>    # Save a friendly name\n```\n\n### Default Config Schema\n```json\n{\n  \"default_printer\": \"UUID\",\n  \"printers\": { \"alias\": \"UUID\" },\n  \"energy\": 12000,\n  \"print_speed\": 10,\n  \"quality\": 3,\n  \"padding_left\": 0,\n  \"padding_top\": 10,\n  \"line_spacing\": 8,\n  \"align\": \"left\",\n  \"font_size\": 18\n}\n```\n\n## Multi-Printer Orchestration\n\nIf the environment (e.g., `TOOLS.md`) contains multiple printer UUIDs or **aliases**, target specific hardware using the `--address` / `-a` flag. Use `-a default` to explicitly target the primary configured device.\n\n### Orchestration Strategies:\n1. **Role-Based Routing**: Route content based on hardware role (e.g., Stickers vs Receipts).\n   `inkjet print text \"Label\" -a stickers`\n2. **High-Throughput (Load Balancing)**: Distribute jobs across a farm of printers (Round-Robin) to maximize prints-per-minute.\n\n```bash\n# Orchestrated Print Examples\ninkjet print text \"Main Status\" -a office\ninkjet print text \"Order #104\" -a kitchen\ninkjet print qr \"https://pypi.org/project/inkjet\" -a default\ninkjet print file ./log.txt -a \"UUID_EXT_1\"\n```\n\n## JSON Output (for scripting)\n\nCommands support `--json` for machine-readable output:\n\n```bash\ninkjet scan --json\ninkjet whoami --json\n```\n\n## Best Practices for Worksheets & Handwriting\nThermal paper is narrow and low-cost. To make usable worksheets for children or manual notes:\n\n1. **Size for Visibility:** Use `##` (H2 headers) for the main content. Standard text is often too small for children to read/write comfortably.\n2. **Manual Numbering:** Avoid Markdown lists (`1. content`). They auto-indent and reduce horizontal space. Use `## 1) 5 + 2 = ___` instead.\n3. **The \"Cheap Paper\" Rule:** Use triple newlines (`\\n\\n\\n`) between items. Thermal paper is essentially free; use vertical space to provide actual \"writing room.\"\n4. **Horizontal Rules:** Use `---` at the end of a job to provide a clear tear-off line that doesn't cut off the last problem.\n\n## Troubleshooting\n\nIf printer not found:\n```bash\ninkjet doctor\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7825d6e66rtzz81xrc6qp30x809nyj\",\n  \"slug\": \"inkjet\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1771360389901\n}\n\nArchive v1.0.1: 2 files, 2940 bytes\n\nFiles: SKILL.md (5581b), _meta.json (125b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: inkjet\ndescription: \"Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover printers.\"\nhomepage: https://github.com/AaronChartier/inkjet\nmetadata:\n  openclaw:\n    emoji: \"🖨️\"\n    requires: { bins: [\"inkjet\"], bluetooth: true }\n    install:\n      - { id: \"pip\", kind: \"pip\", package: \"inkjet\", label: \"Install (pip)\" }\n      - { id: \"brew\", kind: \"brew\", package: \"aaronchartier/tap/inkjet\", label: \"Install (Homebrew)\" }\n---\n\n# Thermal Printer Skill\n\nPrint text, images, and QR codes to a small cheap Bluetooth thermal printer like the X6h, GT01, and childrens toy cat printers using the `inkjet` CLI. Thermal paper is extremely low-cost, enabling high-frequency physical output.\n\n\n## Installation\n\n### via pip (Universal)\n```bash\npip install inkjet\n```\n\n### via Homebrew (macOS)\n```bash\nbrew install aaronchartier/tap/inkjet\n```\n\n## Setup\n\n**Preparation:** Ensure your printer is turned **ON**. The printer does **NOT** need to be paired to the host computer's Bluetooth settings; `inkjet` connects directly via BLE.\n\nScan for printers and set default:\n```bash\ninkjet scan\n```\n\nCheck current configuration:\n```bash\ninkjet whoami\n```\n\n## Print Text\n\nPrint strings directly. Supports standard escape sequences like `\\n` for multiline output. Do not use emojis.\n\n```bash\ninkjet print text \"Hello, World!\"\ninkjet print text \"Line 1\\nLine 2\\nLine 3\"\ninkjet print text \"Big Text\" --size 72\n```\n\n## Print Markdown\n\nRender high-fidelity formatted content using Markdown syntax. This is the recommended way for agents to output complex receipts or logs without saving temporary files. Do not use emojis.\n\n```bash\ninkjet print text \"# Order 104\\n- 1x Coffee\\n- 1x Donut\" --markdown\n```\n\n## Print Files\n\nOutput the contents of a local file. Supports plain text (`.txt`) and Markdown (`.md`).\n\n```bash\ninkjet print file ./receipt.txt\ninkjet print file ./README.md\n```\n\n## Print Images\n\n```bash\ninkjet print image ./photo.png\ninkjet print image ./logo.jpg --dither\n```\n\n## Print QR Codes\n\nGenerates and prints QR codes. Smartphone scanners (iPhone/Android) can reliably read codes down to `--size 75`.\n\n```bash\ninkjet print qr \"https://github.com/AaronChartier/inkjet\"\ninkjet print qr \"WiFi:S:NetworkName;P:example123;;\" --size 75\n```\n\n## Paper Control\n\n```bash\ninkjet feed 100      # Feed paper forward (steps)\n```\n\n## Configuration\n\nManage settings globally or locally per project. If a `.inkjet/` folder exists in the current workspace, it will be prioritized (config setting with --local to create).\n\n```bash\ninkjet config show                    # Show all settings\ninkjet config set printer <UUID>      # Set the default device\ninkjet config set energy 12000        # Set local project darkness\ninkjet config alias kitchen <UUID>    # Save a friendly name\n```\n\n## Multi-Printer Orchestration\n\nIf the environment (e.g., `TOOLS.md`) contains multiple printer UUIDs or **aliases**, target specific hardware using the `--address` / `-a` flag. Use `-a default` to explicitly target the primary configured device.\n\n### Orchestration Strategies:\n1. **Role-Based Routing**: Route content based on hardware role (e.g., Stickers vs Receipts).\n   `inkjet print text \"Label\" -a stickers`\n2. **High-Throughput (Load Balancing)**: Distribute jobs across a farm of printers (Round-Robin) to maximize prints-per-minute.\n\n```bash\n# Orchestrated Print Examples\ninkjet print text \"Main Status\" -a office\ninkjet print text \"Order #104\" -a kitchen\ninkjet print qr \"https://github.com/AaronChartier/inkjet\" -a default\ninkjet print file ./log.txt -a \"UUID_EXT_1\"\n```\n\n## Configuration Tweaking (Filesystem Access)\n\nYou can bypass the CLI and modify your behavior by writing directly to the configuration JSON. `inkjet` prioritizes `./.inkjet/config.json` over the global home directory (which is default).\n\n### JSON Schema\n```json\n{\n  \"default_printer\": \"UUID\",\n  \"printers\": { \"alias\": \"UUID\" },\n  \"energy\": 12000,\n  \"print_speed\": 10,\n  \"quality\": 3,\n  \"padding_left\": 0,\n  \"padding_top\": 10,\n  \"line_spacing\": 8,\n  \"align\": \"left\",\n  \"font_size\": 18\n}\n```\n\nUse this to adjust default margins (`padding`), alignment, or font sizes (size) for different document types without changing your command strings.\n\n## JSON Output (for scripting)\n\nCommands support `--json` for machine-readable output:\n\n```bash\ninkjet scan --json\ninkjet whoami --json\n```\n\n## Piping Content (Dynamic Output)\n\nStream data from another command's output without creating a file. Use `-` as an argument to read from standard input (stdin).\n\n```bash\n# Text Piping\necho \"Receipt line 1\" | inkjet print text -\n\n# Image Piping\ncurl -s \"https://raw.githubusercontent.com/AaronChartier/inkjet/main/assets/logo.jpg\" | inkjet print image -\n```\n## Best Practices for Worksheets & Handwriting\nThermal paper is narrow and low-cost. To make usable worksheets for children or manual notes:\n\n1. **Size for Visibility:** Use `##` (H2 headers) for the main content. Standard text is often too small for children to read/write comfortably.\n2. **Manual Numbering:** Avoid Markdown lists (`1. content`). They auto-indent and reduce horizontal space. Use `## 1) 5 + 2 = ___` instead.\n3. **The \"Cheap Paper\" Rule:** Use triple newlines (`\\n\\n\\n`) between items. Thermal paper is essentially free; use vertical space to provide actual \"writing room.\"\n4. **Horizontal Rules:** Use `---` at the end of a job to provide a clear tear-off line that doesn't cut off the last problem.\n\n## Troubleshooting\n\nIf printer not found:\n```bash\ninkjet doctor\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7825d6e66rtzz81xrc6qp30x809nyj\",\n  \"slug\": \"inkjet\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1770511786760\n}","readmeExcerpt":"Skill: InkJet - Bluetooth Thermal Printer Owner: AaronChartier Summary: Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use inkjet print for output, inkjet scan to discover... Tags: latest:1.0.2 Version history: v1.0.2 | 2026-02-17T20:33:09.901Z | user - Updated homepage link to point to PyPI instead of GitHub. - Removed explicit installation instructions for pip an","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"inkjet scan"},{"language":"bash","snippet":"inkjet whoami"},{"language":"bash","snippet":"inkjet print text \"Hello, World!\"\ninkjet print text \"Line 1\\nLine 2\\nLine 3\"\ninkjet print text \"Big Text\" --size 72"},{"language":"bash","snippet":"inkjet print text \"# Order 104\\n- 1x Coffee\\n- 1x Donut\" --markdown"},{"language":"bash","snippet":"inkjet print file ./receipt.txt\ninkjet print file ./README.md"},{"language":"bash","snippet":"inkjet print image ./photo.png\ninkjet print image ./logo.jpg --dither"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: inkjet\ndescription: \"Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover printers.\"\nhomepage: https://pypi.org/project/inkjet/\nmetadata:\n  openclaw:\n    emoji: \"🖨️\"\n    requires: { bins: [\"inkjet\"], bluetooth: true }\n    install:\n      - { id: \"pip\", kind: \"pip\", package: \"inkjet\", label: \"Install (pip)\" }\n      - { id: \"brew\", kind: \"brew\", package: \"aaronchartier/tap/inkjet\", label: \"Install (Homebrew)\" }\n---\n\n# Thermal Printer Skill\n\nPrint text, images, and QR codes to a small cheap Bluetooth thermal printer like the X6h, GT01, and childrens toy cat printers using the `inkjet` CLI. Thermal paper is extremely low-cost, enabling high-frequency physical output.\n\n## Setup\n\n**Preparation:** Ensure your printer is turned **ON**. The printer does **NOT** need to be paired to the host computer's Bluetooth settings; `inkjet` connects directly via BLE.\n\nScan for printers and set default:\n```bash\ninkjet scan\n```\n\nCheck current configuration:\n```bash\ninkjet whoami\n```\n\n## Print Text\n\nPrint strings directly. Supports standard escape sequences like `\\n` for multiline output. Do not use emojis.\n\n```bash\ninkjet print text \"Hello, World!\"\ninkjet print text \"Line 1\\nLine 2\\nLine 3\"\ninkjet print text \"Big Text\" --size 72\n```\n\n## Print Markdown\n\nRender high-fidelity formatted content using Markdown syntax. This is the recommended way for agents to output complex receipts or logs without saving temporary files. Do not use emojis.\n\n```bash\ninkjet print text \"# Order 104\\n- 1x Coffee\\n- 1x Donut\" --markdown\n```\n\n## Print Files\n\nOutput the contents of a local file. Supports plain text (`.txt`) and Markdown (`.md`).\n\n```bash\ninkjet print file ./receipt.txt\ninkjet print file ./README.md\n```\n\n## Print Images\n\n```bash\ninkjet print image ./photo.png\ninkjet print image ./logo.jpg --dither\n```\n\n## Print QR Codes\n\nGenerates and prints QR codes. Smartphone scanners (iPhone/Android) can reliably read codes down to `--size 75`.\n\n```bash\ninkjet print qr \"https://pypi.org/project/inkjet\"\ninkjet print qr \"WiFi:S:NetworkName;P:example123;;\" --size 75\n```\n\n## Paper Control\n\n```bash\ninkjet feed 100      # Feed paper forward (steps)\n```\n\n## Configuration\n\nManage settings globally or locally per project. If a `.inkjet/` folder exists in the current workspace, it will be prioritized (config setting with --local to create).\n\n```bash\ninkjet config show                    # Show all settings\ninkjet config set printer <UUID>      # Set the default device\ninkjet config set energy 12000        # Set local project darkness\ninkjet config alias kitchen <UUID>    # Save a friendly name\n```\n\n### Default Config Schema\n```json\n{\n  \"default_printer\": \"UUID\",\n  \"printers\": { \"alias\": \"UUID\" },\n  \"energy\": 12000,\n  \"print_speed\": 10,\n  \"quality\": 3,\n  \"padding_left\": 0,\n  \"padding_top\": 10,\n  \"line_spacing\": 8,\n  \"align\": \"left\",\n  \"font_size\": 18\n}\n```\n\n## Multi-Printer Orchestration\n\nIf"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7825d6e66rtzz81xrc6qp30x809nyj\",\n  \"slug\": \"inkjet\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1771360389901\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use `inkjet print` for output, `inkjet scan` to discover... Skill: InkJet - Bluetooth Thermal Printer Owner: AaronChartier Summary: Print text, images, and QR codes to a cheap wireless Bluetooth thermal printer from a MacOS device. Use inkjet print for output, inkjet scan to discover... Tags: latest:1.0.2 Version history: v1.0.2 | 2026-02-17T20:33:09.901Z | user - Updated homepage link to point to PyPI instead of GitHub. - Removed explicit installation instructions for pip an","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":867,"uniquenessScore":53,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T07:40:37.169Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}