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

team

v0.5.5

Published

Ship with a team that never sleeps. Specialized agents, from any lab.

Readme

team

Ship with a team that never sleeps. Specialized agents, from any lab.

team is a small command-line tool with no runtime dependencies: you set the roster, the agents do the work in herdr panes, and you stay the one who decides. It is early and herdr only. Every command team --help lists is here. Node 22 or later runs it.

  • Any model, in any seat. Put the right agent from any lab on each role, and swap it without rewriting the team.
  • Safe by design. Agents move fast inside the envelope you set, and stop at its edge.
  • The watch tells you. It reports idle seats and nudges the operator.

Install

npm install -g team

Your first team in five minutes

mkdir hello && cd hello && git init
team init                  # writes .agents/team.yaml, private to this clone
$EDITOR .agents/team.yaml  # name your seats; any CLI fits any role
team doctor                # what this machine still needs
team up --dry-run          # every command it would run, and every refusal
team up                    # starts the session and its seats

The file stays private to the clone: team init keeps it out of git in .git/info/exclude, never by editing .gitignore. team init --restore brings back the copy this machine stored. Read a file you receive before you run team up.

The few ideas

The team file. .agents/team.yaml holds the roster and the owner's sections — budgets, trust, grant, delegates. It is private to each clone, and the commands read it as the record. The whole format is in the team file.

Seats. A seat is one role, one model, one launch command, in its own pane. Any CLI fits any role: vendor, model and version name what it runs, count adds instances, and parked or stopped keeps it out of reports or out of up. Swap a seat by editing the file.

Owner, grants, policies. The owner is a person at a terminal outside herdr. Only the owner grants rights: team grant and team delegate record what a seat or pane may do, budgets and trust set what it may spend and reach. Agents move inside that envelope and stop at its edge. Approvals guard against mistakes, not against a hostile process running as the owner.

The commands you'll use

| Command | What it does | | --- | --- | | team init | writes the team file | | team doctor | checks this machine against the file | | team up / team down | starts or stops the session and its seats | | team status | the file against the running session, each difference with its repair | | team seats | each seat's state, and where it was read | | team send | one message to one seat, with a delivery report | | team drops | the messages waiting for this seat | | team watch | reports idle seats and nudges the operator | | team register | writes the record for a seat that is already running | | team next | claims the next task; team plan shows the queue | | team check | reports the differences, each with its repair |

Every command, flag, refusal and exit code is in the command reference.

What's new in 0.5.5

0.5.5 moves the team's definition out of the project and into the registry (~/.config/team/team-config/). Run team migrate once in each project: it imports .agents/team.yaml, verifies the import, and moves the file to the Trash (--keep-file keeps it). From then on, team config get|set|unset|edit edits the team. Approvals are signed over one canonical team record, so they stay in force across the move. See UPGRADE-0.5.5.md.

A team that names an entity and no session: now runs in the session <entity>-<project>; team check names the move, and the team is approved again once.

Clients gain the observer, operator, manager and developer grant bundles, replies through team reply and team messages --client, and a pane guard that refuses client commands inside a team pane. A seat stopped at a usage wall reads as blocked: quota, and team pause can pause one seat.

Downgrading to 0.5.3 after a team has been migrated is NOT supported: 0.5.3 reads only the file. Keep the file with team migrate --keep-file if you may need to go back.

The full list is in CHANGELOG.md.

Learn more

The project is TeamCLI; the site is teamcli.io and the founding text is RFC 000.

License

MIT