jules-ink
v0.2.0
Published
Print physical labels of your AI coding sessions with Jules
Maintainers
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
