Skip to main content

summarize

URL/파일/미디어 요약 및 콘텐츠 추출. YouTube 영상, 웹페이지, PDF, 팟캐스트, 오디오/비디오 지원. 구독 CLI 레일만 쓴다(기본 Codex gpt-6-luna). 정본이 필요한 YouTube 자막은 youtube-transcript 스킬을 쓴다.

Source facts

Repository
junghan0611/agent-config
Last source activity
October 17, 2026 at 04:53
Detected SKILL.md language
English
Stars
5
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
summarize
description
URL/파일/미디어 요약 및 콘텐츠 추출. YouTube 영상, 웹페이지, PDF, 팟캐스트, 오디오/비디오 지원. 구독 CLI 레일만 쓴다(기본 Codex gpt-6-luna). 정본이 필요한 YouTube 자막은 youtube-transcript 스킬을 쓴다.
# summarize [@steipete/summarize](https://github.com/steipete/summarize) — installed via nixos-config (`scripts/external-packages.sh`, pnpm global), checked at **0.25.2** (2026-10-17). Upstream ships its own agent skill (`.agents/skills/summarize`); this page keeps the house rules. Exact flags: `summarize --help`. **Always run it through `{baseDir}/scripts/summarize`**, never bare `summarize`. The wrapper drops every metered API key (OpenRouter, Groq, Gemini, OpenAI, …) before exec, so only subscription CLI rails remain. Bare `summarize` still sees those keys in the login env: media transcription tries Groq first whenever `GROQ_API_KEY` is set, and `--model auto` can fall back to API providers. ## Rail — subscription CLIs only `~/.summarize/config.json` (live, 2026-10-17; the old OpenRouter model is in `config.json.bak-20261017`): ```json { "model": { "id": "cli/pi/openai-codex/gpt-6-luna" }, "cli": { "enabled": ["pi", "codex", "claude", "grok"], "autoFallback": { "enabled": false } } } ``` | Model | Rail | 6.8KB Korean note, `--length short` (2026-10-17) | |-------|------|---------------------------------------------------| | `cli/pi/openai-codex/gpt-6-luna` (default) | Codex subscription through pi (`--no-tools --no-skills --no-session`) | 7.0s, ↑2.8k ↓0.3k | | `cli/codex/gpt-6-luna` | the same Codex subscription through codex CLI (isolated `CODEX_HOME`) | 11s, ↑16k ↓0.2k — bare `cli/codex` asks for `gpt-5.5` and fails | | `cli/claude/sonnet` | Claude subscription | 8.2s, ↑36k ↓0.3k — Claude Code's own prompt overhead | | `cli/grok` | SuperGrok | 2m6s, ↓7.4k reasoning — too slow for routine use | The `$` in the finish line is an API-equivalent estimate; these rails spend subscription quota. Never pass `openrouter/*`, `google/*`, `openai/*` or `--model free`. ## YouTube canon belongs to youtube-transcript `summarize --extract` returns captions, but it is a screening path, not evidence. When quotation, evidence or garden import matters — who said exactly what — use `youtube-transcript`: it splits turns only at the source's `>>` and never lets an LLM reshape punctuation (GLG: *LLM이 개입되면 안돼*). `--markdown-mode llm` rewrites sentence boundaries. When unsure, fail toward `youtube-transcript`. ## Commands | Task | Command | ⚠️ | |------|---------|----| | Extract web text, no LLM | `{baseDir}/scripts/summarize URL --extract --format md --plain` | try this first | | YouTube captions (screening) | `{baseDir}/scripts/summarize URL --extract --plain` | not canon (above) | | Summarize URL / PDF / file | `{baseDir}/scripts/summarize INPUT --lang ko --plain` | `--length short/medium/long/xl/xxl` or chars; default `long` | | Pick another rail once | `{baseDir}/scripts/summarize INPUT --model cli/codex/gpt-6-luna --plain` | only `cli.enabled` providers are accepted | | Automation | `{baseDir}/scripts/summarize INPUT --json --metrics off` | text in `.summary` or `.extracted.content`; stderr stays separate | | Slides | `{baseDir}/scripts/summarize URL --slides` · `summarize slides URL --render auto` | needs yt-dlp + ffmpeg; OCR needs tesseract (absent) | | Status | `{baseDir}/scripts/summarize status` | should list only Claude/Codex/Pi/Grok CLI | | Cache | `--no-cache` (LLM cache only) · `--cache-stats` · `--clear-cache` | content-hash keyed; repeats are free | ## Notes - Audio/video with no captions needs transcription. With the keys dropped only local engines remain, and none is installed (no whisper.cpp/ONNX), so it fails closed. Groq transcription is the separate `transcribe` skill. - `--extract` skips only the final summary call; on media it may still transcribe. - `--diarize` needs ElevenLabs/OpenAI keys — not available on this rail. - Use `--timeout 5m` for long inputs. Default language is the source's; pass `--lang ko` when the user did not ask otherwise.
View on GitHub