Summarize
Fast CLI to summarize URLs, local files, YouTube links, extract transcripts, and convert transcripts to structured documents.
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" (best-effort transcript extraction; no
yt-dlpneeded) - "get the transcript" / "extract the transcript"
- "convert this transcript to a doc" / "turn this transcript into an article"
- "digest this" / "recap this" / "give me the gist"
Quick start
summarize "https://example.com" --model google/gemini-3-flash-preview
summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto
YouTube: summary vs transcript
Best-effort transcript (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.
Transcript-to-Document Conversion
When the user has a raw transcript (from YouTube, a meeting, podcast, etc.) and wants it converted to a structured document:
- Extract or receive the transcript -- use
--extract-onlyfor YouTube, or accept a pasted/uploaded transcript - Identify the target format -- article, meeting notes, blog post, documentation, summary with key points
- Convert using summarize with appropriate length and model:
# For a detailed conversion summarize "/path/to/transcript.txt" --length long --model google/gemini-3-flash-preview # For a concise summary summarize "/path/to/transcript.txt" --length short --model google/gemini-3-flash-preview - Structure the output based on the target format:
- Article: Title, introduction, sections with headers, conclusion
- Meeting notes: Attendees, agenda items, decisions, action items
- Key points: Bulleted list of main takeaways with timestamps if available
- Documentation: Structured reference doc with sections and code blocks if applicable
Model + 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
--length short|medium|long|xl|xxl|<chars>--max-output-tokens <count>--extract-only(URLs only)--json(machine readable)--firecrawl auto|off|always(fallback extraction)--youtube auto(Apify fallback ifAPIFY_API_TOKENset)
Config
Optional config file: ~/.summarize/config.json
{ "model": "openai/gpt-5.2" }
Optional services:
FIRECRAWL_API_KEYfor blocked sitesAPIFY_API_TOKENfor YouTube fallback