[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openclaw-openclaw-skills-summarize":3},{"error":4,"detail":5,"metadata":23,"markdownContent":25,"rawMarkdown":20},false,{"repo_full_name":6,"owner":7,"repo_name":7,"repo_forks":8,"skill_path":9,"repo_stars":10,"name":11,"category_id":12,"description":13,"file_tree":14,"skill_md_content":20,"skill_id":21,"skill_key":22},"openclaw/openclaw","openclaw",64359,"skills/summarize",330752,"summarize",13,"Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).",[15],{"name":16,"path":17,"size":18,"type":19},"SKILL.md","skills/summarize/SKILL.md",2232,"file","---\nname: summarize\ndescription: Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).\nhomepage: https://summarize.sh\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🧾\",\n        \"requires\": { \"bins\": [\"summarize\"] },\n        \"install\":\n          [\n            {\n              \"id\": \"brew\",\n              \"kind\": \"brew\",\n              \"formula\": \"steipete/tap/summarize\",\n              \"bins\": [\"summarize\"],\n              \"label\": \"Install summarize (brew)\",\n            },\n          ],\n      },\n  }\n---\n\n# Summarize\n\nFast CLI to summarize URLs, local files, and YouTube links.\n\n## When to use (trigger phrases)\n\nUse this skill immediately when the user asks any of:\n\n- “use summarize.sh”\n- “what’s this link/video about?”\n- “summarize this URL/article”\n- “transcribe this YouTube/video” (best-effort transcript extraction; no `yt-dlp` needed)\n\n## Quick start\n\n```bash\nsummarize \"https://example.com\" --model google/gemini-3-flash-preview\nsummarize \"/path/to/file.pdf\" --model google/gemini-3-flash-preview\nsummarize \"https://youtu.be/dQw4w9WgXcQ\" --youtube auto\n```\n\n## YouTube: summary vs transcript\n\nBest-effort transcript (URLs only):\n\n```bash\nsummarize \"https://youtu.be/dQw4w9WgXcQ\" --youtube auto --extract-only\n```\n\nIf the user asked for a transcript but it’s huge, return a tight summary first, then ask which section/time range to expand.\n\n## Model + keys\n\nSet the API key for your chosen provider:\n\n- OpenAI: `OPENAI_API_KEY`\n- Anthropic: `ANTHROPIC_API_KEY`\n- xAI: `XAI_API_KEY`\n- Google: `GEMINI_API_KEY` (aliases: `GOOGLE_GENERATIVE_AI_API_KEY`, `GOOGLE_API_KEY`)\n\nDefault model is `google/gemini-3-flash-preview` if none is set.\n\n## Useful flags\n\n- `--length short|medium|long|xl|xxl|\u003Cchars>`\n- `--max-output-tokens \u003Ccount>`\n- `--extract-only` (URLs only)\n- `--json` (machine readable)\n- `--firecrawl auto|off|always` (fallback extraction)\n- `--youtube auto` (Apify fallback if `APIFY_API_TOKEN` set)\n\n## Config\n\nOptional config file: `~/.summarize/config.json`\n\n```json\n{ \"model\": \"openai/gpt-5.2\" }\n```\n\nOptional services:\n\n- `FIRECRAWL_API_KEY` for blocked sites\n- `APIFY_API_TOKEN` for YouTube fallback\n","60e091c5-23c6-54b4-9d1b-f760507415c0","openclaw-openclaw-skills-summarize",{"name":11,"description":13,"homepage":24},"https://summarize.sh","\u003Ch1>Summarize\u003C/h1>\n\u003Cp>Fast CLI to summarize URLs, local files, and YouTube links.\u003C/p>\n\u003Ch2>When to use (trigger phrases)\u003C/h2>\n\u003Cp>Use this skill immediately when the user asks any of:\u003C/p>\n\u003Cul>\n\u003Cli>“use summarize.sh”\u003C/li>\n\u003Cli>“what’s this link/video about?”\u003C/li>\n\u003Cli>“summarize this URL/article”\u003C/li>\n\u003Cli>“transcribe this YouTube/video” (best-effort transcript extraction; no \u003Ccode>yt-dlp\u003C/code> needed)\u003C/li>\n\u003C/ul>\n\u003Ch2>Quick start\u003C/h2>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">summarize \u003Cspan class=\"hljs-string\">&quot;https://example.com&quot;\u003C/span> --model google/gemini-3-flash-preview\nsummarize \u003Cspan class=\"hljs-string\">&quot;/path/to/file.pdf&quot;\u003C/span> --model google/gemini-3-flash-preview\nsummarize \u003Cspan class=\"hljs-string\">&quot;https://youtu.be/dQw4w9WgXcQ&quot;\u003C/span> --youtube auto\u003C/code>\u003C/pre>\u003C/div>\u003Ch2>YouTube: summary vs transcript\u003C/h2>\n\u003Cp>Best-effort transcript (URLs only):\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">summarize \u003Cspan class=\"hljs-string\">&quot;https://youtu.be/dQw4w9WgXcQ&quot;\u003C/span> --youtube auto --extract-only\u003C/code>\u003C/pre>\u003C/div>\u003Cp>If the user asked for a transcript but it’s huge, return a tight summary first, then ask which section/time range to expand.\u003C/p>\n\u003Ch2>Model + keys\u003C/h2>\n\u003Cp>Set the API key for your chosen provider:\u003C/p>\n\u003Cul>\n\u003Cli>OpenAI: \u003Ccode>OPENAI_API_KEY\u003C/code>\u003C/li>\n\u003Cli>Anthropic: \u003Ccode>ANTHROPIC_API_KEY\u003C/code>\u003C/li>\n\u003Cli>xAI: \u003Ccode>XAI_API_KEY\u003C/code>\u003C/li>\n\u003Cli>Google: \u003Ccode>GEMINI_API_KEY\u003C/code> (aliases: \u003Ccode>GOOGLE_GENERATIVE_AI_API_KEY\u003C/code>, \u003Ccode>GOOGLE_API_KEY\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Cp>Default model is \u003Ccode>google/gemini-3-flash-preview\u003C/code> if none is set.\u003C/p>\n\u003Ch2>Useful flags\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Ccode>--length short|medium|long|xl|xxl|&lt;chars&gt;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>--max-output-tokens &lt;count&gt;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>--extract-only\u003C/code> (URLs only)\u003C/li>\n\u003Cli>\u003Ccode>--json\u003C/code> (machine readable)\u003C/li>\n\u003Cli>\u003Ccode>--firecrawl auto|off|always\u003C/code> (fallback extraction)\u003C/li>\n\u003Cli>\u003Ccode>--youtube auto\u003C/code> (Apify fallback if \u003Ccode>APIFY_API_TOKEN\u003C/code> set)\u003C/li>\n\u003C/ul>\n\u003Ch2>Config\u003C/h2>\n\u003Cp>Optional config file: \u003Ccode>~/.summarize/config.json\u003C/code>\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">json\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-json\">\u003Cspan class=\"hljs-punctuation\">{\u003C/span> \u003Cspan class=\"hljs-attr\">&quot;model&quot;\u003C/span>\u003Cspan class=\"hljs-punctuation\">:\u003C/span> \u003Cspan class=\"hljs-string\">&quot;openai/gpt-5.2&quot;\u003C/span> \u003Cspan class=\"hljs-punctuation\">}\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003Cp>Optional services:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>FIRECRAWL_API_KEY\u003C/code> for blocked sites\u003C/li>\n\u003Cli>\u003Ccode>APIFY_API_TOKEN\u003C/code> for YouTube fallback\u003C/li>\n\u003C/ul>\n"]