summarize
npx machina-cli add skill zebbern/icron/summarize --openclawSummarize
Fast CLI to summarize URLs, local files, and YouTube links.
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)
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.
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
Source
git clone https://github.com/zebbern/icron/blob/main/icron/skills/summarize/SKILL.mdView on GitHub Overview
Summarize or extract text and transcripts from URLs, podcasts, and local files. This fast CLI is a practical fallback when you need a quick transcription-like result for YouTube videos. It supports multiple providers and configurable models to fit your workflow.
How This Skill Works
You pass a URL, a local file path, or a YouTube link to the summarize CLI, which then generates a summary or transcript using a selected provider/model (default is google/gemini-3-flash-preview). API keys for providers (OpenAI, Anthropic, xAI, Google) are configured via environment variables, and powerful flags like --extract-only, --youtube, --length, and --json tailor the output.
When to Use It
- You want a quick summary of a web page or article from a URL.
- You need a summary of a local document (PDF, DOCX, etc.) on your machine.
- You want a best-effort transcript for a YouTube video without installing yt-dlp.
- You require a machine-readable output for automation (--json) or to control summary depth (--length).
- You want to choose between different providers/models via API keys and --model.
Quick Start
- Step 1: Install or ensure the summarize binary is available (e.g., via brew: brew install summarize).
- Step 2: Run a basic summary with a URL or local file, e.g., summarize "https://example.com" --model google/gemini-3-flash-preview.
- Step 3: Optional: tailor output with --extract-only, --youtube auto, --length, or --json; manage API keys via environment variables.
Best Practices
- Use --extract-only when you only need transcript text from a URL.
- For YouTube, start with --youtube auto and supply APIFY_API_TOKEN if you have one.
- Control depth with --length short|medium|long|xl|xxl or <chars> to keep results readable.
- Store API keys in environment variables: OPENAI_API_KEY, ANTHROPIC_API_KEY, XAI_API_KEY, GEMINI_API_KEY.
- Use --json for structured output to feed downstream systems.
Example Use Cases
- 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
- summarize "https://example.com" --extract-only
- summarize "https://example.com" --json --length short