Start

Quickstart

Quickstart

You should already have summarize installed — if not, see Install. This page goes from zero to a working summary in five minutes.

#1. Set one provider key

summarize --model auto works as soon as one provider key is exported. Pick whichever you have:

export OPENAI_API_KEY=sk-...
# or
export GEMINI_API_KEY=...
# or — free models via OpenRouter
export OPENROUTER_API_KEY=...
summarize refresh-free   # picks working :free models

The full provider list is in LLM overview. To skip provider selection entirely, point at a CLI provider you already have logged in:

summarize "https://example.com" --cli claude
summarize "https://example.com" --cli codex

#2. Your first summary

summarize "https://en.wikipedia.org/wiki/Llama"

You'll see streaming Markdown in the terminal. The default length is xl (~10k chars); use --length to change it:

summarize "https://example.com/long-article" --length short
summarize "https://example.com/long-article" --length 3k
summarize "https://example.com/long-article" --length 30000

#3. YouTube and podcasts

summarize "https://youtu.be/I845O57ZSy4"
summarize "https://podcasts.apple.com/.../episode-..."

YouTube prefers official caption tracks, falls back through youtubei and Apify, and finally pulls audio with yt-dlp and transcribes with Whisper. Podcasts behave the same way: published transcript first, then ffmpeg + Whisper.

Add scene-change keyframes for video:

summarize "https://youtu.be/..." --slides
summarize "https://youtu.be/..." --slides --slides-ocr

#4. Files and stdin

summarize ./report.pdf
summarize ./meeting.m4a
summarize ./diagram.png
pbpaste | summarize -

PDFs and images go through markitdown (or the Gemini/OpenAI vision path when configured). Audio + video files take the transcription path.

#5. Extract without the LLM

When you only want clean text — for piping into another tool or saving to a file — use --extract:

summarize "https://example.com" --extract --format md > article.md
summarize "https://youtu.be/..." --extract --format md --markdown-mode llm

--format md --markdown-mode llm runs the model just enough to format the raw transcript into headings and paragraphs.

#6. JSON for scripts

summarize "https://example.com" --json --metrics detailed

Returns a stable envelope with summary, prompt, metrics, and source metadata on stdout. Progress, prompts, and warnings always go to stderr.

#7. Save defaults

Most flags have a config-file equivalent. Stash your preferences in ~/.summarize/config.json:

{
  "model": "auto",
  "output": {
    "length": "long",
    "language": "en"
  },
  "youtube": "auto",
  "firecrawl": "auto"
}

Now summarize "https://example.com" runs with those defaults; flags still override on the CLI. Full schema: Config.

#What's next