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

napster-cli

v0.0.21

Published

napster

Readme

nap

The nap (nap) is a customizable command line coding agent.

nap Demo

Installation

Install with npm (Node.js 20+):

npm i -g napster-cli

If napster is not found after install, restart your shell session.

Usage

napster

Headless Mode

Headless mode (-p flag) runs without an interactive terminal UI, making it perfect for:

  • Scripts and automation
  • CI/CD pipelines
  • Docker containers
  • VSCode/IntelliJ extension integration
  • Environments without a TTY
# Basic usage
napster -p "Generate a conventional commit name for the current git changes."

# With piped input
echo "Review this code" | napster -p

# JSON output for scripting
napster -p "Analyze the code" --format json

# Silent mode (strips thinking tags)
napster -p "Write a README" --silent

TTY-less Environments: Headless mode is designed to work in environments without a terminal (TTY), such as when called from VSCode/IntelliJ extensions using terminal commands. The CLI will not attempt to read stdin or initialize the interactive UI when running in headless mode with a supplied prompt.

Session Management

The CLI automatically saves your chat history for each terminal session. You can resume where you left off:

# Resume the last session in this terminal
nap --resume

# List recent sessions and choose one to resume
nap ls

# List sessions in JSON format (for scripting)
nap ls --json

Command Line Options

  • -p: Run in headless mode (no TUI)
  • --config <path>: Specify agent configuration path
  • --resume: Resume the last session for this terminal
  • <prompt>: Optional prompt to start with

Environment Variables

  • NAPSTER_API_BASE: Override backend API base URL (default https://api.nap-code.com/)
  • NAPSTER_API_KEY: Explicit backend token override
  • NAPSTER_BOOTSTRAP_PATH: Override bootstrap route path (default cli/bootstrap)
  • nap_API_BASE: Legacy fallback for backend API base URL
  • nap_API_KEY: Legacy fallback backend token override
  • nap_GLOBAL_DIR: Override nap home directory (default ~/.nap)
  • nap_CLI_DISABLE_COMMIT_SIGNATURE: Disable adding the nap commit signature to generated commit messages
  • FORCE_NO_TTY: Force TTY-less mode, prevents stdin reading (useful for testing and automation)

Compatibility note: nap_API_BASE, nap_API_KEY, nap_GLOBAL_DIR, and nap_CLI_DISABLE_COMMIT_SIGNATURE remain supported as fallbacks.

Service Bootstrap Token

By default, napster attempts to auto-bootstrap a backend access token on startup.

  • Token bootstrap endpoint: ${NAPSTER_API_BASE}/${NAPSTER_BOOTSTRAP_PATH}
  • Token cache file: ~/.nap/service-auth.json
  • If a valid cached token exists, it is reused.
  • If no token is available, napster falls back to local service credentials (XAI_API_KEY / NAPSTER_XAI_API_KEY) when present.

Commands

  • nap: Start an interactive chat session
  • nap ls: List recent sessions with TUI selector to choose one to resume
  • nap remote: Launch a remote instance
  • nap serve: Start HTTP server mode

Session Listing (nap ls)

Shows recent sessions, limited by screen height to ensure it fits on your terminal.

  • --json: Output in JSON format for scripting (always shows 10 sessions)

TTY-less Support

The CLI fully supports running in environments without a TTY (terminal):

# From Docker without TTY allocation
docker run --rm my-image nap -p "Generate docs"

# From CI/CD pipeline
nap -p "Review changes" --format json

# From VSCode/IntelliJ extension terminal tool
nap -p "Analyze code" --silent

The CLI automatically detects TTY-less environments and adjusts its behavior:

  • Skips stdin reading when a prompt is supplied
  • Disables interactive UI components
  • Ensures clean stdout/stderr output

For more details, see spec/tty-less-support.md.