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

slideshot-cli

v0.1.6

Published

Command-line interface for [Slideshot](https://slideshot.ai/) to record product demo videos from text descriptions. Designed to be used by AI agents first. Describe a feature you want to demo in a web app, and the Slideshot agent will provide a ready-to-s

Readme

Slideshot CLI

Command-line interface for Slideshot to record product demo videos from text descriptions. Designed to be used by AI agents first. Describe a feature you want to demo in a web app, and the Slideshot agent will provide a ready-to-share mp4 video. No post-editing is required.

Installation

npm install -g slideshot-cli

Or run it without a global install:

npx -y slideshot-cli --help

Quick Start

Authenticate with your Slideshot account:

slideshot auth login --email [email protected]
# Or use an emailed one-time code
slideshot auth login --email [email protected] --email-only

Create a run:

slideshot runs create https://example.com --goal "Capture the homepage and produce a demo"

Wait for completion:

slideshot runs wait <run-id> --output text

List the public artifacts for a run:

slideshot runs artifacts <run-id> --output text

Download the generated demo video:

slideshot runs download <run-id> --artifact demo.mp4 --dir ./artifacts --output text

Fetch detected brand information for a target URL:

slideshot brand fetch https://example.com --output text

List saved brand guidelines for a target domain:

slideshot brand list --domain app.example.com --output text

Authentication

Slideshot supports both stored user sessions and API keys.

Sign in with email and password

# Interactive password prompt
slideshot auth login --email [email protected]

# Read password from stdin
printf '%s' 'your-password' | slideshot auth login --email [email protected] --password-stdin

Sign in with an emailed one-time code

slideshot auth login --email [email protected] --email-only
slideshot auth login --email [email protected] --email-only --skip-api-key

--email-only sends a one-time code to your email address, prompts for that code in the terminal, and signs you in without a password. This flow matches the web app's passwordless behavior and can create the account if it does not already exist.

By default, auth login stores your user session locally and creates a local API key for commands that can authenticate with an API key. Pass --skip-api-key if you only want the user session.

When a command supports API keys, Slideshot resolves auth in this order:

  • --api-key <api-key>
  • SLIDESHOT_API_KEY
  • stored local API key
  • stored user session, when the command supports it

Use an API key

# Store an API key locally
slideshot auth set-key srk_...

# Or use an environment variable
export SLIDESHOT_API_KEY=srk_...

Inspect or clear auth state

slideshot auth status --output text
slideshot auth env --shell sh --output text
slideshot auth clear-key
slideshot auth logout
slideshot auth logout --clear-key

Manage API keys for your account

These commands require a signed-in user session:

slideshot auth keys list --output text
slideshot auth keys create --label "Slideshot CLI"
slideshot auth keys revoke <api-key-id>

Local auth storage

Slideshot stores local auth state in the standard config directory for your OS:

  • macOS: ~/Library/Application Support/slideshot/auth.json
  • Linux: $XDG_CONFIG_HOME/slideshot/auth.json or ~/.config/slideshot/auth.json
  • Windows: %APPDATA%\\slideshot\\auth.json

Commands

runs

Create and manage Slideshot runs.

# Create a run
slideshot runs create https://example.com --goal "Capture the onboarding flow"

# Pass additional JSON options inline or from a file
slideshot runs create https://example.com --goal "Record sign in" --options '{"viewport":"desktop"}'
slideshot runs create https://example.com --goal "Record sign in" --options @options.json

# Check status
slideshot runs status <run-id> --output text

# Wait until the run reaches a terminal state
slideshot runs wait <run-id> --output text

# List runs visible to the current auth
slideshot runs list --output text
slideshot runs list --api-key "$SLIDESHOT_API_KEY" --output text

# Cancel a run
slideshot runs cancel <run-id>

# Submit input when a run is waiting for user input
slideshot runs input <run-id> --value "123456"

# List downloadable artifacts
slideshot runs artifacts <run-id> --output text

# Download one artifact or all public artifacts
slideshot runs download <run-id> --artifact demo.mp4 --dir ./artifacts --output text
slideshot runs download <run-id> --all --dir ./artifacts --output text

All runs commands can use --api-key or fall back to your stored session when supported.

Run Artifacts

The CLI exposes stable public artifact names:

  • raw.mp4
  • demo.mp4
  • plan.json

Common runs Options

| Command | Options | | --- | --- | | runs create | --goal <goal> (required), --options <json-or-@file>, --api-key <api-key>, --output <json\|text> | | runs status | --api-key <api-key>, --output <json\|text> | | runs wait | --api-key <api-key>, --output <json\|text> | | runs list | --api-key <api-key>, --output <json\|text> | | runs cancel | --api-key <api-key>, --output <json\|text> | | runs input | --value <value> (required), --api-key <api-key>, --output <json\|text> | | runs artifacts | --api-key <api-key>, --output <json\|text> | | runs download | --artifact <name> or --all, --dir <directory>, --api-key <api-key>, --output <json\|text> |

brand

Fetch detected brand information for a target URL and manage saved brand guidelines.

slideshot brand fetch https://example.com
slideshot brand fetch https://example.com/pricing --output text
slideshot brand list --domain app.example.com --output text
slideshot brand create \
  --label Main \
  --domain app.example.com \
  --video '{"background":{"type":"solid","color":"#0B1220"},"cursor":"default"}' \
  --default
slideshot brand set-default <brand-guideline-id>
slideshot brand delete <brand-guideline-id>

Common brand Options

| Command | Options | | --- | --- | | brand fetch | --api-key <api-key>, --output <json\|text> | | brand list | --domain <domain>, --api-key <api-key>, --output <json\|text> | | brand create | --label <label>, --domain <domain>, --video <json-or-@file>, --logo-url <url>, --intro <json-or-@file>, --default, --api-key <api-key>, --output <json\|text> | | brand set-default | <id>, --api-key <api-key>, --output <json\|text> | | brand delete | <id>, --api-key <api-key>, --output <json\|text> |

Saved brand guidelines store reusable visual configuration by registered domain. Use brand list --domain <target> before creating a styled run, then reference the selected guideline from run options with {"brand":{"source":"default"}} or {"brand":{"source":"saved","id":"..."}}. A saved intro is still opt-in per run: omit intro to skip it, pass "intro": {} for logo-only saved intro templates, or pass "intro": {"content":{"text":"..."}} for text-based saved intro templates.

credentials

Manage saved credentials for target domains.

# List credentials
slideshot credentials list --output text

# Create a credential
slideshot credentials create \
  --label Main \
  --domain app.example.com \
  --email [email protected] \
  --password secret

# Create a default credential for a domain
slideshot credentials create \
  --label Main \
  --domain app.example.com \
  --email [email protected] \
  --default

# Update a credential
slideshot credentials update <credential-id> \
  --label Main \
  --domain app.example.com \
  --email [email protected] \
  --api-key "$SLIDESHOT_API_KEY"

# Set the default credential for a domain
slideshot credentials set-default <credential-id>

# Delete a credential
slideshot credentials delete <credential-id>

Common credentials Options

| Command | Options | | --- | --- | | credentials list | --api-key <api-key>, --output <json\|text> | | credentials create | --label <label>, --domain <domain>, --email <email>, --password <password>, --default, --api-key <api-key>, --output <json\|text> | | credentials update | <id>, --label <label>, --domain <domain>, --email <email>, --password <password>, --api-key <api-key>, --output <json\|text> | | credentials set-default | <id>, --api-key <api-key>, --output <json\|text> | | credentials delete | <id>, --api-key <api-key>, --output <json\|text> |

All credentials commands can use either an API key or a signed-in user session. credentials update still uses the user route, but that route now accepts both auth modes.

feedback

Submit product feedback from the CLI.

# Send feedback directly
slideshot feedback "Need clearer chapter breaks"
slideshot feedback "Need clearer chapter breaks" --api-key "$SLIDESHOT_API_KEY"

# Attach a related run ID
slideshot feedback "The generated demo looked great" --run-id <run-id>

# Read feedback from stdin
printf '%s' 'Please add more export presets' | slideshot feedback

feedback can use either an API key or a signed-in user session.

Options:

  • --run-id <id> to attach one or more related runs
  • --api-key <api-key> to override API key resolution for this command
  • --stdin to force reading feedback text from stdin
  • --output <json|text>

schema

Print JSON Schema for a command's request and response types.

slideshot schema runs.create --output text
slideshot schema auth.keys.create

This is useful when you want to generate tooling or validate payloads around the CLI contract.

Output and Scripting

Slideshot defaults to compact JSON output so it works well in scripts and pipelines.

# Compact JSON
slideshot runs status <run-id>

# Human-readable output
slideshot runs status <run-id> --output text

# Pipe JSON into other tools
slideshot runs artifacts <run-id> | jq

Errors are printed as a stable JSON envelope, which makes failure cases script-friendly as well.

Exit Codes

Most commands return:

  • 0 on success
  • 2 for local validation errors
  • 3 for auth/configuration errors
  • 4 for remote client errors
  • 5 for remote server errors

slideshot runs wait also uses deterministic terminal-state exit codes:

  • 0 when the run succeeded
  • 10 when the run is awaiting_input
  • 11 when the run failed
  • 12 when the run was cancelled

Version

slideshot --version

Help

Use the built-in help for full command details:

slideshot --help
slideshot help runs
slideshot help runs create
slideshot help auth keys create