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

spec-cat

v0.1.54

Published

Spec-driven development workbench

Downloads

3,251

Readme

Spec Cat

  ____                    ____      _
 / ___| _ __   ___  ___  / ___|__ _| |_
 \___ \| '_ \ / _ \/ __|| |   / _` | __|
  ___) | |_) |  __/ (__ | |__| (_| | |_
 |____/| .__/ \___|\___| \____\__,_|\__|
       |_|

A local development workbench for spec-driven development. Write specs, visualize git history, chat with AI, isolate work in worktrees — all in one screen.

What It Does

Spec Cat orchestrates the spec-driven workflow:

spec -> (clarify) -> plan -> tasks -> implement -> review

Every change starts from a spec, gets planned, broken into tasks, implemented in an isolated worktree, and reviewed before merging. AI assists at each step, but humans stay in control.

Screen Layout

Four-column workbench on a single page:

| Git Graph | Features | Conversations | Chat | |-----------|----------|---------------|------| | Branch/commit visualization, diffs, 50+ git operations | Spec status cards, markdown viewer, traceability | Session list, archive, search | AI streaming, permission modes, worktree controls |

Features

Git Graph & Operations

  • Interactive commit graph with branch/tag/stash visualization
  • Context menus for merge, rebase, cherry-pick, reset, revert, stash, tag, push/pull
  • Inline diff viewer for any commit or uncommitted changes
  • Find widget for searching commits by subject or hash
  • Remote management (add, edit, fetch, push, pull)

Spec Management

  • Auto-discovers specs/ directory with per-feature status (spec.md, plan.md, tasks.md)
  • Markdown viewer/editor modal with syntax highlighting (CodeMirror)
  • FR traceability analysis — verifies every requirement maps through plan to tasks
  • Keyword + embedding-based semantic search across all specs (SQLite + sqlite-vec)

AI Chat

  • Streaming responses with thinking blocks, tool use, and result summaries
  • Permission modes: ask (confirm each action), plan (upfront approval), auto (no prompts), bypass (admin)
  • Providers: Claude, Gemini, Codex — with capability-based selection and safe fallbacks
  • Session resume on page reload, per-conversation stream isolation
  • Streaming resilience: reconnect after refresh, retry setup with linear backoff when the server record hasn't landed yet, and clean up timers on disconnect to kill ghost callbacks
  • Type-while-streaming: messages entered during an AI response are queued and flushed in order once streaming settles
  • Commit message generation from diffs

Worktree Isolation

  • Each conversation gets its own git worktree
  • Auto-provisioned for browser UI, POST /api/jobs, and external WebSocket clients alike — no manual setup
  • Preview: apply worktree changes to main workspace for review
  • Finalize: clean up worktree after merge
  • Sync: keep worktree alive for continued iteration
  • Rebase conflict resolution with AI-assisted suggestions

Conversations

  • Archive-first management (soft delete, not hard delete)
  • Linked to features and worktree branches
  • Persistent across sessions via filesystem-backed storage

Cascade / Auto Mode

  • Chain spec pipeline commands per feature (specify -> plan -> tasks -> implement)
  • Sequential or parallel processing of multiple features
  • Results reviewed in the same conversation/worktree flow

Skills & Tools

  • Registered tool schemas sent per AI request (request-scoped, not global)
  • Skill prompt system for spec-kit operations
  • Provider adapters map tools to each provider's format

WebSocket API

  • External tools can drive chat through the same /_ws endpoint the browser uses
  • Speckit commands (/speckit.plan 001-auth) and bare spec IDs in messages are auto-detected, validated against specs/, and wired to the matching feature branch
  • Server-initiated jobs stream live tool use and text to any subscribed client; reference client in scripts/speccat_client.py

Theme

  • Dark / light mode with retro-style color palette
  • Persisted via cookie

Tech Stack

| Layer | Tech | |-------|------| | Framework | Nuxt 3, Vue 3, TypeScript | | State | Pinia | | Styling | Tailwind CSS | | Server | Nitro with WebSocket support | | Editor | CodeMirror 6 | | Search | SQLite (better-sqlite3) + sqlite-vec for embeddings | | Markdown | marked + shiki + DOMPurify | | AI | Claude CLI, Gemini API, Codex CLI |

Getting Started

Requirements

  • Node.js >= 20
  • pnpm
  • For AI features: authenticated claude CLI, codex CLI, or Gemini API credentials

Install & Run

pnpm install
pnpm dev

Run via npx

npx spec-cat
npx spec-cat --port 4310 --host 0.0.0.0
npx spec-cat --project /path/to/your/project
SPEC_CAT_PROJECT_DIR=/path/to/your/project npx spec-cat

Scripts

pnpm dev            # Development server
pnpm build          # Production build
pnpm preview        # Preview production build
pnpm typecheck      # Type checking
pnpm test           # Run tests
pnpm test:coverage  # Tests with coverage

Directory Structure

components/     70+ Vue components (chat, git, features, worktree, settings)
composables/    Reusable composition functions (stream, graph, dialogs, theme)
stores/         Pinia stores (chat, gitGraph, layout, settings, worktree)
server/api/     90+ Nitro API endpoints
server/utils/   AI providers, git ops, spec search, job queue, event bus
pages/          Main workbench, settings, worktrees, design guide
types/          TypeScript type definitions
utils/          Client-side utilities
specs/          Feature spec documents (source of truth)
lib/speckit/    Spec-kit templates and prompts

Settings

Per-project settings stored at ~/.spec-cat/projects/{project-hash}/settings.json. Same repo opened from different paths gets separate settings.

License

MIT