# Summarize Anything

Summarizes URLs, files, YouTube videos and transcripts from the CLI.

- Repository: https://github.com/steipete/summarize (6775 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add steipete/summarize --skill summarize -g -a claude-code -y`
Codex: `npx skills add steipete/summarize --skill summarize -g -a codex -y`
Cursor: `npx skills add steipete/summarize --skill summarize -g -a cursor -y`
Gemini CLI: `npx skills add steipete/summarize --skill summarize -g -a gemini-cli -y`

## Description

Summarize CLI: URLs, files, YouTube, transcripts, media, extraction, and JSON output.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Summarize

Use the `summarize` CLI as the canonical interface. Prefer a released binary on `PATH`; inside this repository, use `pnpm -s summarize` for the current checkout.

## Start

1. Confirm the command and current contract:

   ```bash
   summarize --version
   summarize --help
   ```

2. Inspect model/provider readiness when a summary needs an LLM:

   ```bash
   summarize status
   summarize status --json
   ```

3. Run the narrowest workflow below. Quote URLs and paths. Add `--timeout 2m` for slow remote or media inputs.

Never print, request, or copy API-key values. `summarize status` reports availability without exposing secrets.

## Summarize

Web page or remote document:

```bash
summarize "https://example.com/article"
summarize "https://example.com/report.pdf" --length short
```

Local file or stdin:

```bash
summarize "./report.pdf"
summarize "./recording.m4a"
printf '%s\n' "Long text to summarize" | summarize -
```

Use `--plain` for unrendered Markdown/text. Use `--language`, `--length`, `--prompt`, or `--prompt-file` only when the task requires an override. Use `--cli codex`, `--cli claude`, or another installed CLI provider when the user requests that provider or no direct API provider is configured.

## Extract without a summary

Use `--extract` to stop after extraction or transcription:

```bash
summarize "https://example.com/article" --extract --format md
summarize "./report.pdf" --extract --format md
summarize "https://youtu.be/VIDEO_ID" --extract --format md
```

`--extract` does not support stdin. Extraction can still call configured transcription, OCR, Firecrawl, or Markdown services; it only skips the final summary call. `--markdown-mode llm` also invokes an LLM to reshape extracted text.

## YouTube, audio, and video

Default transcript selection:

```bash
summarize "https://youtu.be/VIDEO_ID"
summarize "https://youtu.be/VIDEO_ID" --extract --format md --timestamps
```

The rest: https://github.com/steipete/summarize/blob/HEAD/.agents/skills/summarize/SKILL.md
