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

claude-sessions-ui

v0.6.2

Published

Visual dashboard for Claude Code sessions

Readme

claude-sessions-ui

A browser-based dashboard for managing all your Claude Code agent sessions without switching terminals.

Features

  • View all Claude Code sessions across projects in one place
  • Live status indicators — see which sessions are working, waiting, or idle
  • Live tool activity — see the current tool being executed (Edit, Bash, Grep, etc.)
  • Chat with any session directly from the dashboard
  • Built-in terminal — connect to any session's PTY in a split-panel view
  • Launch new sessions into an external terminal (Windows Terminal on WSL, iTerm2/Terminal.app on macOS)
  • Group sessions by status or project, collapse/expand groups
  • Search and filter by project, title, or path
  • Read/unread tracking — sessions highlight when they need your attention
  • Desktop notifications when a session is waiting for input
  • Themes: Phosphor, Amber, Ice, Mono, Paper
  • Scalable UI font size and separate terminal font size
  • Skip permissions mode — launch sessions with --dangerously-skip-permissions

Requirements

  • Node.js >= 18
  • Claude Code CLI installed and authenticated
  • Windows/WSL: Windows Terminal (wt.exe) must be installed for the "open in terminal" feature
  • macOS: iTerm2 or Terminal.app

Install

Global install (recommended)

npm install -g claude-sessions-ui

Then run from anywhere:

claude-sessions-ui

Opens the dashboard at http://localhost:3333.

npx (no install)

npx claude-sessions-ui

Custom port

claude-sessions-ui --port 8080

Development

Clone the repo and install dependencies:

git clone https://github.com/adepuit/claude-sessions-ui.git
cd claude-sessions-ui
npm install
npm run dev

This starts the Vite dev server (frontend) and Express backend concurrently. Open http://localhost:5173.

Publishing to npm

npm run build   # builds frontend into dist/
npm publish     # ships server.js + dist/ only

The prepare script runs vite build automatically before publish.

How it works

  • Session data: reads ~/.claude/projects/*/[id].jsonl files — the same files Claude Code writes to
  • Live updates: uses Server-Sent Events (SSE) to stream new activity as it's written to disk
  • Terminal: spawns claude --resume <id> in a PTY via node-pty, streamed over WebSocket to an xterm.js terminal in the browser
  • Chat: runs claude --resume <id> -p "message" --output-format stream-json and streams the response
  • PID detection: checks ~/.claude/sessions/*.json, then scans ps aux for live claude --resume processes
  • Status:
    • Working — Claude is actively processing or executing tools
    • Waiting — Claude is waiting for user input
    • Idle — session is open but inactive

Project structure

server.js          # Express backend — API routes, session parsing, SSE, PTY management
src/
  App.jsx          # Main layout, state, grouping, session ordering
  components/
    SessionCard.jsx     # Individual session card (full, compact, and mini variants)
    SessionPanel.jsx    # Split-view right panel wrapper
    TerminalPanel.jsx   # xterm.js PTY terminal
    ProjectFilter.jsx   # Project picker and filter bar
    StatusBadge.jsx     # Working/Waiting/Idle pill
    SettingsPanel.jsx   # Font size, theme, and Claude flags settings
    NewSessionPanel.jsx # Launch a new Claude session
  themes/
    phosphor.js    # Default green-on-dark theme
    amber.js       # Amber theme
    ice.js         # Blue/ice theme
    mono.js        # Monochrome theme
    paper.js       # Light theme

Platform notes

Windows + WSL

The dashboard runs inside WSL. The "open in terminal" button launches a new Windows Terminal tab via wt.exe directly into your WSL session.

macOS

Full support. Launching a new session uses AppleScript to open a new tab in iTerm2 (preferred) or Terminal.app. The built-in terminal panel uses prebuilt node-pty binaries via @homebridge/node-pty-prebuilt-multiarch.

Linux (native)

Falls back to x-terminal-emulator for launching terminals.