Skip to main content
Fast CLI to summarize URLs, local files, and YouTube links. Great fallback for “transcribe this YouTube video” requests.

Installation

Install via Homebrew:
brew install steipete/tap/summarize

When to Use

Use this skill when users ask:
  • “Use summarize.sh”
  • “What’s this link/video about?”
  • “Summarize this URL/article”
  • “Transcribe this YouTube/video” (best-effort transcript extraction, no yt-dlp needed)

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

Get best-effort transcript (URLs only):
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto --extract-only
If the user asks for a transcript but it’s huge, return a tight summary first, then ask which section/time range to expand.

Model Configuration

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 Control

--length short|medium|long|xl|xxl|<chars>
Or specify exact token count:
--max-output-tokens <count>

Extract Only

Get raw content without summarization (URLs only):
--extract-only

JSON Output

Machine-readable output:
--json

Firecrawl Fallback

For blocked or difficult sites:
--firecrawl auto|off|always
Requires FIRECRAWL_API_KEY environment variable.

YouTube Fallback

Apify fallback for YouTube:
--youtube auto
Requires APIFY_API_TOKEN environment variable.

Configuration File

Optional config file at ~/.summarize/config.json:
{
  "model": "openai/gpt-5.2"
}

Examples

Summarize Blog Post

summarize "https://blog.example.com/post" --length medium

Extract PDF Text

summarize "document.pdf" --extract-only

Short YouTube Summary

summarize "https://youtu.be/VIDEO_ID" --youtube auto --length short

JSON Output for Automation

summarize "https://example.com" --json --model google/gemini-3-flash-preview

Optional Services

  • Firecrawl: FIRECRAWL_API_KEY for blocked sites
  • Apify: APIFY_API_TOKEN for YouTube fallback

Resources

Build docs developers (and LLMs) love