Package Exports
- jules-ink
- jules-ink/dist/cli.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jules-ink) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Jules Ink 🖨️
Print physical labels of your AI coding sessions. Jules Ink connects to Jules sessions, generates AI-powered summaries, and prints them to thermal label printers.

Why?
Because watching an AI write code is cool. But having a physical artifact of what it did? That's cooler.
- 📝 Document your AI pair programming — Keep a tangible record of what Jules built
- 🎉 Make it fun — Print summaries as a pirate, Shakespeare, or a noir detective
- 🏷️ Label your commits — Stick them on your monitor, notebook, or fridge
Quick Start
# Install dependencies
npm install
# Set your API key
export GEMINI_API_KEY="your-key"
export JULES_API_KEY="jules-key"
jules-ink print --session <SESSION_ID> -t haikuCLI Options
Usage: jules-ink print [options]
Options:
-s, --session <id> Session ID to process (required)
-m, --model <name> Gemini model (default: "gemini-2.5-flash-lite")
-t, --tone <preset> Tone for summaries (default: "professional")
-p, --printer <name> Printer name (auto-discovers if not set)
-h, --help Display helpTone Presets
Make your labels fun with built-in tone presets:
| Tone | Example Output |
|---|---|
professional |
"Refactoring SessionClient to support new handshake protocol." |
pirate |
"Arr! We be refactorin' the SessionClient, matey!" |
shakespearean |
"Hark! The SessionClient doth receive new methods most fair." |
excited |
"OMG!! 🎉 Just refactored SessionClient!!! SO EXCITING!!! 🚀" |
haiku |
"Code flows like a stream / SessionClient transforms / Bugs fade to nothing" |
noir |
"The function had seen better days. I gave it a new life." |
Custom Tones
Pass any string to -t for a custom tone:
# Characters
jules-ink print -s 123456 -t "Respond as if you're a grumpy cat"
jules-ink print -s 123456 -t "Write like a sports commentator at a tied match in extra time"
jules-ink print -s 123456 -t "Write like a nature documentary narrator observing code in its natural habitat"
jules-ink print -s 123456 -t "Respond like a dramatic movie trailer voiceover"
jules-ink print -s 123456 -t "Write as a medieval herald announcing royal decrees"
# Professions & styles
jules-ink print -s 123456 -t "Write like a sports commentator at a tied match in extra time"
jules-ink print -s 123456 -t "Respond as a surfer dude who just discovered coding"
jules-ink print -s 123456 -t "Write like a food critic reviewing a gourmet meal"
jules-ink print -s 123456 -t "Respond as an overly enthusiastic infomercial host"
jules-ink print -s 123456 -t "Respond like a soap opera actor"
# Moods & vibes
jules-ink print -s 123456 -t "Write with the energy of someone who just had 5 espressos"
jules-ink print -s 123456 -t "Respond like a wise grandparent telling stories by the fire"
jules-ink print -s 123456 -t "Write as if you're whispering secrets at a library"
jules-ink print -s 123456 -t "Respond with the dramatic flair of a telenovela narrator"Use Cases
1. Physical Commit Log
Print a label for each coding session and stick them in a notebook:
jules-ink print -s 561934200180369816 at a tied match in extra time9
jules-ink print -s 56193420018036981692. Fun Team Activity
Have Jules write code, then print the summary as a haiku:
jules-ink print -s 5619342001803698169 -t haik at a tied match in extra timeu
jules-ink print -s 5619342001803698169 -t haikuPrinter Setup
Jules Ink works with thermal label printers via CUPS. The default target is PM-241-BT (a common Bluetooth thermal printer).
If no printer is found, labels are saved to output/<session-id>/ as PNG files.
Requirements
- Node.js 18+
GEMINI_API_KEYenvironment variableJULES_API_KEYenvironment variable- (Optional) Thermal label printer
License
MIT