
一键生成网页与视频的精炼摘要,并自动提取关键幻灯片。
详细介绍
Summarize
从 URL、文件和媒体中快速生成摘要。可在终端、Chrome 侧边栏和 Firefox 侧边栏中使用。
核心能力
Chrome 侧边栏聊天 :在侧边栏内提供流式智能体对话和历史记录。
视频幻灯片 :为 YouTube、直接视频 URL 和本地视频文件提供截图 + OCR + 字幕卡片。
媒体感知摘要 :自动检测视频/音频与页面内容。
编码 CLI 后端 :支持 Codex、Claude、Gemini、Cursor Agent、OpenClaw、OpenCode、GitHub Copilot、Antigravity、pi。
流式 Markdown :包含指标和缓存状态。
CLI 支持 :URL、文件、播客、YouTube、音频/视频、PDF。
Chrome 扩展
一键总结当前标签页。Chrome 侧边栏 + Firefox 侧边栏 + 本地守护进程,支持流式 Markdown。
Chrome 网上应用店:Summarize Side Panel
YouTube 幻灯片截图(来自浏览器):
初学者快速入门(扩展)
安装扩展(上面的 Chrome 网上应用店链接)并打开侧边栏。
选择 Direct 或 Daemon 。Direct 模式在未配置提供商密钥时默认使用 Gemini Nano,或从 Chrome 调用您选择的提供商。
选择浏览器媒体以进行无守护进程的转录/幻灯片。可选:安装 CLI 并配对守护进程,以获得原生工具、CLI 模型回退、OCR 和更广泛的媒体支持。
注意:
仅当侧边栏打开时才进行摘要。
自动模式会在导航(包括 SPA)时自动总结;否则使用按钮。
守护进程仅限本地主机,需要共享令牌。
自动启动:macOS(launchd)、Linux(systemd 用户)、Windows(计划任务)。
幻灯片(扩展)
在 Summarize 选择器中选择 Video + Slides 。
幻灯片在顶部渲染;可展开为带时间戳的全宽卡片。
点击幻灯片可跳转到视频对应位置;当 OCR 显著时可切换 Transcript/OCR 。
浏览器模式使用 MediaBunny,通过原生 WebCodecs 和范围网络读取来获取可获取的视频,当源或编解码器不可用时回退到可见标签页捕获。
守护进程模式额外提供 yt-dlp 、原生 ffmpeg 和可选的 tesseract OCR。
CLI
需要 Node 24+。
可选本地依赖
如果您需要媒体密集型功能,请安装以下工具:
ffmpeg :可选的原生加速器,支持更广泛的编解码器;回退使用内置的 WebAssembly 版本。
yt-dlp :YouTube 幻灯片提取和某些远程媒体流程需要。
tesseract :可选,用于 –slides-ocr 。
macOS(Homebrew):
brew install ffmpeg yt-dlp
brew install tesseract # 可选,用于 –slides-ocr
如果原生 ffmpeg / ffprobe 不可用,Summarize 将使用内置的 WebAssembly 构建。仍推荐原生 ffmpeg 以获得速度和更广泛的编解码器/滤镜支持。
快速开始
summarize "https://example.com"
检查有效模型配置:
summarize status
summarize status –verbose
summarize status –probe
summarize status –json
输入
URL 或本地路径:
summarize "/path/to/file.pdf" –model google/gemini-3-flash
summarize "https://example.com/report.pdf" –model google/gemini-3-flash
summarize "/path/to/audio.mp3"
summarize "/path/to/video.mp4"
标准输入(使用 – 管道输入):
echo "content" | summarize –
pbpaste | summarize –
YouTube(支持 youtube.com 和 youtu.be ):
summarize "https://youtu.be/dQw4w9WgXcQ" –youtube auto
播客 RSS(转写最新一集):
summarize "https://feeds.npr.org/500005/podcast.xml"
Apple Podcasts 单集页面:
summarize "https://podcasts.apple.com/us/podcast/2424-jelly-roll/id360084272?i=1000740717432"
Spotify 单集页面(尽力而为,独家内容可能失败):
summarize "https://open.spotify.com/episode/5auotqWAXhhKyb9ymCuBJY"
HLS 播放列表:
summarize "https://example.com/master.m3u8"
输出长度
–length 控制我们要求输出的量(指导性),并非硬性限制。内置默认值为 long 。
可在 ~/.summarize/config.json 中通过 output.length 设置默认值。
预设值: short|medium|long|xl|xxl
字符目标: 1500 、 20k 、 20000
可选硬性上限: –max-output-tokens <count> (例如 2000 、 2k )
短内容:当提取的内容短于请求的长度时,CLI 会原样返回内容。使用 –force-summary 覆盖,强制运行 LLM。
最小值: –length 数值必须 >= 10 个字符; –max-output-tokens 必须 >= 16。
预设目标(来源: packages/core/src/prompts/summary-lengths.ts ):
short:目标约 900 字符(范围 600-1,200)
medium:目标约 1,800 字符(范围 1,200-2,500)
long:目标约 4,200 字符(范围 2,500-6,000)
xl:目标约 9,000 字符(范围 6,000-14,000)
xxl:目标约 17,000 字符(范围 14,000-22,000)
支持的文件类型
尽力而为,且取决于提供商。以下通常工作良好:
text/* 和常见结构化文本( .txt 、 .md 、 .json 、 .yaml 、 .xml 等)
PDF: application/pdf (提供商支持程度不同;Google 最可靠)
图片: image/jpeg 、 image/png 、 image/webp 、 image/gif
音频/视频: audio/* 、 video/* (本地音频/视频文件在模型支持时会自动转写)
注意:
如果提供商拒绝某种媒体类型,CLI 会快速失败并显示友好消息。
xAI 模型不支持通过 AI SDK 附加通用文件(如 PDF);对于这些情况,请使用 Google/OpenAI/Anthropic。
模型 ID
使用网关风格 ID: <provider>/<model> 。
示例:
openai/gpt-5.4
openai/gpt-5.4-mini
openai/gpt-5.4-nano
openai/gpt-5-mini
openai/gpt-5-nano
github-copilot/gpt-5.4
anthropic/claude-sonnet-4-5
xai/grok-4-fast-non-reasoning
google/gemini-3-flash
zai/glm-4.7
minimax/MiniMax-M3
openrouter/openai/gpt-5-mini (强制使用 OpenRouter)
注意:某些模型/提供商不支持流式传输或某些文件媒体类型。此时 CLI 会打印友好错误(或在提供商支持时为该模型自动禁用流式传输)。
OpenAI 快速模式和思考模式
快速模式是一个请求选项,不是模型 ID:
summarize "https://example.com" –model openai/gpt-5.5 –fast –thinking medium
summarize "https://example.com" –model openai/gpt-5.4 –service-tier fast –thinking low
–fast 是 –service-tier fast 的简写。
–service-tier default|fast|priority|flex 控制 OpenAI 服务层级。 fast 是 Summarize/Codex 使用的拼写,发送给 OpenAI 时变为 service_tier="priority" 。
–thinking none|low|medium|high|xhigh 控制 OpenAI 推理努力程度。别名: off → none , min → low , mid / med → medium , x-high / extra-high → xhigh 。
–service-tier default 会清除一次运行配置的层级。
限制
超过 10 MB 的文本输入在分词前会被拒绝。
文本提示会针对模型输入限制(LiteLLM 目录)进行预检查,使用 GPT 分词器。
常用标志
summarize <input> [flags]
–model <provider/model> :使用的模型(默认为 auto )
–model auto :自动选择模型 + 回退(默认)
–model <name> :使用内置或配置定义的预设
–timeout <duration> : 30s 、 2m 、 5000ms (默认 2m )
–retries <count> :超时或临时 API 失败后的 LLM 重试次数(默认 1 )
–length short|medium|long|xl|xxl|s|m|l|<chars>
–language, –lang <language> :输出语言( auto = 匹配源语言)
–max-output-tokens <count> :LLM 输出令牌的硬性上限
–cli [provider] :使用 CLI 提供商( –model cli/<provider> )。支持 claude 、 gemini 、 codex 、 agent 、 openclaw 、 opencode 、 copilot 、 agy 、 pi 。如果省略,则使用启用了 CLI 的自动选择。
–stream auto|on|off :流式输出 LLM 结果( auto = 仅 TTY;在 –json 模式下禁用)
–plain :保留原始输出(无 ANSI/OSC Markdown 渲染)
–no-color :禁用 ANSI 颜色
–theme <name> :CLI 主题( aurora 、 ember 、 moss 、 mono )
–format md|text :网站/文件内容格式(默认 text )
–markdown-mode off|auto|llm|readability :HTML -> Markdown 模式(默认 readability )
–preprocess off|auto|always :控制 uvx markitdown 的使用(默认 auto )
–extract :打印提取的内容并退出(URL、YouTube/直接媒体、本地音频/视频和本地 PDF;不支持标准输入 – )
–slides :为 YouTube、直接视频 URL 或本地视频文件提取幻灯片,并在摘要叙述中内联渲染
–no-slides :对单次运行禁用 ~/.summarize/config.json 中启用的幻灯片提取
–slides-ocr :对提取的幻灯片运行 OCR(需要 tesseract )
–no-slides-ocr :对单次运行禁用 ~/.summarize/config.json 中启用的幻灯片 OCR
–slides-dir <dir> :幻灯片图像的基础输出目录(默认 ./slides )
–slides-scene-threshold <value> :场景检测阈值(0.1-1.0)
–slides-max <count> :最大提取幻灯片数量(默认 6 )
–slides-min-duration <seconds> :幻灯片之间的最小秒数
–json :机器可读输出,包含诊断信息、提示、 metrics 和可选的摘要
–verbose :调试/诊断信息输出到 stderr
–metrics off|on|detailed :指标输出(默认 on )
编码 CLI
Summarize 可以将常见的编码 CLI 用作本地模型后端:
codex -> –cli codex / –model cli/codex/<model>
claude -> –cli claude / –model cli/claude/<model>
gemini -> –cli gemini / –model cli/gemini/<model>
agent (Cursor Agent CLI)-> –cli agent / –model cli/agent/<model>
openclaw -> –cli openclaw / –model cli/openclaw/<model> 或 –model openclaw/<model>
opencode -> –cli opencode / –model cli/opencode/<model> ( –model cli/opencode 使用 OpenCode 运行时默认值)
copilot (GitHub Copilot CLI)-> –cli copilot / –model cli/copilot/<model> ( –model cli/copilot 使用 Copilot 运行时默认值)
agy (Antigravity CLI)-> –cli agy / –model cli/agy (使用 agy 活动会话模型;agy print 模式不支持按调用选择模型)
pi (Pi Coding Agent)-> –cli pi / –model cli/pi 或 –model cli/pi/<model>
内置预设:
–model codex-fast 使用 GPT-5.5 Fast 模式运行 Codex,需要 codex login 。
要求:
二进制文件已安装并在 PATH 中(或设置对应的路径环境变量)
提供商已认证
自动模型排序
–model auto 根据内置规则(或您的 model.rules 覆盖)构建候选尝试。当设置了 cli.enabled 或隐式自动选择处于活动状态时,CLI 尝试会被前置。
默认回退行为:仅当未配置 API 密钥时,顺序为 claude, gemini, codex, agent, openclaw, opencode, copilot ,并记住/优先使用最后一个成功的提供商( ~/.summarize/cli-state.json )。Antigravity 和 pi 是加入的,除非您将它们添加到 cli.autoFallback.order 。
网站提取(Firecrawl + Markdown)
非 YouTube URL 会经过 fetch -> extract 管道。当直接 fetch/extract 被阻止或内容太少时, –firecrawl auto 可以回退到 Firecrawl(如果已配置)。
–firecrawl off|auto|always (默认 auto )
–extract –format md|text (默认 text ;如果省略 –format ,则 –extract 对非 YouTube URL 默认为 md )
–markdown-mode off|auto|llm|readability (默认 readability )
YouTube 字幕
–youtube auto 首先尝试尽力而为的网页字幕端点。当字幕不可用时,回退到:
yt-dlp + Whisper(如果 yt-dlp 可用)
Android VR 直接音频 + 配置的转写链
Apify(如果设置了 APIFY_API_TOKEN )
带有说话人标签的 YouTube、本地音频/视频和直接媒体 URL 字幕可通过 –diarize 获得。
幻灯片提取
提取幻灯片截图(通过 ffmpeg 进行场景检测)和可选 OCR。需要 yt-dlp 用于 YouTube 视频下载/流解析, tesseract 仅在使用 –slides-ocr 时需要。
summarize "https://www.youtube.com/watch?v=…" –slides
summarize "https://www.youtube.com/watch?v=…" –slides –slides-ocr
summarize "/path/to/video.webm" –slides
输出写入 ./slides/<sourceId>/ (或 –slides-dir )。OCR 结果包含在 JSON 输出中,并存储在 slides.json 中。
媒体转写(Whisper)
本地音频/视频文件先被转写,然后进行摘要。 –video-mode transcript 强制直接媒体 URL 首先通过 Whisper。自动模式在配置时首先尝试 Groq,然后尝试本地 ONNX/ whisper.cpp ,再尝试云端回退。配置本地 ONNX/ whisper.cpp 用于仅本地转写;否则设置 GROQ_API_KEY 、 ASSEMBLYAI_API_KEY 、 GEMINI_API_KEY 、 OPENAI_API_KEY 、 FAL_KEY 或 DEEPGRAM_API_KEY 之一。
本地 ONNX 转写(Parakeet/Canary)
Summarize 可以通过您提供的本地 CLI 使用 NVIDIA Parakeet/Canary ONNX 模型。自动选择在配置时首先尝试 Groq,然后尝试 ONNX,再尝试 whisper.cpp 和其余云端回退。
设置助手: summarize transcriber setup
自动选择:设置 SUMMARIZE_ONNX_PARAKEET_CMD 或 SUMMARIZE_ONNX_CANARY_CMD
选择本地转写阶段: –transcriber parakeet|canary|whisper|auto
已验证的播客服务(2026-07-17)
Apple Podcasts
Spotify
小宇宙
Amazon Music / Audible 播客页面
Podbean
Podchaser
RSS 订阅(可用时支持 Podcasting 2.0 字幕)
嵌入式 YouTube 播客页面(例如 JREPodcast)
翻译路径
–language/–lang 控制摘要的输出语言(以及其他 LLM 生成文本)。默认值为 auto 。当输入是音频/视频时,CLI 需要先获得字幕,来源可以是现有字幕(YouTube 字幕、Podcasting 2.0 RSS)或 Whisper 转写回退。
配置
单一配置文件位置: ~/.summarize/config.json
运行 summarize status 以检查有效默认模型、配置的预设和模型提供商。
支持的键:
{
"model": { "id": "openai/gpt-5-mini" },
"env": { "OPENAI_API_KEY": "sk-…" },
"output": { "length": "long" },
"ui": { "theme": "ember" }
}
也支持:
model: { "mode": "auto" } (自动模型选择 + 回退)
model.rules (自定义候选项/排序)
models (定义可通过 –model <preset> 选择的预设)
env (通用的环境变量默认值;进程环境变量仍然优先)
apiKeys (旧版快捷方式,映射到环境变量名称;新配置建议使用 env )
output.length (默认 long )
cache.media (媒体下载缓存:默认 TTL 7 天,上限 2048 MB)
media.videoMode: "auto"|"transcript"|"understand"
media.embeddedVideo: "auto"|"off"|"prefer"|"both" (默认 auto )
slides.enabled / slides.max / slides.ocr / slides.dir ( –slides 的默认值)
ui.theme: "aurora"|"ember"|"moss"|"mono"
openai.useChatCompletions: true
openai.serviceTier: "fast"|"priority"|"flex"
openai.thinking / openai.reasoningEffort: "none"|"low"|"medium"|"high"|"xhigh"
openai.textVerbosity: "low"|"medium"|"high"
注意:配置以宽松方式解析(JSON5),但不允许注释。未知键将被忽略。
优先级:
–model
SUMMARIZE_MODEL
~/.summarize/config.json
默认值( auto )
环境变量
设置与您选择的 –model 匹配的密钥:
OPENAI_API_KEY (用于 openai/… )
NVIDIA_API_KEY (用于 nvidia/… )
MINIMAX_API_KEY (用于 minimax/… )
ANTHROPIC_API_KEY (用于 anthropic/… )
XAI_API_KEY (用于 xai/… )
Z_AI_API_KEY (用于 zai/… ;支持 ZAI_API_KEY 别名)
GEMINI_API_KEY (用于 google/… )—— 也接受 GOOGLE_GENERATIVE_AI_API_KEY 和 GOOGLE_API_KEY
OpenAI 兼容聊天补全切换:
OPENAI_USE_CHAT_COMPLETIONS=1
UI 主题:
SUMMARIZE_THEME=aurora|ember|moss|mono
SUMMARIZE_TRUECOLOR=1 (强制 24 位 ANSI)
SUMMARIZE_NO_TRUECOLOR=1 (禁用 24 位 ANSI)
OpenRouter(OpenAI 兼容):
设置 OPENROUTER_API_KEY=…
建议通过模型 ID 强制使用 OpenRouter: –model openrouter/<author>/<slug>
内置预设: –model free (使用一组默认的 OpenRouter :free 模型)
NVIDIA API Catalog:
设置 NVIDIA_API_KEY=…
可选: NVIDIA_BASE_URL=https://integrate.api.nvidia.com/v1
积分:API Catalog 试用版在注册时赠送 1000 个免费 API 积分
Z.AI (OpenAI 兼容):
Z_AI_API_KEY=… (或 ZAI_API_KEY=… )
可选的基础 URL 覆盖: Z_AI_BASE_URL=…
MiniMax(OpenAI 兼容):
设置 MINIMAX_API_KEY=…
可选的基础 URL 覆盖: MINIMAX_BASE_URL=… (默认 https://api.minimax.io/v1 )
可选服务:
FIRECRAWL_API_KEY (网站提取回退)
YT_DLP_PATH (yt-dlp 二进制文件路径)
GROQ_API_KEY (Groq Whisper 转写)
ASSEMBLYAI_API_KEY (AssemblyAI 转写)
ELEVENLABS_API_KEY (ElevenLabs Scribe v2 说话人识别)
GEMINI_API_KEY / GOOGLE_GENERATIVE_AI_API_KEY / GOOGLE_API_KEY (Gemini 转写)
SUMMARIZE_GEMINI_TRANSCRIPTION_MODEL (可选的 Gemini 模型覆盖;默认 gemini-2.5-flash )
OPENAI_API_KEY / OPENAI_WHISPER_BASE_URL (OpenAI Whisper 转写)
FAL_KEY (FAL AI API 密钥)
DEEPGRAM_API_KEY (Deepgram API 密钥)
SUMMARIZE_DEEPGRAM_TRANSCRIPTION_MODEL (可选的 Deepgram 模型覆盖;默认 nova-3 )
APIFY_API_TOKEN (YouTube 字幕回退)
summarize refresh-free
重新生成 free 预设( ~/.summarize/config.json 中的 models.free ),通过以下步骤:
获取 OpenRouter /models ,过滤出 :free 模型
跳过看起来非常小的模型(默认 <27B)
测试哪些模型返回非空文本
选择一组智能和快速的模型混合
精炼时序并将排序后的列表写回
如果 –model free 停止工作,运行:
summarize refresh-free
标志:
–runs 2 (默认):每个选中的模型额外运行次数
–smart 3 (默认):优先选择智能模型的数量(其余由最快模型填充)
–min-params 27b (默认):忽略推断参数小于 N 十亿的模型
–max-age-days 180 (默认):忽略早于 N 天的模型(设为 0 禁用)
–set-default :同时将 ~/.summarize/config.json 中的 "model" 设置为 "free"
模型限制
CLI 使用 LiteLLM 模型目录来获取模型限制(如最大输出令牌):
从以下地址下载: https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json
缓存位置: ~/.summarize/cache/
其他文档
CLI 提供商和配置
自动模型规则
网站提取
YouTube 处理
媒体管道
配置模式和优先级
故障排除
"Receiving end does not exist":Chrome 尚未注入内容脚本。扩展详情 -> 站点访问 -> 在所有站点上(或允许此域名)。重新加载标签页一次。
"Failed to fetch" / 守护进程无法访问:
summarize daemon status
对于非默认端口,确认 Options → Runtime → Daemon → Port 与守护进程配置一致。
日志: ~/.summarize/logs/daemon.err.log
许可证:MIT
试试这样做
- 请总结这个 YouTube 视频的核心观点,并提取其中的关键幻灯片截图。
- 请总结这个网页的内容,并列出其中的三个核心要点。
- 请分析这份 PDF 文档,并为我提供一份详细的摘要。
作者:Peter Steinberger 所有人 / 职场人 | GitHub Stars 6.5K | 标签:写作文案 视频 已认证 开源许可: MIT
来源:colaos.ai | Skill ID:summarize
留言 0
还没有留言,快来抢沙发