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 🙏

© 2025 – Pkg Stats / Ryan Hefner

say2

v1.1.0

Published

Interactive text-to-speech CLI with multiple voices using ElevenLabs API

Readme

Say2 CLI

An interactive text-to-speech command-line interface powered by ElevenLabs API. Features multiple voice options, persistent settings, and an intuitive menu system.

Features

  • 🎭 Multiple Voices: Choose from 24 different voices with various accents and personalities
  • 💾 Persistent Settings: Save your preferred voice and API key for quick access
  • 🎨 Interactive Menu: User-friendly interface with colorful menus
  • Quick Mode: Speak text instantly with saved preferences
  • 🔐 Secure API Key Storage: Store your ElevenLabs API key locally

Installation

npm install -g say2

Usage

Interactive Mode

Run without arguments to enter the interactive menu:

say2

This opens a menu where you can:

  • Choose and save a default voice
  • Enter text to speak
  • Manage your API key and settings
  • Use Quick Speak with your saved voice

Direct Mode

Speak text directly using your saved voice:

say2 "Hello, world!"

Override Voice

Use a specific voice for one-time use:

say2 "Hello!" -u rachel

List Available Voices

say2 -l

First Time Setup

  1. Get an API Key: Sign up at ElevenLabs to get your API key

  2. Run Say2:

    say2
  3. Configure Settings:

    • Go to Settings → Set API Key
    • Enter your ElevenLabs API key (it will be saved securely)
    • Choose your default voice
  4. Start Speaking:

    say2 "Your text here"

Configuration

Settings are stored in ~/.say2 including:

  • Default voice preference
  • ElevenLabs API key

Command Options

Options:
  -u, --user <voice>    Voice to use (overrides default)
  -k, --api-key <key>   ElevenLabs API key (temporary override)
  -l, --list-voices     List available voices
  -h, --help           Display help
  -V, --version        Display version

Available Voices

  • johnny - Male, American, casual
  • rachel - Female, warm, professional
  • bella - Female, soft, gentle
  • josh - Male, deep, confident
  • arnold - Male, strong, authoritative
  • adam - Male, middle-aged, clear
  • antoni - Male, well-rounded, smooth
  • elli - Female, young, bright
  • sam - Male, raspy, character
  • domi - Female, confident, mature
  • dave - Male, British, conversational
  • fin - Male, Irish, friendly
  • sarah - Female, American, news
  • charlie - Male, casual, relaxed
  • emily - Female, calm, soothing
  • charlotte - Female, seductive, sultry
  • matilda - Female, warm, motherly
  • matthew - Male, deep, narrator
  • james - Male, Australian, calm
  • joseph - Male, British, articulate
  • harry - Male, anxious, nervous
  • dorothy - Female, elderly, wise
  • george - Male, British, warm

Requirements

  • Node.js 16.0.0 or higher
  • ElevenLabs API key (free tier available)
  • Audio playback capability on your system

Troubleshooting

No sound playing?

  • Ensure your system has audio playback capability
  • Check volume settings
  • On Linux, you may need to install mpg123 or mplayer

API Key issues?

  • Verify your API key is correct in Settings
  • Check your ElevenLabs account for API limits
  • Ensure you have an active internet connection

License

MIT

Contributing

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

Support

For issues and feature requests, please visit the GitHub repository.