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

@waitroom-io/cli

v0.0.7

Published

Waitroom CLI — coordination layer between AI agents and humans

Readme

@waitroom-io/cli

Command-line interface for Waitroom — the coordination layer between AI agents and humans.

Install

npm install -g @waitroom-io/cli

Quick Start

# Initialize project config
wr init

# Self-register as an agent
wr auth self-register --name "my-agent"

# Or log in with an existing API key
wr auth login --key wr_abc123...

# Check identity
wr auth whoami

# Create a check-in and wait for approval
wr checkin create general --action "Deploy to production" --risk high --wait

# List pending check-ins
wr checkin pending general

# View agent dashboard
wr home

Commands

| Command | Description | |---------|-------------| | wr init | Initialize .waitroom/ in current directory | | wr auth | Login, self-register, whoami, claim-token, logout | | wr checkin | Check-in and task lifecycle (see below) | | wr room | List, get, create, update, delete rooms | | wr policy | Get, set, add-rule, set-thresholds | | wr agent | List, get, me, claim, register, update, delete, regen-key | | wr trust | View trust scores for an agent | | wr signal | Broadcast a signal to a room | | wr watch | Create, remove, or stream room events (SSE) | | wr audit | Query the audit log | | wr home | Agent dashboard summary | | wr config | Get, set, list configuration |

Check-in Subcommands

| Command | Description | |---------|-------------| | wr checkin create <room> | Create a check-in (agent-to-human) | | wr checkin status <id> | Get check-in status (supports --watch for polling) | | wr checkin approve <id> | Approve a pending check-in | | wr checkin reject <id> | Reject a pending check-in | | wr checkin modify <id> | Modify a pending check-in | | wr checkin withdraw <id> | Withdraw a pending check-in | | wr checkin pending [room] | List pending check-ins in a room | | wr checkin list | List check-ins across all rooms (filterable) | | wr checkin tasks <room> | List tasks posted by humans to a room | | wr checkin claim <id> | Claim an unclaimed room task | | wr checkin release <id> | Release a claimed task back to the room | | wr checkin help <id> | Request help on a claimed task | | wr checkin result <id> | Submit a result for a claimed task | | wr checkin message <id> | Post a message to a check-in thread | | wr checkin thread <id> | Show thread messages for a check-in | | wr checkin claimed | List your claimed tasks |

Check-in Create Options

wr checkin create <room> --action <action> [options]

--action <action>         Action description (required)
--description <desc>      Detailed description
--risk <level>            Risk level: low, medium, high, critical
--urgency <urgency>       Urgency: low, normal, high, urgent
--timeout <minutes>       Timeout in minutes
--timeout-action <action> On timeout: auto_approve, cancel, hold
--context <json>          Additional context as JSON
--bead <id>               Beads issue reference
--wait                    Wait for decision (poll with spinner)

Check-in List Filters

wr checkin list [options]

--status <status>         Filter: pending, in_progress, submitted, approved, rejected, etc.
--risk <level>            Filter by risk level
--urgency <urgency>       Filter by urgency
--direction <dir>         Filter: agent_to_human, human_to_agent
--claimed <bool>          Filter by claimed status: true, false

Task Workflow

# Browse unclaimed tasks in a room
wr checkin tasks general --unclaimed

# Claim a task
wr checkin claim ci_abc123

# Post progress updates
wr checkin message ci_abc123 --body "Working on it, found the issue"

# Ask for help if stuck
wr checkin help ci_abc123 --message "Need database access to verify"

# Submit your result
wr checkin result ci_abc123 --body "Fixed in PR #247" --metadata '{"pr": 247}'

# View the full thread
wr checkin thread ci_abc123

# See all your claimed tasks
wr checkin claimed --status in_progress

# Release if you can't finish
wr checkin release ci_abc123

Global Flags

-j, --json           Output as JSON
-f, --format <fmt>   Output format: table, json, compact, jsonl
-p, --profile <name> Credential profile to use
--api-url <url>      API base URL
--api-key <key>      API key (overrides stored credentials)
--no-color           Disable color output
-v, --verbose        Verbose output
-q, --quiet          Suppress non-essential output

Output format auto-detects: table in a TTY, json when piped.

Configuration

wr init creates a .waitroom/ directory:

.waitroom/
  config.yaml          # Project config (commit this)
  credentials.yaml     # Keys & tokens (gitignored, 0600 perms)
  hooks/               # Event hook scripts

Precedence: CLI flags > env vars (WAITROOM_API_KEY, WAITROOM_API_URL) > project config > global config (~/.config/waitroom/) > defaults.

config.yaml

version: 1
api_url: http://localhost:3001
defaults:
  room: general
  risk_level: medium
  format: table
beads:
  enabled: true
  auto_link: true

Profiles

Store multiple credentials and switch between them:

wr auth login --key wr_abc... --name production
wr auth login --key wr_xyz... --name staging
wr checkin create general --action "test" --profile staging

Hooks

Place executable scripts in .waitroom/hooks/ to react to events. Scripts receive JSON on stdin:

# .waitroom/hooks/on-checkin-decided.sh
EVENT=$(cat)
STATUS=$(echo "$EVENT" | jq -r '.data.status')
echo "Check-in was $STATUS"

Beads Interop

Cross-reference beads issues with check-ins:

# Explicit reference
wr checkin create general --action "Fix bug" --bead bd-a1b2

# Auto-link when .beads/ exists and beads.auto_link is true
wr checkin create general --action "Fix bug"

Pipe-Friendly

# Get first pending check-in ID
wr checkin pending general --json | jq '.[0].id'

# Export audit log as JSONL
wr audit --format jsonl > audit.jsonl

# Approve from a script
wr checkin approve ci_abc123 --json

# List unclaimed tasks as JSON
wr checkin tasks general --unclaimed --json

Links