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

@stoneforgelabs/forge-logger-cli

v0.0.1

Published

Forge Logger CLI — headless, AI-agent-friendly control of projects, ingest tokens and reports.

Readme

@stoneforgelabs/forge-logger-cli

A headless, AI-agent-friendly CLI for Forge Logger. Everything in the web app's core loop — create a project, mint an ingest token, read reports — is driveable from the terminal or by an AI agent, with zero UI clicks.

It wraps the generated TypeScript SDK (src/_generated/api, regenerated from the backend's OpenAPI doc), so the CLI stays in lock-step with the API.

The command is forgelogger (short alias: flg).

Install

# Zero-install — ideal for AI agents and CI
npx @stoneforgelabs/forge-logger-cli init --name "My Game" --json

# Or install globally for interactive use
npm i -g @stoneforgelabs/forge-logger-cli
forgelogger --help

Requires Node.js 20+.

Local development (from the monorepo)

pnpm install
pnpm --filter @stoneforgelabs/forge-logger-cli build
node apps/forge-logger-cli/dist/index.js --help
# or without building:
pnpm --filter @stoneforgelabs/forge-logger-cli forge -- --help

Configuration

Config lives at ~/.forgelogger/config.json (override the dir with FORGE_CONFIG_DIR). The file is written with 0600 perms because it holds a session token.

Environment variables override the file, so agents / CI can run non-interactively:

| Var | Purpose | | --- | --- | | FORGE_API_URL | Management API base URL (default http://localhost:3001) | | FORGE_TOKEN | JWT access token (skips forgelogger login) | | FORGE_EMAIL / FORGE_PASSWORD / FORGE_NAME | Non-interactive login / register | | FORGE_INGEST_URL | Ingest API base URL (for future ingest commands) |

Commands

# Auth
forgelogger register --email [email protected] --password '••••' --name "My Studio"
forgelogger login    --email [email protected] --password '••••'
forgelogger whoami
forgelogger logout

# One-shot bootstrap: project + environment + ingest token (token printed once)
forgelogger init --name "My Game" --env Production
forgelogger init --name "My Game" --slug my-game --expires-in-days 90 --json

# Read side (accepts project id OR slug)
forgelogger projects list
forgelogger reports list my-game --severity critical --status new --limit 20
forgelogger reports get my-game <reportId>
forgelogger events list my-game --limit 50

# Export a report to a connected tracker (non-github providers need a paid plan)
forgelogger export my-game <reportId> --provider github

# Config
forgelogger config show
forgelogger config set baseUrl https://api.forgelogger.dev
forgelogger config path

Add --json to any command for machine-readable output (status/progress text goes to stderr, results to stdout — safe to pipe).

Agent quick-start

export FORGE_API_URL=https://api.forgelogger.dev
npx @stoneforgelabs/forge-logger-cli register --email "$EMAIL" --password "$PW" --json   # or login
npx @stoneforgelabs/forge-logger-cli init --name "My Game" --json                       # capture .token.value

Regenerating the SDK

The SDK is seeded from the frontend's generated client. To refresh it against a running backend (port 3001):

pnpm --filter @stoneforgelabs/forge-logger-cli api:generate

Releasing

Publishing is driven by a git tag (see .github/workflows/cli-release.yml):

# bump the version in package.json first, commit it, then:
git tag cli-v0.1.0
git push origin cli-v0.1.0

The workflow builds and runs pnpm publish (which resolves catalog: versions), so always publish via pnpm — npm publish would emit invalid catalog: specs.

Known limitation

The management API is JWT-only; there is currently no long-lived machine credential for read/management endpoints (the flg_ ingest token is write-only). For interactive/dev use forgelogger login stores a 7-day JWT. For durable CI/agent access, a read-scoped personal access token on the backend is the planned follow-up (wiring the existing CombinedAuthGuard onto the read routes).