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

@stratusagent/cli

v0.12.0

Published

Stratus Agent CLI: setup walkthrough, agent creation, local runs, and dashboard

Readme

@stratusagent/cli

Always-on agents that get smarter over time. Set up Stratus Agent on your machine, create agents with real identities, connect AI providers, and put them in Slack — from one command.

Stratus Labs

Install

npm install -g @stratusagent/cli
stratus setup

That one package is everything you need to run agents: the runtime, the providers, the agent roster, and the always-on gateway all come with it. Needs Node.js 22.13+ (23.x line: 23.4+) — the CLI checks at startup and says so plainly if yours is too old. Details: Installation.

stratus setup is the whole onboarding, as one small menu: sign in (Claude Pro/Max subscription or API key, ChatGPT/Codex, or any OpenAI-compatible service), pick default and fallback models, create your first agent, enable the plugins it may use, connect Slack, choose who approves gated calls while nobody is watching, and install the always-on service — no config files to edit, no env vars to export. Walkthrough: Setup.

Commands

stratus setup                          # onboarding menu: providers, models, agent, plugins, channels, approvals
stratus chat                           # talk — the conversation persists
stratus run "say hello"                # one-shot run (works offline on the demo provider)
stratus serve                          # stratusd: the whole roster, always on
stratus serve --approvals remote       # ask a human in Slack instead of refusing
stratus service install                # keep stratusd running under launchd/systemd
stratus logs -f                        # what the daemon has been doing
stratus doctor                         # what a run would use right now, and why
stratus update                         # stop → upgrade (CLI + its companions) → migrate → repair unit → restart
stratus --version                      # which build this is
stratus agent new                      # create an agent (guided on a terminal)
stratus agents                         # who's on the team: souls, models, memory
stratus template add owner/repo        # install an agent, its skills, and the plugins behind them — prints what it will add, then asks
stratus skill add owner/repo           # install skills from GitHub (validated against the Agent Skills spec) — a running daemon picks them up, no restart
stratus skill validate ./my-skill      # check a skill against the spec without installing it
stratus plugins                        # installed → enabled → granted → what approvals does with it
stratus restart                        # announced restart: refuse, drain, come back — what a plugin change needs
stratus health                         # is the running daemon serving? exit 0/1, for container and probe health checks
stratus credentials                    # stored credential names (never values)
stratus signin set anthropic --agent remy  # one agent's own Claude subscription, token asked without echo (also `signins`, `signin remove`)
stratus channel set imessage --agent blair apiKey  # a channel plugin's secrets for one agent, asked without echo (also `channels`, `channel remove`)
stratus schedules                      # what the fleet has scheduled, and where it reports
stratus grants blair                   # what blair may do unattended, and `grants revoke` to take one back
stratus memory list blair              # every live fact, with its trust label, pin, and validity
stratus memory search blair deploy pipeline             # the way the agent searches it
stratus memory pin blair <id>...       # keep facts in the prompt every turn (also `memory unpin`)
stratus memory export blair --file blair.jsonl          # move an agent's memory (also `memory import`)
stratus memory reassert blair --trust user --all-unknown  # vouch for the facts with no recorded origin
stratus session rollover <session-id>  # archive a conversation's transcript and start the same id over
stratus dashboard                      # web dashboard, signed in via a one-time link

Full reference with every subcommand: CLI reference.

Options

| Flag | Purpose | | --- | --- | | --soul <file> | Run as the agent defined by a soul file (also STRATUS_SOUL / config soul key) | | --provider | anthropic, openai, codex, or demo (offline, no account) | | --model | Model for real providers (anthropic default: claude-opus-5-5, codex default: gpt-5.5) | | --base-url | Override the provider API base URL | | --config <file> | Load settings from a specific config file | | --approvals | run/chat: always, ask, or never. serve: headless (refuse gated calls) or remote (ask in Slack) | | --max-turns | Max tool turns per run before it wraps up (default 40) | | --format | text or json | | --idle-timeout | serve: seconds of provider silence before the watchdog aborts a turn (default 120) | | --no-events | Hide the event log | | --no-log-file | serve: do not write ~/.stratus/logs/stratusd.jsonl | | --log-format | serve: text (default) or json — the log's records as JSON lines on stdout, for docker logs and journald | | --no-api | serve: do not serve the control API | | --api-host, --api-port | serve: control API bind (default 127.0.0.1:4123) | | --gateway <url>, --token | agents, skill reload, restart, session rollover, grants, health: a running daemon's control API | | --tool, --scope, --origin | grants revoke: which grant goes — exactly one | | --trust <level> | memory list: show only that label; memory reassert: the label to record (user, agent, unknown, external) | | --all-unknown | memory reassert: every live fact with no recorded origin | | --limit <n> | memory search: maximum hits | | --file <path>, --preserve-trust | memory export / memory import: the JSONL, and keeping each recorded label instead of landing entries external | | --agent <id> | credential set/remove: that agent's own key rather than the fleet's shared one; signin set/remove: whose own sign-in it is; channel set/remove: whose binding it is | | --port, --host, --no-open | dashboard: where a daemon it starts should bind; skip opening the browser | | --no-login | service install: install without the start-at-login trigger | | --version, -v | Print this build's version and exit | | -f, -n, --agent, --session | logs: follow, backlog size, and filters |

Precedence: flags → STRATUS_* env vars → soul file hints → config file. Project-local stratus.config.json outranks the global ~/.stratus/config.json; stored sign-ins are endpoint-bound and never sent to endpoints a project config selects. Details: Configuration.

Each agent's own state — its conversations, its memories, and what it may do unattended — lives in ~/.stratus/agents/<id>/, owner-only, so no read can reach another agent's. What is in a home directory, and what an upgrade from the older shared files moves: State layout · Updating.

Optional packages

Out of the box an agent can already echo, remember, recall, delegate, and (in the daemon) schedule. Everything beyond that — a transport, real-world tools, an open port — is a separate package you add only when you want it, and stratus setup offers the ones your answers imply:

npm install -g @stratusagent/channel-slack                        # agents in Slack
npm install -g @stratusagent/tool-fs @stratusagent/tool-shell \
               @stratusagent/tool-web @stratusagent/tool-browser  # real capability
npm install -g @stratusagent/plugin-mcp                           # mount MCP servers
npm install -g @stratusagent/control-api @stratusagent/dashboard  # HTTP API + web UI

A tool or MCP plugin runs nothing by being installed — a config you chose enables it, then each agent's soul allowlists its tools. The two surfaces switch on differently, on purpose: the Slack channel connects when an agent's stored tokens say so, and installing the control API is itself the decision to open an authenticated local port (--no-api takes it back). The reasoning: the plugin trust model.

Learn more

| I want to… | Read | | --- | --- | | Put my agents in Slack | Slack | | Give agents files, a shell, the web, a browser | Tools | | Decide what runs unattended, approve the rest from Slack | Approvals | | Let agents act on their own schedule | Schedules | | Teach an agent a procedure | Skills | | Run it as a service, read its logs, upgrade it | Always on · Logs · Updating | | Run it on a server, in Docker or under a system unit | Deployment | | Understand souls, ids, and memory | Agents · Memory | | Fix a surprise | Troubleshooting |

The full index: docs.

Part of Stratus Agent — a tiny TypeScript agent runtime, MIT licensed.