Includes 0.8.2, 0.8.1, and 0.8.0 (rolled up).
Fixed
- Packaging: ship CLI runtime deps and verify pack installs core + cli tarballs before publish.
- Packaging: move CLI runtime deps into dependencies so npm installs run cleanly.
Breaking
- ESM-only:
@steipete/summarize+@steipete/summarize-coreno longer support CommonJSrequire(); the CLI binary is now ESM.
Highlights
- Chrome: add a real Side Panel extension (MV3) that summarizes the current tab and renders streamed Markdown.
- Daemon: add
summarize daemon …(localhost server on127.0.0.1:8787) for extension ↔ CLI integration.- Autostart: macOS LaunchAgent, Linux systemd user service, Windows Scheduled Task
- Token pairing (shared secret)
- Streaming over SSE
- Emit finish-line metrics over SSE (panel footer + hover details)
- Commands:
install,status,restart,uninstall,run
- Cache: add SQLite cache for transcripts/extractions/summaries with
--no-cache,--cache-stats,--clear-cache+ config (cache.enabled/maxMb/ttlDays/path).- Finish line shows “Cached” for summary cache hits (CLI + daemon/extension)
- Daemon/Chrome stream cache status metadata (
summaryFromCache)
Features
- YouTube: add
--youtube no-autoto skip auto-generated captions and prefer creator-uploaded captions; fall back toyt-dlptranscription (thanks @dougvk!). - CLI: add transcript → Markdown formatting via
--extract --format md --markdown-mode llm(thanks @dougvk!). - X/Twitter: auto-transcribe tweet videos via
yt-dlp, using browser cookies (Chrome → Safari → Firefox) when available; setTWITTER_COOKIE_SOURCE/TWITTER_*_PROFILEto control cookie extraction order. - Prompt overrides: add
--prompt,--prompt-file, and configpromptto replace the default summary instructions. - Chrome Side Panel: add length + language controls (presets + custom), forwarded to the daemon.
- Daemon API:
mode: "auto"accepts bothurl+ extracted pagetext; daemon picks the best pipeline (YouTube/podcasts/media → URL, otherwise prefer visible page text) with a fallback attempt. - Daemon/Chrome: stream extra run metadata (
inputSummary,modelLabel) over SSE for richer panel status. - Core: expose lightweight URL helpers at
@steipete/summarize-core/content/url(YouTube/Twitter/podcast/direct-media detection). - Chrome Side Panel: new icon + extension
homepage_urlset tosummarize.sh. - Providers: add configurable API base URLs (config + env) for OpenAI/Anthropic/Google/xAI (thanks @bunchjesse for the nudge).
Improvements
- Chrome Side Panel: stream SSE from the panel (no MV3 background stalls), use runtime messaging to avoid “disconnected port” errors, and improve auto-summarize de-dupe.
- Chrome Side Panel UI: working status in header + 1px progress line (no layout jump), full-width subtitle, page title in header, idle subtitle shows
words/chars(or media duration + words) + model, subtle metrics footer, continuous background, and native highlight/link accents. - Daemon: prefer the installed env snapshot over launchd’s minimal environment (improves
yt-dlp/whisper.cppPATH reliability, especially for X/Twitter video transcription). - X/Twitter: cookie handling now delegates to
yt-dlp --cookies-from-browser(no sweet-cookie dependency). - X/Twitter: skip yt-dlp transcript attempts for long-form tweet text (articles).
- Transcripts: show yt-dlp download progress bytes and stabilize totals to prevent bouncing progress bars.
- Finish line: show transcript source labels (
YouTube/podcast) without repeating the label. - Streaming: stop/clear progress UI before first streamed output and avoid leading blank lines on non-TTY stdout.
- URL flow: propagate
extracted.truncatedinto the prompt context so summaries can reflect partial inputs. - Daemon: unify URL/page summarization with the CLI flows (single code path; keeps extract/cache/model logic in sync).
- Prompts: auto-require Markdown section headings for longer summaries (xl/xxl or large custom lengths).