name: summarize description: Summarize or extract text/transcripts from URLs, podcasts, and local files. emoji: 🧾 requires: bins: ["summarize"] install:
- id: brew kind: brew formula: steipete/tap/summarize bins: ["summarize"] label: Install summarize (brew)
Summarize
Fast CLI to summarize URLs, local files, and YouTube links using the summarize CLI tool.
When to use (trigger phrases)
Use this skill immediately when the user asks any of:
- "use summarize.sh"
- "what's this link/video about?"
- "summarize this URL/article"
- "transcribe this YouTube/video"
- "what does this article say?"
Prerequisites
Install the summarize CLI:
brew install steipete/tap/summarize
Quick start
# Summarize a URL
summarize "https://example.com" --model google/gemini-3-flash-preview
# Summarize a local file
summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview
# Summarize a YouTube video
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto
YouTube: summary vs transcript
For best-effort transcript extraction (URLs only):
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto --extract-only
If the user asked for a transcript but it's huge, return a tight summary first, then ask which section/time range to expand.
Model + API keys
Set the API key for your chosen provider:
- OpenAI:
OPENAI_API_KEY - Anthropic:
ANTHROPIC_API_KEY - xAI:
XAI_API_KEY - Google:
GEMINI_API_KEY(aliases:GOOGLE_GENERATIVE_AI_API_KEY,GOOGLE_API_KEY)
Default model is google/gemini-3-flash-preview if none is set.
Useful flags
| Flag | Description |
|---|---|
--length short|medium|long|xl|xxl|<chars> |
Summary length |
--max-output-tokens <count> |
Max output tokens |
--extract-only |
Extract text only (URLs) |
--json |
Machine readable output |
--firecrawl auto|off|always |
Fallback extraction |
--youtube auto |
Apify fallback for YouTube |
Fallback without CLI
If the summarize CLI is not installed, you can fallback to using the web tool:
# Use fetch_url to get content, then have the LLM summarize
curl -s "https://example.com" | head -c 50000
Then ask the LLM to summarize the fetched content.
Config
Optional config file: ~/.summarize/config.json
{ "model": "openai/gpt-4o" }
Optional services:
FIRECRAWL_API_KEYfor blocked sitesAPIFY_API_TOKENfor YouTube fallback