Install
summarize ships as a single npm package and a Homebrew formula. The CLI works on its own; the Chrome Side Panel needs the local daemon (covered in Chrome extension).
#Requirements
- Node 24 or newer.
- macOS, Linux, or Windows. Containers work too — see Notes below.
- Optional:
ffmpeg,yt-dlp,tesseractfor media-heavy features.
#CLI
#npm (cross-platform)
npm i -g @steipete/summarize
#Homebrew (macOS, Linux)
brew install summarize
The Homebrew formula lives in homebrew/core. If Homebrew isn't available, use the npm route.
#npx (no install)
npx -y @steipete/summarize "https://example.com"
Useful for one-shot summaries on a fresh machine.
#Library use
If you want extraction without the CLI, install the trimmed library:
npm i @steipete/summarize-core
import { createLinkPreviewClient } from "@steipete/summarize-core/content";
#Optional dependencies
These unlock media features but are not required for plain web pages.
| Tool | Required for |
|---|---|
ffmpeg | --slides extraction; many local media + transcription flows |
yt-dlp | YouTube slide extraction and some remote media flows |
tesseract | OCR text on extracted slides via --slides-ocr |
whisper.cpp (binary on PATH) | Local audio transcription fallback (preferred over cloud when available) |
#macOS
brew install ffmpeg yt-dlp
brew install tesseract # optional, for --slides-ocr
brew install whisper-cpp # optional, local Whisper
#Linux
sudo apt install ffmpeg yt-dlp tesseract-ocr
# whisper.cpp: build from source or fetch a binary release
#Optional cloud transcription
Set any of these env vars to enable a cloud transcription path. summarize picks one automatically (Groq is preferred for speed when available).
export GROQ_API_KEY=...
export ASSEMBLYAI_API_KEY=...
export GEMINI_API_KEY=...
export OPENAI_API_KEY=...
export FAL_KEY=...
If --slides is enabled and ffmpeg/yt-dlp are missing, summarize logs a warning and continues without slides — it never fails the run.
#Provider keys
Set the keys for the providers you want to use. Most flows work with at least one; missing keys only block their respective --model namespaces.
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=...
export GEMINI_API_KEY=...
export XAI_API_KEY=xai-...
export NVIDIA_API_KEY=nvapi-...
export OPENROUTER_API_KEY=or-...
export Z_AI_API_KEY=...
export GITHUB_TOKEN=ghp-... # for github-copilot/* models
Full list and routing details: LLM overview. For free OpenRouter models, run summarize refresh-free once after setting OPENROUTER_API_KEY.
#Verify the install
summarize --version
summarize "https://en.wikipedia.org/wiki/Llama" --extract --format md | head
#Local Docs Preview
Build and preview the static docs site from the repo root with:
./scripts/docs-serve.sh
Use PORT=4001 ./scripts/docs-serve.sh to pick another port.
#Notes (Windows / containers)
- Windows native:
summarizeruns under Node 24. The daemon registers a Scheduled Task on first install. - Windows containers:
summarize daemon installstarts the daemon for the current container session but does not register a Scheduled Task. Run the install on each startup or add it to the container entrypoint, and publish port8787so a host browser can reach the daemon. - WSL2: treat as Linux. The daemon installs as a systemd user service if
systemdis available; otherwise runsummarize daemon runin a long-lived shell.
Next: head to Quickstart.