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

@agent-ops/suit

v0.15.0

Published

Multi-harness AI agent configurator. Stateless launcher + project-state mutator (suit up / suit off) — Claude Code, Codex, Gemini, Pi.

Readme

suit

Multi-harness AI agent configurator. Suit up your harness with outfits, cuts, and accessories — one tool for Claude Code, Codex, Gemini CLI, GitHub Copilot, APM, and Pi.

Status

v0.9.0 — vocabulary rename: modecut. Resolver semantics unchanged; clean break per ADR-0016.

v0.5.0 — adds suit up / suit off / suit current for project-state mutation alongside the existing stateless launcher. See ADR-0012.

v0.4.0 — major composition-model rename: persona → outfit, with new accessory primitive. See CHANGELOG.

v0.3.0 — dropped legacy path support (~/.config/agent-config/, .agent-config/).

Install

npm install -g @agent-ops/suit

This puts two binaries on your PATH:

  • suit — the runtime launcher.
  • suit-build — the build helper (used internally by suit for Codex/Copilot prelaunch; rarely invoked directly).

Quick start

The standard workflow: suit up to dress the project, work with native harness CLIs, suit off when you're done.

# Install once
npm install -g @agent-ops/suit

# Point at any suit-compatible content repo (one-time setup per machine)
suit init https://github.com/your-username/your-config

# In any project, dress it with an outfit + cut (+ optional accessories):
cd ~/projects/foo
suit up --outfit backend --cut focused
# or, on a TTY, just `suit up` and pick from a numbered list

# Now use your harnesses normally — they pick up the dressed config:
claude                          # native invocation; inherits .claude/CLAUDE.md, skills, hooks
codex --skip-git-repo-check
pi --provider openrouter

# Inspect or remove when you're done:
suit current                    # shows applied resolution + file count + drift
suit off                        # cleanly removes everything suit applied

# Switch outfits in the same project: undress first, then redress.
suit off && suit up --outfit frontend --cut design

That's the daily-driver flow. For one-off "try this outfit for a single query without dressing the project" cases, the stateless launcher still works:

suit claude --outfit backend --cut focused -- --print "say hi"
suit codex --outfit backend --accessory tracing -- exec --skip-git-repo-check "say hi"
suit claude --no-filter                   # bypass filtering for one session

Discover what's available:

suit list outfits
suit list cuts
suit list accessories
suit status
suit sync                       # pull latest from your content repo

For the deeper walkthrough — content tier resolution, authoring, refuse-when-dirty semantics, drift detection — see USAGE.md.

Local content repo (point suit at a checkout)

If you're maintaining a content repo locally and want suit to read from it without cloning into ~/.local/share/suit/content/:

export SUIT_CONTENT_PATH=~/projects/your-config
suit list outfits
suit claude --outfit backend

SUIT_CONTENT_PATH overrides the default cloned-content location for the current shell.

How it works

suit reads YAML-frontmatter outfit and cut definitions, computes a per-session resolution (which skills to keep, which to drop, what cut prompt to inject), then prelaunches the target harness with a filtered view of ~/.<harness>/ mirrored to a tempdir. Your real ~/.<harness>/ is never modified.

For Codex and Copilot (which read AGENTS.md and copilot-instructions.md from the project root), suit invokes suit-build docs to generate filtered markdown into a tempdir and runs the harness with that as the working directory.

Development

git clone https://github.com/danmestas/suit.git
cd suit
npm install
npm run build       # tsc + postbuild (shebangs + import rewriter)
npm link            # exposes `suit` and `suit-build` globally
npm test            # vitest

# Dogfood against an external content repo:
SUIT_CONTENT_PATH=~/projects/agent-config suit list outfits

npm link is required to use suit and suit-build together — the runtime invokes suit-build via PATH for Codex/Copilot prelaunch. Without npm link (or npm install -g), those subcommands will fail with ENOENT: spawn suit-build.

License

MIT