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

meeting-whisperer

v0.1.0

Published

CLI tool that transcribes audio/video files using AssemblyAI's API and outputs formatted markdown transcripts

Readme

Meeting Whisperer

A powerful CLI tool that transcribes audio and video files using AssemblyAI's API and outputs beautifully formatted markdown transcripts with speaker identification.

Features

  • 🎯 Speaker Diarization: Automatically detects and separates different speakers
  • 🏷️ Interactive Speaker Labeling: Identify speakers with contextual examples
  • 📝 Markdown Output: Clean, formatted transcripts ready for documentation
  • 💾 Resume Capability: Gracefully handle interruptions and resume processing
  • 🔄 Progress Tracking: Visual feedback during transcription process
  • 🔐 Secure API Key Storage: Safely store your AssemblyAI credentials

Installation

From npm (when published)

npm install -g meeting-whisperer

From source

git clone <repository-url>
cd meeting-whisperer
npm install
npm run build
npm link

Usage

Transcribe an audio/video file

meeting-whisperer transcribe /path/to/your/audio-file.mp4

Supported formats: MP3, MP4, WAV, M4A, FLAC, and many more.

View help

meeting-whisperer --help
meeting-whisperer help transcribe

Remove stored API key

meeting-whisperer remove-api-key

Getting Started

  1. Get an AssemblyAI API Key

    • Sign up at AssemblyAI
    • Get your API key from the dashboard
  2. First Run

    • Run any transcribe command
    • You'll be prompted to enter your API key
    • The key is securely stored for future use
  3. Transcribe Your File

    meeting-whisperer transcribe my-meeting.mp4
  4. Speaker Identification

    • The tool will show you examples of each detected speaker
    • You can identify speakers, skip them, or try again later
    • Context is provided to help you identify who's speaking
  5. Get Your Transcript

    • A markdown file will be created in the same directory as your audio file
    • Format: original-filename-transcript.md

Example Output

# Meeting Transcript

*File: team-meeting.mp4*
*Duration: 45 minutes*
*Processed: 2024-01-15 at 14:30*

## Speakers
- **Alice Johnson**
- **Bob Smith**
- **Speaker C** (unidentified)

## Transcript

[0:15] **Alice Johnson**: Welcome everyone to today's team meeting...

[2:45] **Bob Smith**: Thanks Alice. I wanted to start by discussing...

Development

Prerequisites

  • Node.js (v18 or higher)
  • TypeScript
  • npm

Setup

git clone <repository-url>
cd meeting-whisperer
npm install

Development Scripts

# Run in development mode
npm run dev /path/to/audio-file.mp4

# Build the project
npm run build

# Test the built version
node dist/index.js transcribe /path/to/audio-file.mp4

Building

The project uses TypeScript and compiles to JavaScript in the dist/ folder:

npm run build

This creates:

  • dist/index.js - Main CLI entry point
  • dist/assembly-whisperer.js - Core functionality
  • Type definitions and source maps

Publishing

Prepare for Publishing

  1. Update version in package.json
  2. Build the project:
    npm run build
  3. Test the build:
    node dist/index.js --help

Publish to npm

# Login to npm (first time only)
npm login

# Publish (will run prepublishOnly script automatically)
npm publish

The prepublishOnly script automatically runs npm run build before publishing.

Verify Publication

# Check if published successfully
npm view meeting-whisperer

# Test global installation
npm install -g meeting-whisperer
meeting-whisperer --help

Configuration

Configuration files are stored in ~/.assembly-whisperer/:

  • keys.json - API credentials
  • tmp/draft.json - Resume data for interrupted sessions

Troubleshooting

"Invalid AssemblyAI API key"

  • Verify your API key is correct
  • Remove and re-enter: meeting-whisperer remove-api-key

"Audio file does not exist"

  • Check the file path is correct
  • Ensure the file exists and is readable

"Failed to connect to AssemblyAI"

  • Check your internet connection
  • Verify AssemblyAI service status

Resume Interrupted Sessions

If the process is interrupted:

  1. Run the same command again
  2. Choose "Resume previous session?" when prompted
  3. The tool will continue where it left off

API Reference

AssemblyWhisperer Class

The main class exported from assembly-whisperer.js:

import { AssemblyWhisperer } from 'meeting-whisperer';

const whisperer = new AssemblyWhisperer();
await whisperer.run('/path/to/audio-file.mp4');

How it works with npx

When you publish to npm, users can run your tool in several ways:

  1. Global installation:

    npm install -g meeting-whisperer
    meeting-whisperer transcribe audio.mp4
  2. Using npx (recommended):

    npx meeting-whisperer transcribe audio.mp4
  3. Local installation:

    npm install meeting-whisperer
    npx meeting-whisperer transcribe audio.mp4

The bin field in package.json tells npm to create a meeting-whisperer command that points to dist/index.js. The shebang #!/usr/bin/env node at the top of index.js tells the system to run it with Node.js.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

ISC

Credits

Built with: