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

@voxagent/bridge

v0.3.6

Published

Local bridge process that pairs the host's Claude Code or Codex agent with a VoxAgent meeting.

Readme

@voxagent/bridge

Local bridge process that pairs the host's Claude Code or Codex agent with a VoxAgent meeting room.

What it does

When a host pairs from the VoxAgent web app, this process:

  1. Joins the LiveKit room as a real participant (identity agent:<roomId>).
  2. Publishes a synthesized voice track via ElevenLabs (or stays silent in --text-only).
  3. Listens on a LiveKit data channel for prompt.user_turn events from any participant.
  4. Drives the host's local Claude Code (@anthropic-ai/claude-agent-sdk) or Codex CLI (codex exec --json) agent with the prompt.
  5. Streams text deltas, tool calls, and run lifecycle events back to the room — UI gets subtitles + activity timeline, audio track gets the spoken response.

Trust mode by default: the agent runs under the host's existing CLI permission settings, no in-room approval gate.

Quickstart (end users)

You don't need to clone this repo. The bridge is published to npm and runs via npx. The only prerequisites are Node.js (LTS) and your preferred local agent CLI installed + logged in.

# 1. Install your local agent + sign in
#    Claude:  npm i -g @anthropic-ai/claude-code   &&  claude
#    Codex:   npm i -g @openai/codex                &&  codex login

# 2. In your VoxAgent room, click "Pair local agent". Copy the command
#    shown in the dialog. It looks like this (the web UI fills in the
#    code, room-specific api-url, and your selected flags):

npx -y @voxagent/bridge@latest \
  --code 123456 \
  --api-url https://vox-agent-web.vercel.app \
  --agent claude \
  --cwd /path/to/your/workspace

The --api-url flag is the single most common source of confusion: pair codes are scoped to the server that minted them, so the URL on the bridge command MUST match the URL of the web app you generated the code on. The "Pair local agent" UI in the room embeds the correct value automatically; copy the whole command rather than re-typing flags.

Bring-your-own-key for TTS is delivered through the pair flow itself. Save your ElevenLabs / OpenAI key once in /settings/integrations on the web app — the pair payload ships those keys to the bridge process, no export needed in your shell.

Development (contributors)

If you're working on the bridge source directly, the monorepo workflow is:

# Run the web app
pnpm --dir apps/web dev

# In another terminal, run the bridge under tsx watch
pnpm --filter @voxagent/bridge dev -- --code 123456 --agent claude

Or after a build:

pnpm --filter @voxagent/bridge build
node packages/bridge/dist/cli.js --code 123456 --agent claude

Flags

| Flag | Env | Default | Notes | |------|-----|---------|-------| | --code <CODE> | VOXAGENT_PAIR_CODE | (interactive prompt) | 6-digit code from the room UI | | --api-url <URL> | VOXAGENT_API_URL | http://localhost:3000 | VoxAgent web app base URL | | --agent <BACKEND> | VOXAGENT_AGENT | claude | claude or codex | | --cwd <PATH> | VOXAGENT_CWD | process.cwd() | Working directory the agent runs inside | | --voice <VOICE_ID> | VOXAGENT_VOICE_ID | 21m00Tcm4TlvDq8ikWAM | ElevenLabs voice ID | | --model <MODEL_ID> | VOXAGENT_MODEL_ID | eleven_turbo_v2_5 | ElevenLabs model ID | | --text-only | VOXAGENT_TEXT_ONLY=1 | false | Skip TTS — text-only mode (subtitles in UI, no voice) | | --verbose | — | false | Debug logs |

VOXAGENT_ELEVENLABS_API_KEY (or ELEVENLABS_API_KEY) is required unless --text-only is set.

Architecture

See /docs/learning-reviews/ and the refactor plan at /Users/tanmay/.claude/plans/ok-i-want-you-refactored-wadler.md for full background.

Browser  ──LiveKit data channel──▶  Bridge  ──@anthropic-ai/claude-agent-sdk──▶ Claude Code
   ▲                                  │                                       (or `codex exec --json`)
   │                                  ▼
   └────agent voice track────  AudioSource ◀── ElevenLabs PCM ◀── text deltas

Testing

pnpm --filter @voxagent/bridge test

Unit tests mock the SDK and subprocess so they run offline.