summarize
summarize.sh- Category
- AI Tools
- Rank
- No. 2743Tools index
Previous survey · No. 2698 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Data, Retrieval & Knowledge
- Interfaces
- CLI · Browser Extension
- Builder
- steipete
- GitHub
- 6.8k stars
- Latest release
- v0.26.0
- Date
About
A CLI tool and Chrome extension that generates fast summaries from URLs, PDFs, videos, audio, and other media using local or cloud AI models. Features a Chrome Side Panel for one-click tab summaries and supports automation with JSON/Markdown output.
What it does
Give it a link or a file and it pulls out the readable text first, then hands that text to whichever language model you have set up. For YouTube and podcasts it looks for existing captions and published transcripts before paying to transcribe anything, and it can grab slide frames from a talk. It runs from a terminal, from a browser sidebar in Chrome or Firefox, or as a small background service that the sidebar talks to. Extraction alone needs no API key.
Why it's ranked here
The breadth is real and documented down to the fallback order. It can drive nine installed coding assistants as model backends, including Claude, Codex, Gemini and Copilot, plus direct keys for providers such as OpenAI, Anthropic, Google and xAI, and a local Ollama option. Auto mode skips models with no key, retries the next candidate on any error, and prints the plain extracted text if nothing is usable. Repeat runs are cheap: transcripts, extractions and finished summaries are cached, keyed on the actual content sent. MIT licensed, installable from npm or Homebrew, with a separate core library.
What's good
Transcripts come first: YouTube goes through two caption sources before downloading audio, and only then walks a stated order of transcription services. The summary cache is keyed on a hash of the content and prompt, so the same article under two addresses hits once. The background service binds to the loopback address, requires a token on every route except health, and applies an auth rate limiter. When a coding assistant is the backend, Codex runs in a throwaway home directory carrying only auth, and pi runs with tools, extensions and context files switched off.
Tradeoffs
Requires Node 24 or newer for the npm install, which rules out many older machines unless you use the Homebrew or macOS builds. Media depth leans on outside binaries: slide capture needs yt-dlp, OCR needs tesseract. To summarize a local image or binary file through Claude Code, it passes the flag that skips permission prompts, and Gemini gets its yolo mode. The docs say the Antigravity no-tools guidance is prompt steering, not a hard boundary. The built-in summary prompt forbids quotation marks and sponsor mentions, which you replace wholesale if you supply your own.
How to use it well
Best for someone who already pays for a coding assistant subscription and wants long videos, podcasts and articles condensed without setting up new API keys: point the auto fallback at that assistant. Use the extract mode when you want clean text to feed your own pipeline, and the stable JSON output for scripts. Install the background service only if you need OCR, native media tools or Firefox media support; the browser sidebar works on its own. It is a reader, not a research agent: it summarizes one source at a time.
Technical notes+
src/cli-main.ts merges a hand-rolled .env parser from the working directory under real env vars, maps SIGINT/SIGTERM to exit codes 130/143 and kills tracked child processes. src/config.ts parses ~/.summarize/config.json section by section, rejecting empty language or prompt strings with a CliError. src/daemon/server.ts serves /health unauthenticated, gates everything else through authorizeDaemonRequest with an AuthRateLimiter, caps concurrent summaries via resolveDaemonMaxActiveSummaries, and listens on 0.0.0.0 only inside Windows containers. src/cache.ts stores entries in one SQLite file with WAL and SHM sidecars; docs/cache.md gives defaults of 512 MB and 30 days, plus a separate 2048 MB, 7 day media cache that the no-cache flag does not disable. docs/llm.md rejects text files over 10 MB before tokenization.
Observed
- License
- MIT (LICENSE)
- Language
- TypeScript, ES modules (package.json)
- Runtime requirement
- Node.js 24 or newer (package.json engines)
- Install surface
- npm global package, Homebrew, npx one-shot, macOS archives (README.md)
- Interfaces
- CLI, Chrome side panel and Firefox sidebar, local HTTP daemon, core library package (README.md)
- Model backends
- Direct provider API keys, OpenAI-compatible endpoints, Ollama, OpenRouter, and installed coding CLIs (docs/cli.md, docs/llm.md)
- Daemon binding
- Loopback address, default port 8787, token-authenticated (docs/chrome-extension.md, src/daemon/server.ts)
- Cache
- Single SQLite file with size cap and TTL eviction (docs/cache.md)
- Test runner
- Vitest with coverage in the check script (package.json)
Read from README.md, package.json, LICENSE, docs/cli.md, docs/llm.md, docs/model-auto.md, docs/youtube.md, docs/cache.md, docs/chrome-extension.md, src/cli-main.ts, src/config.ts, src/cache.ts, src/daemon/server.ts, packages/core/src/index.ts.
What it can do
Generate summaries from web pages
URL → Text summary
Generate summaries from PDF documents
PDF file → Text summary
Generate summaries from video content
Video file → Text summary
Generate summaries from audio files
Audio file → Text summary
Generate one-click summaries of browser tabs
Active browser tab → Text summary
Export summaries in JSON format
Content to summarize → JSON file
Export summaries in Markdown format
Content to summarize → Markdown file
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.