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

@beem-slide/cli

v1.2.1

Published

Scaffold beem-slide workspaces and move decks to the beem cloud (login, push, pull, publish).

Readme

@beem-slide/cli

Scaffold a workspace for beem-slide — a React slide framework whose authoring guides, publishing and hosting live in the beem cloud.

Usage

npx --package=@beem-slide/cli beem init my-slide
cd my-slide
pnpm install
pnpm dev

This creates a workspace containing:

  • slides/getting-started/ — a starter slide you can edit or delete.
  • package.json — depends on @beem-slide/core (an npm alias of the public @beem-slide/engine build), which provides the slide viewer, the dev server and the beem-slide CLI.
  • beem-slide.config.ts — optional typed config (slidesDir, port).
  • CLAUDE.md — agent guide for authoring slides.

You won't see any Vite, React, or tsconfig files in the workspace. They live inside @beem-slide/core and you never touch them.

Commands

| Command | Description | | --- | --- | | beem-slide init [dir] | Scaffold a new workspace in dir (defaults to current dir). | | beem-slide init --force | Scaffold into a non-empty directory. | | beem-slide init --name <name> | Override the generated package.json name. |

(Once installed in the workspace, @beem-slide/core provides beem-slide dev, beem-slide build, and beem-slide preview via its own bin.)

Cloud commands (beem)

The package ships a second bin, beem, for hosting decks in the beem cloud. Run it as npx --package=@beem-slide/cli beem <cmd> (or just beem <cmd> once installed).

No Node on the machine? curl -fsSL https://beem-ai.dev/install | sh (Windows: irm https://beem-ai.dev/install.ps1 | iex) installs a managed Node plus beem under ~/.beem without touching the system environment.

| Command | Description | | --- | --- | | beem login / logout / whoami | Device-code sign-in in a browser; credentials land in ~/.config/beem/credentials.json (0600). | | beem push [dir] | Upload a deck directory to your cloud workspace. | | beem pull <deckId> [dir] | Download a deck from the cloud. | | beem publish [dir] / unpublish [dir] | Put the deck at its public link / take it offline. | | beem doctor | Check node, package managers, network, agent clients and sign-in state; every ✗ prints the fix. | | beem mcp install | Register the beem MCP server with agent clients on this machine (Claude Code, Claude Desktop, Codex, Cursor, Windsurf, Gemini CLI). | | beem mcp config --json | Print the mcpServers snippet for any other MCP client. |

push maps the directory to its cloud deck in .beem/cloud.json — commit that file; it carries no machine paths or secrets.

Headless & CI

Every cloud command works without a terminal session:

  • Auth: set BEEM_TOKEN (it outranks the credentials file). Get a token by running beem login on any machine and copying token from the credentials file, then store it as a CI secret. Revoke tokens any time in the studio's account panel.
  • --json: whoami, doctor, push, pull, publish, unpublish, logout and mcp status print exactly one JSON object on stdout. On failure stdout stays empty and stderr gets {"error":{"code","message","hint"}}. (login stays interactive by design — CI is what BEEM_TOKEN is for.)
  • Exit codes (stable, safe to branch on): 0 success · 1 error · 2 not signed in · 3 paid capability required · 4 cloud copy moved (pull or push --force) · 5 publish build failed.

Publish on merge (GitHub Actions)

Keep the deck in git; every merge to main pushes it to the cloud and republishes the public link:

name: Publish slides
on:
  push:
    branches: [main]

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - name: Push and publish
        env:
          BEEM_TOKEN: ${{ secrets.BEEM_TOKEN }}
        run: |
          npx --yes --package=@beem-slide/cli beem push slides/my-deck --force --json
          npx --yes --package=@beem-slide/cli beem publish slides/my-deck --json

Two things make this loop stable:

  • Run beem push once from your machine first and commit .beem/cloud.json — that file is how CI updates the same deck instead of creating a new one per run.
  • --force makes git the source of truth: pushes overwrite edits made in the studio (the overwritten version stays recoverable in the deck's history). Drop --force to instead fail the job with exit code 4 whenever the cloud copy has diverged.

Authoring

Inside the scaffolded workspace, slides live under slides/<kebab-case-id>/index.tsx and default-export an array of Page components. Each page renders into a fixed 1920×1080 canvas; the framework handles scaling.

Register the MCP server (beem mcp install) and sign in (beem login): the authoring_guide tool then gives any agent the beem authoring knowledge base, and "make slides about X" builds to the quality bar.