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

claude-speaker

v0.1.0

Published

Claude Code plugin for text-to-speech plan narration using ElevenLabs

Readme

Claude Speaker

npm version License: MIT

A Claude Code plugin that automatically reads plans aloud using ElevenLabs text-to-speech when Claude enters plan mode.

Features

  • 🎙️ Automatically detects when Claude creates a plan and reads it aloud
  • 🗣️ Natural speech formatting - plans sound conversational, not robotic
  • 🎚️ Configurable voices and speech settings via ElevenLabs
  • 🔇 Easy enable/disable with slash commands
  • ⚡ Simple setup process

Installation

Global Installation (Recommended)

npm install -g claude-speaker

Local Installation

npm install claude-speaker

Quick Setup

npx claude-speaker setup

Setup

  1. Get an ElevenLabs API Key

    • Sign up at ElevenLabs
    • Go to your profile settings
    • Copy your API key
  2. Run Setup

    claude-speaker setup
    # or if installed locally
    npx claude-speaker setup

    This will:

    • Ask for your ElevenLabs API key
    • Let you choose from available voices
    • Configure voice settings
    • Show you how to integrate with Claude Code
  3. Configure Claude Code Hooks

    To configure the hooks, add the following to your Claude Code settings JSON file. This file is typically located in your Claude Code configuration directory, often found at ~/.claude/settings.json or a similar path depending on your setup:

    {
      "hooks": {
        "Stop": [
          {
            "hooks": [
              {
                "type": "command",
                "command": "/path/to/claude-speaker/src/hooks/plan-detector.js"
              }
            ]
          }
        ]
      }
    }
  4. Create Enable/Disable Commands (Optional)

    Create ~/.claude/commands/speaker-enable.md:

    Enable Claude Speaker
    
    !npx claude-speaker enable

    Create ~/.claude/commands/speaker-disable.md:

    Disable Claude Speaker
    
    !npx claude-speaker disable

Usage

Once configured, Claude Speaker will automatically:

  1. Detect when Claude generates a plan (when you see "Here is Claude's plan:")
  2. Reformat the plan for natural speech
  3. Send it to ElevenLabs for text-to-speech
  4. Play the audio

Commands

  • /speaker-enable - Enable Claude Speaker (if you created the command)
  • /speaker-disable - Disable Claude Speaker (if you created the command)
  • npx claude-speaker enable - Enable from terminal
  • npx claude-speaker disable - Disable from terminal
  • npx claude-speaker setup - Reconfigure settings

Configuration

Configuration is stored in ~/.claude-speaker/config.json:

{
  "enabled": true,
  "elevenLabsApiKey": "your-api-key",
  "voiceId": "selected-voice-id",
  "voiceName": "Selected Voice",
  "modelId": "eleven_multilingual_v2",
  "voiceSettings": {
    "stability": 0.75,
    "similarityBoost": 0.75,
    "style": 0.5,
    "useSpeakerBoost": true
  }
}

How It Works

  1. Plan Detection: A hook monitors Claude's output for plan generation
  2. Natural Formatting: Plans are reformatted to sound conversational:
    • Technical terms → Natural speech
    • Bullet points → Flowing sentences
    • Code references → Readable descriptions
  3. Text-to-Speech: ElevenLabs converts the formatted text to audio
  4. Playback: Audio is played automatically and cleaned up

Troubleshooting

  • No audio? Check if Claude Speaker is enabled: npx claude-speaker enable
  • API errors? Verify your ElevenLabs API key: npx claude-speaker setup
  • Hook not working? Ensure the hook path in Claude Code settings is absolute
  • Installation issues? Try installing globally with npm install -g claude-speaker

Uninstallation

Remove the npm package

For global installation:

npm uninstall -g claude-speaker

For local installation:

npm uninstall claude-speaker

Clean up configuration

  1. Remove the configuration directory:

    rm -rf ~/.claude-speaker
  2. Remove the hook from your Claude Code settings JSON file (typically ~/.claude/settings.json)

  3. Remove the command files (if you created them):

    rm ~/.claude/commands/speaker-enable.md
    rm ~/.claude/commands/speaker-disable.md

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments