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

listener-ai

v2.11.1

Published

A lightweight desktop application for recording and transcribing meetings with AI-powered notes.

Readme

Listener.AI

Listener.AI is a desktop meeting recorder and CLI that turns audio into searchable AI meeting notes. It records meetings, imports existing audio, transcribes with Gemini, generates Korean summaries, key points, and action items, then keeps everything in a local archive you can send to Notion or Slack.

Available as a desktop app via GitHub Releases and as a CLI tool via npm.

Listener.AI desktop home screen

What It Does

  1. Record a meeting from your microphone, or import an existing audio file.
  2. Capture timestamped live highlights while the meeting is running.
  3. Transcribe the audio and generate a structured meeting note.
  4. Search, reopen, merge, export, or re-transcribe past recordings.
  5. Share completed notes to Notion or Slack when your integrations are configured.

Desktop App

Download from GitHub Releases:

  • macOS: Intel (x64) and Apple Silicon (arm64) DMG
  • Windows: x64 installer

The desktop app includes:

  • One-click recording with meeting title, mic selection, and elapsed timer
  • Optional macOS system audio capture for Zoom, Meet, Teams, browser tabs, and other app audio
  • Drag-and-drop or paste import for audio files
  • Live highlights and timestamped flags during recording
  • Recent recordings with search, transcript status, merge, Finder reveal, and M4A export actions
  • Meeting detection and external display prompts for recording automation
  • Automatic FFmpeg setup when transcription needs it
  • Local configuration shared with the CLI

Listener.AI settings and integrations

CLI

Install

npm install -g listener-ai

Or use directly:

npx listener-ai <audio-file>

Prerequisites

  • FFmpeg installed on your system (brew install ffmpeg / apt install ffmpeg)
  • One of:
    • Google Gemini API key from Google AI Studio, or
    • ChatGPT Plus / Pro subscription (Codex OAuth)

Setup

Pick one AI provider. Gemini uses a static API key; Codex uses a ChatGPT subscription via OAuth sign-in.

# Option A -- Gemini
listener config set geminiApiKey <your-key>

# Option B -- Codex (uses your ChatGPT Plus/Pro account)
listener codex login                   # browser sign-in, sets aiProvider=codex

Optional Notion integration:

listener config set notionApiKey <your-key>
listener config set notionDatabaseId <your-id>

Optional Slack integration:

listener config set slackWebhookUrl <your-webhook-url>
listener config set slackAutoShare true  # Auto-share when auto mode is enabled

Usage

listener recording.mp3                # Transcribe to the default output directory
listener recording.m4a --output ./    # Transcribe to the current directory
listener transcript recording.wav     # Print transcript to stdout without summary
listener transcript recording.wav -o out.txt
                                      # Write transcript to a file
listener transcript recording.wav --prompt "Translate to English while transcribing"
                                      # Override the default transcription instruction
listener list                         # List saved transcriptions
listener show <ref>                   # Print a saved meeting summary
listener search "roadmap"             # Search past meeting notes
listener export <ref> --transcript    # Export a saved note with transcript
listener merge <ref1> <ref2>          # Merge and re-transcribe multiple notes
listener ask "What did we decide?" --ref <ref>
                                      # Ask about a saved meeting
listener codex login                  # Sign in with ChatGPT and set aiProvider=codex
listener codex status                 # Show Codex OAuth + provider/model status
listener codex logout                 # Clear stored Codex OAuth credentials
listener config list                  # Show all config values with secrets masked
listener config get <key>             # Print one config value
listener config set <key> <value>     # Set a config value
listener config unset <key>           # Clear a config value
listener config path                  # Print config file path
listener --version                    # Print CLI version
listener --help                       # Show usage

Supported formats: mp3, m4a, wav, ogg, flac, aac, wma, opus, webm

Full meeting-note output is a folder containing transcript.md and summary.md with speaker identification, Korean summary, key points, and action items. Transcript-only output can print plain text to stdout or write directly to a file.

Configuration

Config is stored in your system application data folder:

  • macOS: ~/Library/Application Support/listener-ai/config.json
  • Windows: %APPDATA%/listener-ai/config.json
  • Linux: ~/.config/listener-ai/config.json

CLI and desktop app share the same config file. Existing installs that already have a Listener.AI data folder continue to use it when listener-ai is not present.

Getting API Keys

Google Gemini API

  1. Visit Google AI Studio
  2. Click "Create API Key"
  3. Copy the generated key

Codex OAuth (ChatGPT Plus/Pro)

  1. Run listener codex login (or sign in from the desktop app's Settings panel).
  2. Complete the browser sign-in to ChatGPT.
  3. Confirm listener codex status shows codexOAuthConfigured=true.

Codex transcription, summarization, and the Ask Listener agent all go through your ChatGPT subscription -- no separate API key needed.

Notion Integration

  1. Go to Notion Integrations
  2. Create a new integration named "Listener.AI"
  3. Grant permissions: Read, Insert, Update content
  4. Copy the "Internal Integration Token"
  5. Share your database with the integration
  6. Get database ID from URL: notion.so/workspace/DATABASE_ID

Slack Integration

  1. Create a Slack app with an Incoming Webhook.
  2. Add the webhook to the channel where meeting notes should be posted.
  3. Copy the webhook URL and save it with listener config set slackWebhookUrl <url>.

Development

pnpm install
pnpm run start        # Run Electron app
pnpm run dev:renderer # Run renderer-only preview with sample data
pnpm run cli          # Run CLI locally
pnpm run dist:mac     # Build macOS
pnpm run dist:win     # Build Windows

License

MIT