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

powder-room

v0.1.0

Published

Context-aware snapshot manager for Claude Code. Refreshing your context should be as natural as excusing yourself to the powder room.

Readme

Powder Room

Context-aware snapshot manager for Claude Code.

Because refreshing your context should be as natural as excusing yourself to the powder room.

The Problem

When using Claude Code for long sessions, the context window fills up and compact kicks in — automatically summarizing and compressing your conversation. Each time this happens, working context is lost. Repeat it enough times, and the agent loses track of what it was doing, what was agreed upon, and what comes next.

The Solution

Powder Room takes a different approach: treat your context window as a volatile cache, not as memory.

Instead of fighting compact, you work with it:

  1. Save your working context as lightweight JSON snapshots
  2. Freshen up — when the session gets large, /clear on your own terms
  3. Resume — your context is automatically restored from the latest snapshot

Quick Start

npx powder-room init

That's it. Powder Room will:

  • Monitor your session size
  • Remind you when it's time to freshen up
  • Restore your context after /clear or compact

How It Works

Snapshots

Your AI agent saves its own working context as a JSON snapshot. This isn't mechanical extraction — the agent summarizes what matters:

npx powder-room save '{"goal":"Build auth system","next_action":"Write login tests","agreements":["Use JWT","No session cookies"]}'

The recommended schema has 11 fields, but only next_action or goal is required:

| Field | Purpose | |-------|---------| | goal | Why you're doing this (1 line) | | current_task | What you're working on right now | | working_set | Files, features, resources in play | | agreements | What was decided with the user | | decisions | What was decided and why | | open_questions | Unresolved questions | | constraints | What must not be violated | | last_actions | Recent steps taken (3-10) | | next_action | What to do next (most important) | | mode | Working mode (execution/design/debug) | | emotional_context | User's current situation (1 line) |

Monitoring

A UserPromptSubmit hook monitors your transcript size. At 50MB, you'll see:

[Powder Room] Time to freshen up (52MB). Save your snapshot and /clear.

Restoration

After /clear or compact, a SessionStart hook reads the latest snapshot and injects a summary:

[Powder Room] Welcome back.
Next action: Write login tests
Goal: Build auth system
Agreements: Use JWT / No session cookies

Commands

| Command | Description | |---------|-------------| | npx powder-room init | Install hooks and set up directories | | npx powder-room save '<json>' | Save a context snapshot | | npx powder-room load | Load the most recent snapshot | | npx powder-room list [n] | List recent snapshots | | npx powder-room uninstall | Remove hooks (keeps snapshots) |

Philosophy

See docs/philosophy.md for the ideas behind Powder Room.

Storage

Snapshots are plain JSON files stored in ~/.powder-room/snapshots/. No database, no external dependencies. You can read, edit, or back them up with standard tools.

Older snapshots are automatically pruned (keeps the latest 20).

Uninstall

npx powder-room uninstall

This removes the hooks from Claude Code but keeps your snapshots intact.

Requirements

License

MIT