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

voicenest

v0.1.2

Published

Turn Every Visitor Into a Conversation. Embeddable voice widget for Pipecat (Daily + SmallWebRTC).

Readme

VoiceNest

Turn Every Visitor Into a Conversation.

VoiceNest is a lightweight, embeddable voice widget delivered via CDN that enables websites and web applications to instantly connect users with Pipecat-powered voice agents. It eliminates complex frontend work and allows developers to add real-time voice interaction with just a few lines of code.

The widget is customizable, easy to deploy, and supports multiple transport modes used by Pipecat Cloud. Developers can quickly configure endpoints, style the widget, and enable live conversations through a simple call interface.

VoiceNest is ideal for customer support, AI assistants, onboarding flows, lead qualification, and interactive web experiences.


Features

  • Easy CDN integration (no build step required)
  • Supports Pipecat Cloud voice agents
  • Multiple transport modes
  • Simple configuration
  • Customizable position and styling
  • Built-in start and stop session handling
  • Production-ready voice interaction
  • 🎉 NEW: Real-time voice animations
    • Wave animations when user speaks
    • OpenAI-style circular animations when bot speaks
    • Listening state with gentle wave pulse
    • Connected state with glow effects
    • Theme-aware animation colors
    • Mobile responsive design

Supported Transport Modes

| Transport | Recommended Use | |-----------|-----------------| | daily | Default option for Pipecat Cloud agents using Daily transport. | | small-webrtc | For agents deployed with Pipecat SmallWebRTC transport. |

When using a startEndpoint, you must call stopSession when the call ends.
Stopping a session requires a private API key. Public keys will return 401 Unauthorized.


Quick Start

Add VoiceNest to your page via CDN and initialize it with your agent configuration.


Usage

1. Daily Transport (Default)

Most Pipecat Cloud agents use Daily transport.

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/voicenest.min.js"></script>
<script>
  VoiceNest.init({
    startEndpoint: "https://api.pipecat.daily.co/v1/public/YOUR-AGENT/start",
    apiKey: "pk_...",
    privateApiKey: "sk_...", // Required for stopping sessions
    transport: "daily",

    position: "bottom-right",
    offset: { x: 24, y: 24 },
    color: "#2563eb",

    onStatusChange: (status) => console.log(status),
    onError: (error) => console.error(error),
  });
</script>

SmallWebRTC

Use this when your Pipecat agent is deployed with SmallWebRTC transport.

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/voicenest.min.js"></script>
<script>
  VoiceNest.init({
    startEndpoint: "https://api.pipecat.daily.co/v1/public/YOUR-AGENT/start",
    apiKey: "pk_...",
    privateApiKey: "sk_...",
    transport: "small-webrtc",

    position: "bottom-right",
    offset: { x: 24, y: 24 },
    color: "#2563eb",

    onStatusChange: (status) => console.log(status),
    onError: (error) => console.error(error),
  });
</script>

VoiceNest automatically handles session setup, offer exchange, and communication via RTVI protocol.

Direct Connection (Without /start Endpoint)

You can also connect directly to existing Daily or WebRTC URLs.

Daily Room

VoiceNest.init({
  roomUrl: "https://your.daily.co/room",
  token: "optional-room-token",
});

SmallWebRTC Signaling

VoiceNest.init({
  webrtcUrl: "https://your-server.com/api/offer",
  transport: "small-webrtc",
});

Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | startEndpoint | startUrl | string | — | Pipecat /start URL | | transport | "daily" | "small-webrtc" | "daily" | Transport type | | apiKey | string | null | Pipecat Cloud public API key (for start, Daily, offer) | | privateApiKey | string | null | Pipecat Cloud private API key (required for stop; public key returns 401) | | roomUrl | string | — | Direct Daily room URL | | webrtcUrl | string | — | Direct SmallWebRTC signaling URL | | token | string | null | Daily token (with roomUrl) | | position | string | "bottom-right" | Widget position | | offset | object | {x:20,y:20} | Pixel offset | | color | string | "#2563eb" | Call button color | | theme | "dark" | "white" | "device" | "dark" | Widget theme. device follows system preference | | style | "card" | "circle-round" | "minimal" | "wave" | "circle-mode" | "card" | Widget style. card = card with status; circle-round = circular buttons, no card; minimal = buttons only, no card; wave = card with wave animations; circle-mode = OpenAI-style circular interface | | shadow | false | true | string | — | Card shadow. false = none; true = theme default; string = custom CSS box-shadow | | glow | false | true | string | — | Call button glow. true = glow using color; string = glow color (e.g. "#2563eb") | | glowIntensity | 0–100 (or 0–1) | 45 | Glow opacity. 0 = invisible, 100 = full | | glowSpread | number (px) | 8 | How far the glow extends from the button | | glowBlur | number (px) | 28 | Glow softness. Higher = softer, larger halo |

Voice Animations

VoiceNest now includes stunning real-time voice animations that provide visual feedback during conversations:

Animation Types

  • Wave Style: Animated wave bars integrated into the card where status text normally appears
  • Circle Mode: OpenAI-inspired interface with large circular button and gradient ring animations
  • Listening State: Gentle animations when waiting for user input
  • Speaking States: Dynamic animations that respond to both user and bot voice activity

Animation Features

  • Automatic voice activity detection for both user and bot
  • Smooth transitions between different speaking states
  • Theme-aware colors that match your chosen theme
  • Mobile responsive with optimized sizes for smaller screens
  • Professional, modern design inspired by leading voice AI interfaces

The animations work automatically once you initialize VoiceNest - no additional configuration required!

New Animation Styles

Wave Style

Card layout with animated wave bars next to status text. Waves only animate when someone is speaking:

VoiceNest.init({
  startEndpoint: "https://api.pipecat.daily.co/v1/public/YOUR-AGENT/start",
  apiKey: "pk_...",
  privateApiKey: "sk_...",
  style: "wave",
  theme: "dark"
});

Wave Features:

  • Waves animate only during speech (user = blue, bot = green)
  • Status text appears next to the wave display
  • Smooth, responsive animations that react to voice activity

Circle Mode (OpenAI Style)

Compact interface that expands to show an animated orb when active, just like OpenAI's Advanced Voice Mode:

VoiceNest.init({
  startEndpoint: "https://api.pipecat.daily.co/v1/public/YOUR-AGENT/start",
  apiKey: "pk_...",
  privateApiKey: "sk_...",
  style: "circle-mode",
  theme: "white"
});

Circle Mode Features:

  • Initially compact: Black rounded widget with buttons at bottom, no circle visible
  • Empty space above: Reserved space for orb that appears when active
  • Expands on call: When call button clicked, widget expands upward and orb appears
  • Fluid orb animation: Professional gradient sphere with glow, ripples, and specular highlights
  • Voice-reactive: Orb changes color and scale (blue for user, green for bot speaking)
  • OpenAI-inspired design: Matches Advanced Voice Mode's exact behavior and visual language

CDN Installation

You can load VoiceNest using either CDN provider.

<!-- jsDelivr -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/voicenest.min.js"></script>

<!-- unpkg -->
<script src="https://unpkg.com/[email protected]/dist/voicenest.min.js"></script>

Typical Use Cases

VoiceNest can power:

  • Customer support agents
  • AI assistants
  • Lead qualification bots
  • Booking and onboarding assistants
  • Product support voice agents
  • Interactive website experiences

Summary

VoiceNest makes adding voice AI to your website fast and effortless. With minimal configuration, developers can deploy production-ready voice interactions powered by Pipecat Cloud.

Just embed, configure, and start talking.