Skip to content
AI & Agents
Skill

/summarize

Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).

BOOST
From plugin
bitterbot-desktop
2.5k66 skills
Install
$ npx -y skills add bitterbot-ai/bitterbot-desktop --skill summarize --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/summarize

Context preview

The summary Claude sees to decide when to auto-load this skill.

Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).

SKILL.md

summarize.SKILL.md
name: summarize
description: Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).
homepage: https://summarize.sh
metadata:
  {
    "bitterbot":
      {
        "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.

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-dlp` needed)

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 if `APIFY_API_TOKEN` set)

Config

Optional config file: `~/.summarize/config.json`

{ "model": "openai/gpt-5.2" }

Optional services:

  • `FIRECRAWL_API_KEY` for blocked sites
  • `APIFY_API_TOKEN` for YouTube fallback
Read more
Ships withbitterbot-desktop

Bitterbot - a mesh of agents that turns shared experience into collective capability.

Get the whole plugin
Stats
2,465
Stars
417
Forks
Active
Maintenance
TypeScript
Language
MIT
License
6m ago
Last commit
6mo ago
Created
6h ago
Added

Repo: bitterbot-ai/bitterbot-desktop

Other skills on bitterbot-desktop.