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

@antonior/claude-code-setup

v2.0.3

Published

Install Antonio's full Claude Code setup: hooks, slash commands, skills, statusline, settings, and MCP servers (transcript-search + video-vision)

Downloads

1,483

Readme

claude-code-setup

npm license platform tokens

One-command installer for my Claude Code configuration — hooks, slash commands, skills, statusline, and global rules. Install once, get the exact setup I use every day. Optimised for low token usage.

Why this setup?

Stock Claude Code is powerful but neutral. This config turns it into a careful, cost-aware engineer with guardrails — the difference between an assistant that sounds confident and one that proves its work.

  • 🛡️ Trustworthy by default. Built-in rules forbid the things that quietly burn you: never fakes or weakens tests, never suppresses errors with @ts-ignore / eslint-disable / swallowed catch, never claims "done" without verifying. Failures get surfaced, not hidden.
  • 🔒 Catches mistakes before they ship. scan-secrets blocks any commit containing API keys or a real .env. stop-verify runs lint + typecheck on the files you changed at the end of every turn and won't let "done" slide if they fail. check-dep forces a real look at any new dependency (size, maintenance, lighter alternatives) before it's added.
  • 🎯 Stays in scope. Only changes what you asked for — no drive-by refactors, no unrequested "improvements", no comments bolted onto code it didn't touch.
  • 🧠 Remembers across sessions. The transcript-search MCP indexes your own past conversations locally, so Claude recalls prior decisions ("like we did last time") instead of saying "I don't remember" — and instead of you re-explaining context.
  • 💸 Cheap on tokens. Caveman mode keeps full technical accuracy while cutting chatter ~75%; video defaults to audio-only transcription; verification hooks touch only changed files, not the whole repo. See Optimised for low token usage.
  • 🎬 Understands video. The claude-video-vision MCP lets Claude watch and reason about video, not just text.
  • 📊 Knows where you stand. A rich statusline shows git branch + dirty state, model and effort level, context-window %, and your 5-hour / 7-day rate-limit usage at a glance.
  • ⚡ One-command, exact mirror. Installs everything, auto-installs its dependencies, and registers the MCP servers. It reproduces my config 1:1 — existing files are overwritten so you get an identical setup, with any file it replaces backed up to <file>.bak first. It never deletes files it doesn't manage. Idempotent — re-run any time to pull the latest.

Install

npx @antonior/claude-code-setup

That's it. The installer is idempotent — safe to re-run to pull updates.

Platforms

Built and tested on macOS. Linux and native Windows aren't officially supported yet — the hooks are bash and the installer uses Homebrew, so a full cross-platform pass is needed before I'd claim them.

Dependencies (auto-installed via Homebrew)

The installer installs these for you if missing:

| Tool | For | Notes | |------|-----|-------| | jq | hooks (JSON parsing) | Required — install aborts without it. | | python3 | transcript-search MCP + video-FPS hook | Best-effort — feature stays dormant if it can't install. | | ffmpeg | claude-video-vision MCP | Best-effort. | | tmux | optional cr tmux launch workflow (lives in shell config, not shipped) | Best-effort. | | git, eslint, tsc | commit-scan / lint / typecheck hooks | Optional — hooks no-op cleanly when absent. |

What it installs (into ~/.claude/)

  • CLAUDE.md — global rules (trust/integrity, scope discipline, verification). Overwritten to match; any existing one is saved to CLAUDE.md.bak.
  • settings.json + settings.local.json — permissions, hooks, effort/theme. Overwritten to match; any existing ones are saved to .bak.
  • hooks/
    • caveman-activate.sh — terse response style on session start
    • scan-secrets.sh — blocks git commit if staged diff contains secrets/.env
    • check-dep.sh — prompts to research a dependency before adding it
    • eslint-fix.sh — auto eslint --fix on edited JS/TS files
    • stop-verify.sh — lint + typecheck changed files when a turn ends
    • notify-sound.sh — sound on notification/stop
  • commands//check-dep, /debug, /scan-secrets, /updateClaudeNpm slash commands
  • skills//mute, /unmute, and /caveman (with intensity levels)
  • agents/ — custom subagents: Explore (fast read-only code search), Plan (architect/implementation plans), statusline-setup (statusline config)
  • statusline.sh — git, model, context %, rate-limit statusline
  • transcript-search/rag_lite.py — the transcript-search MCP engine
  • MCP servers (registered via claude mcp add-json, user scope) — see below

Bundled MCP servers

Both are installed and auto-registered for you:

  • transcript-search — full-text search over your own past Claude Code transcripts ("we talked about…", "like last time"). Pure-Python, stdlib only. The index is built locally on your machine from ~/.claude/projects/ on first run — nothing about your conversations is ever shipped in this package.
  • claude-video-vision — lets Claude watch/analyse videos (frames via ffmpeg). Published as claude-video-vision on npm; run via npx.
    • Tip: when it asks how many FPS, answer 0 to use audio transcription only (no frame extraction) — much cheaper on tokens. Bump the FPS only when you actually need on-screen/visual detail.

Optimised for low token usage

This setup is deliberately token-lean:

  • /caveman skill + caveman hook — ultra-compressed replies that keep full technical accuracy while cutting chatter (~75% fewer tokens), with lite/full/ultra intensity levels.
  • Video → 0 FPS — analyse video by audio transcription only unless you explicitly need visual frames, avoiding expensive frame tokens.
  • transcript-search over re-explaining — recalls past decisions from your own history instead of re-deriving context.
  • Scoped, high-signal hooksstop-verify and eslint-fix only act on files you actually changed, not whole-repo sweeps.

On a new machine — two one-time steps

The installer reproduces 100% of the configuration and behaviour. Two things are identity and secrets, not config, and can never live in a public package — you set them once:

  1. Log into Claude Code (your account — you'd do this on any new machine anyway).
  2. Give claude-video-vision your own API key if you use video analysis.

Shell workflow (optional, not shipped)

The package mirrors ~/.claude only, so anything in your shell config (~/.zshrc) is not shipped. Add it per machine. These two bits drive how I launch Claude:

Start Claude in bypass mode (skips per-tool permission prompts). Note: skipDangerousModePermissionPrompt in settings.json only suppresses the warning; this alias is what actually starts a session in bypass mode:

alias claude="claude --dangerously-skip-permissions"

cr — launch Claude inside a tmux session (named after the current directory, or pass a name: cr myname):

cr() {
  local session="${1:-$(basename "$PWD")}"
  session="${session//[.:]/_}"   # tmux treats . and : as target separators
  if tmux has-session -t "$session" 2>/dev/null; then
    tmux attach-session -t "$session"
  else
    tmux new-session -s "$session" -d -c "$PWD"
    tmux send-keys -t "$session" "claude --dangerously-skip-permissions --remote-control '$session'" Enter
    tmux attach-session -t "$session"
  fi
}

cr needs tmux, which the installer now installs best effort (see the dependencies table). After editing ~/.zshrc, run source ~/.zshrc or open a new terminal.

Maintaining (for me)

The package is an exact mirror of my own ~/.claude. To refresh it from my live config and publish:

  • scripts/sync-from-local.sh rebuilds files/ from an allowlist of my config (CLAUDE.md, settings*.json, statusline.sh, hooks/, commands/, agents/, skills/, the caveman skill, the transcript-search engine). It never copies private or runtime data (history, transcripts, memory, the search index, sessions, caches, marketplace clones).
  • The /updateClaudeNpm slash command runs that sync, scans for secrets, bumps the version, pushes to main, and publishes to npm — so a fresh npx @antonior/claude-code-setup on another machine reproduces my setup 1:1.

License

MIT © Antonio Radosav