npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jules-ink

v0.2.0

Published

Print physical labels of your AI coding sessions with Jules

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.

grumpy-cat

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 haiku

CLI 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 help

Tone 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 5619342001803698169

2. 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 haiku

Printer 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_KEY environment variable
  • JULES_API_KEY environment variable
  • (Optional) Thermal label printer

License

MIT