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

@sutro-dev/sutro-cli

v1.3.0

Published

Command line interface for authenticating and publishing to Sutro.

Readme

Sutro CLI

The Sutro CLI provides a scriptable and interactive interface for building, previewing, validating, and publishing SLang projects with Sutro.

Development

pnpm --filter @sutro-dev/sutro-cli build
pnpm --filter @sutro-dev/sutro-cli test
pnpm --filter @sutro-dev/sutro-cli exec node ./dist/cli.js --help

To install the local build as a global sutro command for manual testing:

pnpm cli:install:local
sutro --version
sutrodev --version

The local install exposes two commands for repository development:

  • sutro uses normal runtime environment selection. If SUTRO_ENV is unset, it defaults to production.
  • sutrodev always forces SUTRO_ENV=development, so it talks to the local Sutro backend (https://sapi.local.withsutro.com) regardless of the current shell environment.

For explicit smoke checks after installing, use pnpm cli:install:prod for sutro or pnpm cli:install:dev for sutrodev.

UX features

  • Global --json, --debug, --color, and --no-color flags.
  • Environment-based host selection via SUTRO_ENV.
  • Interactive recovery for missing required values when running in a TTY.
  • Actionable error messages with stable error codes, docs links, and bug-report links.
  • Secure auth persistence in the XDG config directory.

Common usage

npm install --global @sutro-dev/sutro-cli
sutro login
sutro init --name "Task API"
sutro dev
sutro validate
sutro publish
sutro status
sutro openapi --out openapi.json
sutro logout

sutro login opens Studio, completes sign-in in the browser, then persists the resulting session locally. Pass --no-open to print the login URL and wait for the callback without launching the OS default browser.

sutro init links the current folder to a Sutro Project and Application. It writes sutro.config.json and creates the configured SLang entry file if it does not exist.

sutro dev reads sutro.config.json, uploads local .slang files to a remote dev session, and prints a preview API URL. It watches .slang files and sutro.config.json by default, then reloads the remote preview after changes.

sutro validate validates the linked SLang project on Sutro without publishing it.

sutro publish uploads the linked SLang project and publishes the Application.

Distribution

The npm package is @sutro-dev/sutro-cli. Public users should install and run the sutro executable:

npm install --global @sutro-dev/sutro-cli
sutro --version

sutro --version reads the version from this package's package.json, which is the source of truth for the published package version.

Error codes

The full list of CLI error codes and their suggestions lives in src/cli-error.ts (CLI_ERRORS).

Release checklist

  1. Bump apps/cli/package.json with npm version patch, npm version minor, or npm version major from apps/cli using --no-git-tag-version until CLI releases are automated.
  2. Update CHANGELOG.md with the release version and date.
  3. Run pnpm --filter @sutro-dev/sutro-cli lint.
  4. Run pnpm --filter @sutro-dev/sutro-cli test.
  5. Run pnpm --filter @sutro-dev/sutro-cli build.
  6. Run cd apps/cli && npm pack --dry-run.
  7. Publish from apps/cli with npm publish --access public.
  8. Smoke-test a fresh install:
    npm install --global @sutro-dev/sutro-cli@latest
    sutro --version
    sutro login
    sutro publish

Automated release path

Once the manual checklist is stable, add a CI release workflow that runs on a version tag or manual dispatch. It should install dependencies, run the CLI lint/test/build steps, run npm pack --dry-run, publish with an npm automation token and provenance when available, then run a post-publish smoke test that installs @sutro-dev/sutro-cli@latest and verifies sutro --version.