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

pi-xai-tts

v0.0.3

Published

A pi extension to read aloud the last AI assistant output using xAI TTS

Readme

pi-xai-tts

A pi extension for voice interaction: speech-to-text input via microphone, and text-to-speech playback of assistant responses — powered by xAI.

Installation

Install via npm:

$ pi install npm:pi-xai-tts

Or install from git:

$ pi install git:github.com/richardanaya/pi-xai-tts

Configuration

Create a JSON file at ~/.pi/xai-tts.json with your API key:

{
  "xaiApiKey": "your-api-key-here",
  "voice": "leo"
}

Replace your-api-key-here with your actual xAI API key. You can get one at https://console.x.ai/

Optional Settings

  • voice: The voice to use for speech synthesis. Options:

    • leo (default) - Authoritative, strong
    • eve - Energetic, upbeat
    • ara - Warm, friendly
    • rex - Confident, clear
    • sal - Smooth, balanced
  • language: BCP-47 language code (e.g., en, zh, pt-BR). Defaults to en.

  • speed: Playback speed multiplier (e.g., 0.5 for half speed, 1.5 for 1.5x speed, 2.0 for double speed). Defaults to 1.0 (normal speed). Range: 0.5 to 2.0.

Usage

After the AI responds to your message, type /listen to hear the last assistant message read aloud.

To stop playback early, type /listen-stop.

Auto-Listen

To automatically hear every assistant response without typing /listen each time:

/auto-listen-on

To disable automatic playback:

/auto-listen-off

Voice Input (Speech-to-Text)

Press F12 to start recording your voice. A mic widget appears above the editor while recording. Press F12 again to stop — the audio is transcribed via xAI and sent as your prompt.

F12 also stops playback. If the assistant is currently speaking, pressing F12 will stop the audio immediately.

Accent / Dialect Mode

To make the AI speak with a specific accent or dialect (affecting both text responses and TTS output):

# Make the AI talk like a pirate
/add-accent talk like a pirate

# Remove the accent
/remove-accent

The accent is persisted in your config file and injected into the system prompt before every agent turn, so the AI writes in character for all responses. This makes TTS output sound natural and consistent.

Examples

# Ask pi something
> What is the capital of France?

[pi responds with "The capital of France is Paris..."]

# Listen to the response
/listen

# The response will be read aloud using xAI TTS

# Stop playback early if needed
/listen-stop

# Press F12, speak, then press F12 again to transcribe and send

# Enable pirate speak for all future responses
/add-accent talk like a pirate

# Remove it later
/remove-accent

# Auto-play every assistant response
/auto-listen-on

# Return to manual playback
/auto-listen-off

Requirements

Playback (TTS)

Requires FFmpeg to be installed, specifically the ffplay command.

  • macOS: brew install ffmpeg
  • Ubuntu/Debian: sudo apt-get install ffmpeg
  • Fedora: sudo dnf install ffmpeg
  • Windows: Download from https://ffmpeg.org/download.html and add to PATH

Voice Input (STT)

Requires one of the following audio recording tools:

  • sox (preferred — most portable)

    • macOS: brew install sox
    • Ubuntu/Debian: sudo apt-get install sox libsox-fmt-all
    • Fedora: sudo dnf install sox
  • arecord (Linux ALSA, usually pre-installed)

  • ffmpeg (also used for playback)

API Reference

This extension uses xAI's audio APIs:

  • Text-to-Speech

    • Endpoint: POST https://api.x.ai/v1/tts
    • Docs: https://docs.x.ai/developers/model-capabilities/audio/text-to-speech
  • Speech-to-Text

    • Endpoint: POST https://api.x.ai/v1/audio/transcriptions
    • Docs: https://docs.x.ai/developers/model-capabilities/audio/speech-to-text