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

@asdftube/cli

v0.3.6

Published

Standalone CLI for recording, uploading, publishing, and operating asdf.tube videos

Readme

@asdftube/cli

Record terminal captures, desktop recordings, and agent sessions. Review locally, then publish a short hosted link on asdf.tube.

Quickstart

Install globally:

npm install -g @asdftube/cli

Or run directly:

npx @asdftube/cli@latest help

Fastest flow:

npx @asdftube/cli@latest auth
npx @asdftube/cli@latest record terminal --cmd "seq 1 10" --publish --title "Terminal demo"

asdftube auth sends a magic link and PIN to your email, then stores an expiring local session. No password or separate signup flow is required.

Support

  • macOS: supported
  • Windows: beta
  • Linux (X11/XWayland): beta
  • Linux (Wayland-only): not supported yet

Provider status:

  • Codex: supported
  • Claude: supported, export/input fallback still matters on some machines
  • Gemini: supported
  • OpenCode: beta
  • Grok: beta, export/input-first

What It Does

  • Records terminal, desktop, and window captures
  • Renders agent session replays to local review artifacts and MP4
  • Publishes hosted video links
  • Attaches an optional web replay tab for supported agent-session flows
  • Redacts and edits locally before publish
  • Prints the delete command after publish so you can revoke a share immediately

Core Commands

asdftube auth
asdftube publish ./recording.mp4 --title "Demo walkthrough"
asdftube record terminal --cmd "seq 1 10" --text-size standard --publish --title "Terminal demo"
asdftube record desktop --seconds 10 --publish --title "Desktop capture"
asdftube record windows
asdftube record window --app "Firefox" --seconds 10 --publish --title "Window capture"
asdftube record doctor --json
asdftube edit video ./demo.mp4 --prompt "crop out the first 15 seconds of the video"
asdftube replay codex latest --publish --yes
asdftube replay gemini latest --review-only
asdftube replay claude --input ./claude-export.jsonl --publish --yes --title "Claude replay"
asdftube replay opencode latest --publish --yes --title "OpenCode replay"
asdftube replay grok --input ./grok-session.json --publish --yes --title "Grok replay"
asdftube share list
asdftube share delete SHARE_ID --token sharetok_xxx

Default command output is human-readable. Add --json when you need structured output for scripts or automation.

Record Doctor

Run this first on any Windows or Linux machine:

asdftube record doctor --json

It reports:

  • selected backend
  • whether ffmpeg and ffprobe are available
  • whether the required FFmpeg device is present
  • window-discovery readiness
  • audio support
  • display/session constraints like Wayland-only Linux

MCP Install

Codex:

codex mcp add asdftube -- npx -y @asdftube/cli@latest mcp-server

Claude Code:

claude mcp add asdftube -- npx -y @asdftube/cli@latest mcp-server

OpenCode (opencode.json or opencode.jsonc):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "asdftube": {
      "type": "local",
      "command": ["npx", "-y", "@asdftube/cli@latest", "mcp-server"],
      "enabled": true
    }
  }
}

Gemini CLI (~/.gemini/settings.json):

{
  "mcpServers": {
    "asdftube": {
      "command": "npx",
      "args": ["-y", "@asdftube/cli@latest", "mcp-server"]
    }
  }
}

Grok:

  • Grok replay is supported through exported JSON or JSONL transcripts.
  • No official local Grok session store or local MCP client config is documented by xAI in the sources checked for this release, so use --input ./grok-session.json for now.

Once installed, ask your agent to use the asdftube MCP tools to authenticate with your email, render locally for review, and only publish after you approve it.

The MCP surface also exposes local prompt-driven editing through asdftube_edit_video.

Replay Notes

Fastest replay flow from an agent CLI:

npx @asdftube/cli@latest auth
npx @asdftube/cli@latest replay codex latest --publish --yes

Additional examples:

asdftube replay codex latest --review-only --text-size standard
asdftube replay codex latest --review-only --redactions 'acme|internal-only|staging-secret=>[REDACTED_TERM]'
asdftube replay codex "cybercafe.party" --publish --yes
asdftube replay gemini --input ./gemini-session.json --publish --yes --title "Gemini replay"
asdftube replay claude --input ./claude-export.jsonl --publish --yes --title "Claude replay"
asdftube replay grok --input ./grok-session.json --review-only --title "Grok replay"
asdftube replay opencode latest --publish --yes --title "OpenCode replay"

Editing Notes

edit video is local-first and ffmpeg-backed. The parser currently supports:

  • remove the first N seconds
  • remove a range
  • speed up a range
  • blur a range
  • add centered intro text with fade-out
  • mix or replace audio with an extra track
  • stitch in extra clips passed via --asset
  • split explicit ranges into separate output files

Examples:

asdftube edit video ./demo.mp4 --prompt "crop out the first 15 seconds of the video"
asdftube edit video ./demo.mp4 --prompt "speed up video 3x from 0:30 to 0:50"
asdftube edit video ./demo.mp4 --prompt "blur out 0:55 to 1:10 while I type something sensitive"
asdftube edit video ./demo.mp4 --asset ./intro.mp3 --prompt "add this mp3 to the clip, fade out intro showing a centered text \"Hello World\""
asdftube edit video ./demo.mp4 --asset ./clip-2.mp4,./clip-3.mp4 --prompt "stitch together different clips together"
asdftube edit video ./demo.mp4 --prompt "split 0:00-0:15 and 0:30-0:45 into separate files"

Redactions

# Case-insensitive word list. The fallback syntax defaults to /gi/.
asdftube replay codex latest --review-only --redactions 'acme|internal-only|staging-secret=>[REDACTED_TERM]'

# Multiple rules in one flag.
asdftube replay codex latest --review-only --redactions 'acme|internal-only=>[REDACTED_TERM]||CF-[0-9]{4,}=>[REDACTED_TICKET]'

# JSON form when you need explicit flags.
asdftube replay gemini latest --review-only --redactions '[{"name":"terms","pattern":"acme|internal-only|staging-secret","replacement":"[REDACTED_TERM]","flags":"gi"}]'

# Grok export flow.
asdftube replay grok --input ./grok-session.json --review-only --redactions 'internal-only|staging-secret=>[REDACTED_TERM]'

Capture Limits

  • Desktop/window capture on macOS requires Screen Recording permission for the terminal app running asdftube.
  • Linux window discovery requires wmctrl.
  • Linux capture currently targets X11/XWayland.
  • Audio capture is partial:
    • macOS keeps the current input-audio path
    • Linux can use PulseAudio sources
    • Windows --with-audio is not implemented yet
  • Automatic large-cursor and click-ring effects are not implemented yet because the current capture path does not record pointer telemetry.

Video Text Size Presets

  • compact
  • standard (default)
  • large

Environment Fallbacks

  • ASDF_TUBE_BASE_URL
  • ASDF_TUBE_API_KEY
  • ASDF_TUBE_ORG_ID
  • ASDF_TUBE_CLI_CONFIG

Local Build

pnpm --filter @asdftube/cli build
cd packages/cli && npm pack

Smoke the installed binary from the packed tarball:

tmpdir=$(mktemp -d)
npm install -g --prefix "$tmpdir" packages/cli/asdftube-cli-*.tgz
"$tmpdir/bin/asdftube" help

Notes

  • Replay rendering and redaction happen locally before publish.
  • Review *.review.json and *.txt replay artifacts before uploading the final MP4.
  • The publish result includes the delete command so you do not need to hunt for the share id and revoke token separately.
  • ffmpeg and ffprobe must be available on your PATH for replay rendering and capture packaging.
  • gitleaks is optional but recommended for stronger local secret scanning during replay redaction.

Boundary

  • This package is the public CLI only.
  • Do not add proprietary API, worker, admin, auth, or backend source code to this package or any future public CLI repository.

License

  • AGPL-3.0-only