命令列工具
steipete/summarize avatar
steipete/summarize

Summarize 瀏覽器擴充功能:從 README 看實際使用邊界

此專案圍繞「Point at any URL/YouTube/Podcast or file. Get the gist. CLI and Chrome Extension.」建置,聚焦實際場景的開源實作,提供可重用的工具鏈與整合方式。

6,620 個 Star443 個 ForkTypeScriptMIT

秒懂

它是什麼?
steipete/summarize 的 README 與倉庫資料整理,聚焦於可核對的使用入口、架構邊界、限制和維護判斷。
適合誰用?
適合需要 summarize 所處理問題,且能依 README 指定命令、目錄與設定逐項核對的團隊。不適合把未載明的相容性或效能當成既定承諾的場景。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

適用於 Chrome 和 Firefox 的側邊欄摘要

README 描述了一個用於 Chrome 和 Firefox 的瀏覽器擴充功能,可將 AI 生成的摘要串流顯示在瀏覽器側邊欄中。在 Chrome 120 及更高版本中,點擊工具列圖示會自動開啟側邊欄。在 Firefox 140 及更高版本中,同一個工具列圖示可切換側邊欄,快捷鍵 Ctrl+Shift+U 在 Windows 和 Linux 上執行相同操作,macOS 上則為 Cmd+Shift+U。文件與設定指南位於 https://summarize.sh。該儲存庫使用 TypeScript 編寫。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 1 個觀察點。

手動建置和安裝步驟

該擴充功能使用 pnpm 建置。在儲存庫根目錄執行 pnpm install,然後使用針對目標的命令:pnpm -C apps/chrome-extension dev 用於 Chrome 開發,dev:firefox 用於 Firefox 開發,build 用於生產 Chrome 建置,build:firefox 用於生產 Firefox 建置。build:all 會同時產生兩者。要載入未封裝的 Chrome 擴充功能,先建置,開啟 chrome://extensions,啟用開發人員模式,按一下載入未封裝項目,然後選擇 apps/chrome-extension/.output/chrome-mv3。Firefox 安裝使用 about:debugging#/runtime/this-firefox,載入暫時附加元件,並選擇 apps/chrome-extension/.output/firefox-mv3 中的 manifest.json。暫時的 Firefox 附加元件在重新啟動後會消失,永久安裝需要透過 AMO 簽署。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 2 個觀察點。

Direct 和 Daemon 兩種 AI 執行環境

該擴充功能將 AI 連線與媒體和幻燈片提取分開。在 Direct 模式下,Auto 設定使用 Chrome 內建的 Gemini Nano Summarizer API,並帶有提取式回退,可立即運作。Auto 也可以直接呼叫已設定的 OpenAI、OpenRouter、Anthropic、Gemini、xAI、Z.AI、NVIDIA、MiniMax、GitHub Models、Ollama 或相容的覆寫端點。Gemini Nano 也可以被明確選擇。提供者金鑰儲存在 chrome.storage.local 中,並且只傳送給選定的提供者。在 Daemon 模式下,擴充功能與本機 Summarize 守護程序通訊,該程序處理提供者、CLI 回退、快取和診斷。媒體和幻燈片可以獨立使用 Browser 或 Daemon 執行環境;Browser 媒體使用 MediaBunny 和原生 WebCodecs 處理可取得的影片幻燈片(最大 128 MB),使用 Gemini Nano 對每張幻燈片進行摘要,並使用本機 Whisper 轉錄無字幕的 YouTube 影片。Daemon 媒體增加了 OCR、可設定的轉錄提供者、更廣泛的媒體支援和 Firefox 媒體支援。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 3 個觀察點。

設定本機守護程序

守護程序是可選的。使用 npm i -g @steipete/summarize 全域安裝,這需要 Node.js 24 或更高版本,或者在 macOS 和 Linux 上使用 brew install summarize。在擴充功能中,前往 Options、Runtime、Daemon,啟用本機伴侶,並批准 Chrome 的可選原生訊息傳遞權限。然後從擴充功能複製配對權杖和安裝命令,並在終端機中執行。安裝命令會註冊名為 com.steipete.summarize 的原生主機,用於確切的 Web Store 擴充功能 ID。使用 summarize daemon status 驗證,使用 summarize daemon restart 重新啟動。README 指出,透過 npm 安裝的 Windows CLI 在 Daemon 模式可用之前仍需要封裝的原生主機 .exe;Direct 和 Browser 模式不受影響。Chrome 僅透過該原生主機與守護程序通訊。公司管理員可以使用 Chrome 原則封鎖所有守護程序存取,同時保留 Direct 和 Browser 模式,參見 docs/chrome-enterprise.md。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 4 個觀察點。

可選的網站自動化

摘要、聊天和瀏覽器媒體不需要 Chrome 的 userScripts 或 debugger 權限。網站自動化預設關閉。透過 Options、Enable automation permissions 啟用時,會從明確的使用者點擊請求可選的 userScripts 存取權限,以便使用者請求的 browserjs() 或 REPL 程式碼可以在頁面的主要世界中執行。Chrome 不允許將 debugger 宣告為可選,因此標準建置省略了它並隱藏了偵錯工具。單獨的建置 pnpm -C apps/chrome-extension build:automation 會建立啟用偵錯器的建置,用於原生點擊、輸入和按鍵。該建置將 debugger 宣告為必要,僅在執行偵錯器支援的命令時附加,之後分離。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 5 個觀察點。

摘要長度預設

該擴充功能提供與 CLI 相同的長度預設:short、medium、long、xl 和 xxl,以及自訂值(如 20k)。工具提示顯示目標長度、範圍和段落指導。這些預設的權威來源是儲存庫中的 packages/core/src/prompts/summary-lengths.ts。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 6 個觀察點。

summarize 的輸入分流

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的 README 將這個部分放在 summarize 的輸入分流 所涉及的使用路徑中。實際判斷不能只看功能名稱,還要看輸入如何進入程式、結果由哪個檔案或命令輸出,以及失敗時文件是否提供可追查的訊息。對 summarize 而言,這些邊界比抽象的功能清單更能說明它適合放在開發流程的哪一段。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 7 個觀察點。

指令列的輸出契約

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的 README 將這個部分放在 指令列的輸出契約 所涉及的使用路徑中。實際判斷不能只看功能名稱,還要看輸入如何進入程式、結果由哪個檔案或命令輸出,以及失敗時文件是否提供可追查的訊息。對 summarize 而言,這些邊界比抽象的功能清單更能說明它適合放在開發流程的哪一段。

以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。 steipete/summarize 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 summarize 的第 8 個觀察點。

編輯結論

適合需要 summarize 所處理問題,且能依 README 指定命令、目錄與設定逐項核對的團隊。不適合把未載明的相容性或效能當成既定承諾的場景。先執行專案文件中的具體入口,觀察輸入、輸出與錯誤位置,再決定是否納入正式流程。以 summarize --extract --plain 先觀察抽取結果,再用 --json 檢查自動化外殼;若要處理投影片,才加入 --slides。這組差異直接決定工作流是否需要模型、媒體工具或 OCR。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記