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

sayclip

v0.3.2

Published

Push-to-talk: local speech transcription straight to your clipboard

Downloads

1,802

Readme

sayclip

Push-to-talk: local speech transcription straight to your clipboard.

Читать по-русски: README_RU.md

About

Hold a hotkey, say something, release it — the text lands in your clipboard a moment later. No cloud, no API keys: transcription runs fully locally via whisper.cpp.

  • Genuine push-to-talk — recording starts on key-down and stops on key-up, not a toggle
  • Fully local transcription, nothing leaves your machine
  • Runs in the foreground or as a background daemon, with autostart on login
  • Optional auto-paste: paste automatically right after transcription, or double-tap the hotkey to paste on demand
  • Escape cancels an in-progress recording
  • Switchable model/language/prompt, no config file editing required
  • Linux and Windows
[hold Right Ctrl] "remind me to deploy the staging branch after lunch"
                                    ↓
                    copied to clipboard, paste anywhere

System requirements

  • a microphone
  • Linux with an X11 session, or Windows 10/11 (macOS/Wayland are not supported yet)
  • Node.js ≥ 18 — only if you install via npm; the Windows installer bundles its own Node runtime, no separate install needed

whisper.cpp is a required dependency but not something you set up yourself: on first run sayclip offers to download a small prebuilt runtime + model automatically. See Installation below.

Installation

Linux

npm install -g sayclip

Verify:

sayclip --version
sayclip --help

Dependencies (usually already installed on Ubuntu):

  • arecord (package alsa-utils) — microphone recording. Check: which arecord
  • xclip (or xsel / wl-copy) — clipboard access. Check: which xclip
  • notify-send (package libnotify-bin) — result notifications. Check: which notify-send
  • an X11 session — the global hotkey listener needs XRecord, not available on Wayland

The global hotkey listener (uiohook-napi) ships with prebuilt native binaries — no extra system package needed for it.

Windows

Two ways to install:

Option A — Installer (recommended)

Download sayclip-setup.exe from the latest release and run it. No Node.js/npm required — the installer bundles its own Node runtime. Setup asks for your microphone and model on first launch; change anything later from the tray icon → Settings....

Option B — npm (for developers)

npm install -g sayclip
sayclip

Same CLI as Linux (sayclip reconfig, start, stop, ...).

Either way, ffmpeg must be on PATH — it's used both for recording and for auto-detecting your microphone. Install it yourself:

winget install ffmpeg

or download a build from ffmpeg.org and add it to PATH. The installer checks for ffmpeg up front and stops with a clear message if it's missing.

Why isn't ffmpeg bundled? Most prebuilt Windows ffmpeg builds (including the one sayclip was tested with) include GPL-licensed components, which makes redistributing the binary as a sayclip asset a real compliance burden (license text, copyright notices, a source-code offer). Since ffmpeg is a required dependency either way, it's simpler to have you install it from an official source directly.

whisper.cpp: same as Linux — no manual build needed, auto-downloaded on first run (or point sayclip at your own build).

Configuration

Settings (whisper binary/model path, recognition language, initial prompt, microphone, notifications, auto-paste, autostart) live in ~/.sayclip/config.json (%USERPROFILE%\.sayclip\config.json on Windows). On first use, sayclip asks what it needs and saves it.

Change any setting later:

sayclip reconfig

On a Windows installer build these questions show as a small popup window instead of a terminal prompt — same settings, same file, different UI. Console/npm installs on both platforms always use the terminal.

Usage

sayclip

| Command | What it does | |---|---| | sayclip | run in the foreground, hold Right Ctrl to record | | sayclip start | run the same thing in the background | | sayclip stop | stop the background instance | | sayclip restart | restart the background instance | | sayclip transcribe <file.wav> | transcribe a .wav file and print the text | | sayclip reconfig | change whisper binary/model/language/prompt/microphone/autostart/etc. | | sayclip --version / -v | show version | | sayclip --help / -h | show help |

The hotkey is fixed to Right Ctrl for now (hold to record, release to stop) — no rebinding option yet.

  • Escape while recording cancels it — nothing is transcribed or copied.
  • Double-tap the hotkey (two quick taps) to paste the clipboard immediately — only if auto-paste is enabled in sayclip reconfig.
  • With auto-paste enabled, the transcribed text is also pasted automatically right after transcription, unless you pressed another key in the meantime (e.g. switched windows) — that cancels the auto-paste.

Autostart on login

Run sayclip reconfig and choose to enable/disable autostart — this is fully automatic on both platforms (a systemd --user unit on Linux, a registry Run key on Windows), no manual setup needed.

License

MIT