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

@seanmozeik/ccsl

v0.2.0

Published

Powerline-style status line for Claude Code

Downloads

34

Readme

CCSL

Powerline-style status line for Claude Code. CCSL reads the JSON Claude Code sends on stdin and prints one row of segments.

Install

Requires Bun 1.4 or later.

bun add -g @seanmozeik/ccsl
ccsl install

ccsl install does two things:

  1. Writes statusLine in ~/.claude/settings.json so Claude Code runs this binary.
  2. Seeds ~/.config/ccsl/ccsl.env if that file does not already exist.

If Claude Code already has a non-ccsl status line, or you want to replace an existing env file, pass --force:

ccsl install --force

Claude Code reloads settings on save. The next status-line refresh uses CCSL.

Uninstall

ccsl uninstall

That removes the Claude Code statusLine entry when it looks like CCSL, deletes ~/.config/ccsl/ccsl.env, and removes ~/.config/ccsl if the directory is empty. Other Claude Code settings stay put.

A custom (non-ccsl) status line is left alone unless you pass --force:

ccsl uninstall --force

Uninstall does not remove the npm/Homebrew package. Uninstall the binary separately if you no longer want ccsl on PATH.

Help and version

ccsl -h
ccsl --help
ccsl -V
ccsl --version

-h / --help prints usage for install, uninstall, and status-line flags. -V / --version prints the CCSL version and exits. Either flag wins over a subcommand, so ccsl install --help shows help instead of installing.

With no arguments, ccsl reads Claude Code JSON on stdin and prints the status line.

Configuration

Priority: CLI flags, then process environment, then ~/.config/ccsl/ccsl.env, then built-in defaults.

The default status-line style is pipes (foreground colors only, transparent background). powerline paints Catppuccin segment fills and arrows.

Seeded env (created by ccsl install):

CCSL_FIELDS="traffic-lights,directory,git,model,context,session,weekly,spend,cache,cost"

Style is left unset so pipes stays the default. Copy comments and extra knobs from ccsl.env in this repo if you want a fuller file.

| Variable | Meaning | | --------------------- | ------------------------------------------------------ | | CCSL_FIELDS | Comma-separated segments, in order | | CCSL_STYLE | pipes, simple, arrows, dots, or powerline | | CCSL_NO_ICONS | true to use ASCII fallbacks | | CCSL_NUMBERS | compact, full, or raw | | CCSL_PERF_CACHE | Cache-hit thresholds (green,yellow,orange %) | | CCSL_PERF_RESPONSE | Response-time thresholds (green,yellow,orange seconds) | | CCSL_PROGRESS_WIDTH | Usage bar width | | CCSL_DEBUG | true to log config/input on stderr | | CCSL_WIDTH | Max columns (0 uses COLUMNS, -1 unlimited) | | CCSL_PRIORITY | Truncation order when the line is too wide |

CLI flags match those names (--fields, --style, --no-icons, --debug, and so on).

Segments

| Field | Source | | ---------------- | ------------------------------------------------------------------------ | | traffic-lights | Prompt-cache hit ratio and response time | | directory | workspace.current_dir (preferred) or cwd | | git | git status; falls back to worktree.branch / workspace.git_worktree | | model | Model display name | | context | Context-window used % | | session | 5-hour rate limit (rate_limits.five_hour) | | weekly | 7-day rate limit (rate_limits.seven_day) | | spend | Spend-limit % (Claude apps gateway only) | | cache | Prompt-cache warm / hit ratio | | effort | Reasoning effort | | agent | Agent name | | pr | Open pull request (#) or GitLab merge request (!) | | duration | Session wall-clock time | | session-name | Custom or generated session name | | thinking | Extended thinking on | | fast | Fast mode on | | version | Claude Code version | | cost | Estimated session USD (cost.total_cost_usd, list price) | | lines | Lines added / removed | | vim | Vim mode | | over-limit | Over 200k tokens |

Segments that have no stdin data are omitted. spend stays hidden until a spend limit exists. cost is the current session estimate and resets on /clear; it is not a billed invoice.

Develop

bun install
bun test
bun run typecheck
bun run lint
bun run build

bun run start runs src/index.ts. Claude Code still has to invoke the built dist/ccsl.js (or ccsl install after a global install) for the status line.