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

bazaar.it

v0.4.0

Published

AI-powered motion graphics from the command line — bazaar.it

Readme

BAZ CLI

AI-powered video generation from your terminal.

██████╗  █████╗ ███████╗
██╔══██╗██╔══██╗╚══███╔╝
██████╔╝███████║  ███╔╝
██╔══██╗██╔══██║ ███╔╝
██████╔╝██║  ██║███████╗
╚═════╝ ╚═╝  ╚═╝╚══════╝

Programmatic access to Bazaar video generation for external agents, automation, and power users.

Installation

npm install -g bazaar.it

Quick Start

# 1. Authenticate
baz auth login <your-api-key>

# 2. Set a project
baz project list
baz project create --name "My Video Project" --format landscape
baz project use <project-id>

# 3. Generate!
baz prompt "Create an intro scene with the text 'Hello World' in neon colors"

# Agent-friendly mode
export BAZ_AGENT=1
baz prompt "Create an intro scene with the text 'Hello World' in neon colors"

Interactive Mode (REPL)

Run baz without arguments to enter interactive mode:

$ baz

██████╗  █████╗ ███████╗
██╔══██╗██╔══██╗╚══███╔╝
██████╔╝███████║  ███╔╝
██╔══██╗██╔══██║ ███╔╝
██████╔╝██║  ██║███████╗
╚═════╝ ╚═╝  ╚═╝╚══════╝

AI-powered video generation v0.4.0
─────────────────────────────────────
Type a command or prompt. Use 'help' for commands.

baz> project list
baz> prompt "Create an intro scene"
baz> exit

Features:

  • Tab completion for commands
  • Persistent session state
  • History navigation with arrow keys
  • Commands work without baz prefix

Commands

Authentication

# Register a new account and auto-save API key
baz auth register --email [email protected] --name "Your Name"

# Login with API key
baz auth login <api-key>

# Check authentication status
baz auth status

# Logout
baz auth logout

Get an API Key: Sign in at bazaar.it, click your balance in the top bar, then select API Keys to generate one.

Projects

# List your projects
baz project list

# Create a new project
baz project create --name "My Video Project"
baz project create --name "TikTok Hook" --format portrait

# Set active project (used by default for all commands)
baz project use <project-id>

# Show current project
baz project current

# Duplicate a project (optionally changing format)
baz project duplicate <id> --name "Copy" --format portrait

# View or change project settings
baz project settings
baz project settings --format portrait --width 1080 --height 1920

# Change format by duplicating into a new project
baz project format landscape

# Validate timeline structure
baz project validate --json

# Delete a project
baz project delete <id>

Prompts

The main command for AI video generation:

# Basic prompt
baz prompt "Create a 10 second intro with a blue gradient background"

# With images attached
baz prompt "Recreate this design" --image ./design.png --image ./logo.png

# With URL context (fetches and analyzes the URL)
baz prompt "Create a video based on this article" --url https://example.com/article

# Save attached references to reusable project context
baz prompt "Use this brand style for a launch teaser" \
  --image ./brand-kit/logo.png \
  --url https://example.com/brand \
  --save-context \
  --context-label brand

# Spar planning mode (planning-only conversation, no timeline mutations)
baz prompt "Let's plan a 30s launch video with voiceover" --spar

# Agent-max mode (more thorough, takes longer)
baz prompt "Complex animation sequence" --max

# Read prompt from file
baz prompt "Use the script" --file ./script.txt

# Show full agent response
baz prompt "Create something cool" --verbose

Options: | Option | Description | |--------|-------------| | --mode <mode> | Generation mode: agent (default), agent-max, multi-scene | | --max | Shorthand for --mode agent-max | | --file <path> | Read prompt from a file | | --image <path> | Attach image(s) — can use multiple times | | --url <url> | Attach URL(s) for context — can use multiple times | | --spar | Planning-only conversation mode (no composition edits) | | --plan | Deprecated alias for --spar | | --save-context | Persist provided URL/image references into project context | | --context-label <label> | Label used for saved context entries (default: reference) | | --verbose | Show agent's full response text | | --no-stream | Disable streaming output |

Scenes

# List all scenes in active project
baz scenes list

# Get scene TSX code
baz scenes code <scene-id>

# Replace scene TSX code from file
baz scenes set-code <scene-id> --file ./scene.tsx

# Dry-run timeline position updates (no DB writes)
baz scenes positions --updates-file ./updates.json

# Apply timeline position updates
baz scenes positions --updates-file ./updates.json --apply

Media Upload

Upload files to your project's media library:

# Upload an image
baz media upload ./image.png

# Upload a video
baz media upload ./video.mp4

# Upload with custom name
baz media upload ./file.png --name "my-logo.png"

Supported formats:

  • Images: jpg, png, gif, webp, avif, heic (max 50MB)
  • Videos: mp4, webm, mov, avi, mkv (max 2GB)
  • Audio: mp3, wav, ogg, flac, aac, m4a (max 500MB)

Export

# Start export
baz export start

# Check export status
baz export status <job-id>

# Wait for completion
baz export status <job-id> --wait

# List recent exports
baz export list

Status

# Show overall status (auth, project, timeline)
baz status

State & Verification

# Snapshot state for agents/automation
baz state --json

# Structural validation (overlaps, invalid durations, compile errors)
baz project validate --json

# Criteria verification
baz verify --criteria "logo visible,CTA present,duration <= 60s" --json

MCP Manifest

# MCP-style manifest for integrations
baz mcp
baz mcp schema

Example output:

Project Status
────────────────────────────────────────────────────────────

  Project:  My Product Demo
  ID:       f0ba67dc...

┌─────────────────────────────────────────────────────────┐
│  Scenes: 5     Tracks: 2     Duration: 0:45     ✓ OK   │
└─────────────────────────────────────────────────────────┘

  Timeline:
  Track 0  │▓▓▓▓Intro▓▓▓▓▓▓▓Main▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓Outro▓▓│
  Track 1  │          ▓▓▓▓Logo▓▓▓▓                    │
           └──────────────────────────────────────────┘
            0:00                0:22                 0:45

Logs (Beta)

Query runtime logs:

# Show recent logs
baz logs

# Show only errors
baz logs --errors

# Search logs
baz logs --search "error"

# Filter by API path
baz logs --path /api/generate-stream

# Custom time range
baz logs --since 24h --limit 100

# Filter by current project
baz logs --project

Context

Attach goals, requirements, reference URLs, and files to a project. The AI agent uses this context when generating content.

# Add text context
baz context add "Brand colors: #FF6B00, #1A1A2E" --label "brand"

# Add a URL reference
baz context add "https://example.com/brand-guide" --label "reference"

# Add a file (uploaded to media library)
baz context add --file ./brief.pdf --label "creative brief"

# List all context entries
baz context list

# Show context (alias for list)
baz context show

# Remove a specific entry
baz context remove <context-id>

# Clear all context
baz context clear

Recipe (Deprecated)

Recipe workflows were replaced by direct agent orchestration.

baz recipe
# Prints deprecation guidance and points to `baz prompt`

Templates

# List available templates
baz template list

# List only curated templates (default)
baz template list --catalog curated

# List curated + community templates
baz template list --catalog all

# Include multi-scene templates in list output
baz template list --catalog all --include-multiscene

# Get ranked recommendations from your prompt
baz template recommend "animated saas dashboard intro" --json

# Recommend from full catalog (curated + community)
baz template recommend "animated saas dashboard intro" --catalog all

# Recommend from full catalog including multi-scene kits
baz template recommend "daily engineering report" --catalog all --include-multiscene

# Inspect one template (metadata only)
baz template show <template-id>

# Inspect one template including TSX code
baz template show <template-id> --code

# Apply template scene(s) to the active project
baz template apply <template-id>

# Apply template to a specific project
baz template apply <template-id> --project-id <project-id>

# Publish current project scenes as a community template (admin beta)
baz template publish --project-id <project-id> --name "Product Launch"

# Publish with rich metadata + editable vars
baz template publish \
  --project-id <project-id> \
  --name "Product Launch" \
  --description "Kinetic product announcement with layered motion graphics" \
  --category "marketing" \
  --tags "product-launch,announcement,dark-mode" \
  --formats landscape,portrait \
  --var product_name="Acme" \
  --var brand_color="#FF5733"

# Validate publish payload without writing
baz template publish --project-id <project-id> --name "Draft Template" --dry-run --json

# Filter by category or format
baz template list --category "product" --format landscape

# Search templates
baz template list --search "intro"

Review

Full project state dump for external agent evaluation. Returns scenes with code, voiceovers, timing, and AI-generated asset prompts.

# Get full project state for agent evaluation
baz review --json

Share

# Create a share link for the active project
baz share create

# List all your shared projects
baz share list

# Delete a share link
baz share delete <share-id>

Capabilities

# Describe CLI capabilities (JSON for agents)
baz capabilities --json

Loop (Basic OODA)

# Iterate prompt → review with optional requirements
baz loop "Create a 15s intro for Acme" --requirements "logo visible, CTA present"

# Use agent mode + NDJSON for bots
BAZ_AGENT=1 baz loop "Create a 15s intro" --requirements "logo visible, CTA present"

# Stop on failure and set a time budget
baz loop "Create a 15s intro" --requirements "logo visible" --stop-on-fail --budget 90s

# Persist loop references for future prompts
baz loop "Build 3 scenes from this style guide" \
  --url https://example.com/style-guide \
  --image ./assets/brand-board.png \
  --save-context --context-label brand

Agent Capabilities

The agent has access to the same tools as the web app:

Scene Operations

  • Create scenes — Add new scenes with animations, text, images
  • Edit scenes — Modify existing scene code, styling, timing
  • Delete scenes — Remove scenes from the project
  • Trim scenes — Adjust start time and duration

Media Generation

  • Generate images — AI image generation (DALL-E, etc.)
  • Generate video — AI video generation (Seedance, Veo 3)
  • Generate voiceover — Text-to-speech with multiple voices
  • Generate music — AI background music generation
  • Remove backgrounds — Extract subjects from images

Gathering Tools

  • Fetch URLs — Extract content from web pages
  • Take screenshots — Capture web pages as images
  • Summarize — AI-powered content summarization

Planning & Orchestration

  • Video plans — Create multi-scene video outlines
  • Recipes — Reusable templates for video generation
  • Workflows — Multi-step automation pipelines

Output Modes

Streaming (default)

Shows real-time progress:

Mode: agent
Project: abc123

[2s] 🧠 Analyzing your request...
✔ [3s] 🧠 Analyzing your request...
[4s] 🎬 Creating scene
✔ [8s] 🎬 Creating scene
[8s]    ✅ Created: "Intro Scene"

┌────────────────────────────────────────────────┐
│ ✓ Done! (1 scene in 15s)                       │
└────────────────────────────────────────────────┘

JSON Mode

For programmatic parsing:

baz prompt "..." --json

Returns:

{
  "success": true,
  "scenesCreated": ["scene-id-1"],
  "scenesUpdated": [],
  "errors": [],
  "elapsed": "15s",
  "steps": 4
}

Global Options

--json              Output as JSON (for scripting)
--compact           Compact JSON output (token-efficient for agents)
--verbose           Show detailed output
--config <path>     Custom config file path
--api-url <url>     Override API URL
--project-id <id>   Override active project

Configuration

Config stored at ~/.bazaar/config.json:

{
  "apiKey": "baz_...",
  "apiUrl": "https://bazaar.it",
  "activeProjectId": "abc123"
}

Environment variables override config file:

  • BAZ_API_KEY — API key
  • BAZ_API_URL — API URL
  • BAZ_PROJECT_ID — Active project
  • BAZ_JSON=1 — Force JSON output (equivalent to --json)
  • BAZ_AGENT=1 — Agent auto-mode (default --json, --compact, --events-only, and --stream-json on prompt/loop)

Examples

URL to Video

# Turn any webpage into a video
baz prompt "Create a video summary of this article" \
  --url https://example.com/blog/post

# Multiple URLs for comparison
baz prompt "Compare these products" \
  --url https://example.com/product-a \
  --url https://example.com/product-b

Batch Processing

# Generate and capture result
result=$(baz prompt "Create intro scene" --json)
scene_id=$(echo "$result" | jq -r '.scenesCreated[0]')
echo "Created scene: $scene_id"

CI/CD Integration

#!/bin/bash
set -e

export BAZ_API_KEY="$BAZAAR_API_KEY"

# Generate video from PR description
baz prompt "Create demo video: $PR_DESCRIPTION" --project-id "$PROJECT_ID"

# Export when ready
baz export start --wait --json > export-result.json

Complex Workflow

baz prompt "Create a 30 second promotional video for https://example.com \
  including their logo, brand colors, and key messaging" --max

Troubleshooting

"Unauthorized" Error

baz auth status
baz auth login <api-key>

"No active project"

baz project list
baz project use <project-id>

"Insufficient balance"

Check your balance in the app at bazaar.it — visible in the top bar after signing in.

Connection Issues

baz auth status --api-url https://bazaar.it

Error Codes

| Code | Meaning | |------|---------| | 0 | Success | | 10 | Transient error (retryable) | | 11 | Resource/capacity error | | 12 | Semantic/content-policy error | | 13 | Authentication error | | 64 | Input/not-found error | | 65 | Validation error | | 1 | Fatal/unclassified error |

Development

npm run typecheck    # Type check
npm run dev          # Run in dev mode
npm run build        # Build for production

License

Copyright © 2024 Bazaar.it. All rights reserved.