Reference

Manual tests

Manual tests

Goal: sanity-check auto selection + presets end-to-end.

#Setup

  • OPENAI_API_KEY=... (optional)
  • ASSEMBLYAI_API_KEY=... (optional)
  • GEMINI_API_KEY=... (optional)
  • ANTHROPIC_API_KEY=... (optional)
  • XAI_API_KEY=... (optional)
  • OPENROUTER_API_KEY=... (optional)
  • Z_AI_API_KEY=... (optional)

Tip: use --verbose to see model attempts + the chosen model.

#Auto (default)

  • Website summary (should pick a model, show it in spinner):
  • summarize --max-output-tokens 200 https://example.com
  • No-model-needed shortcut (should print extracted text; no footer “no model needed”):
  • summarize --max-output-tokens 99999 https://example.com
  • Missing-key skip (configure only one key; should skip other providers, still succeed):
  • Set only OPENAI_API_KEY, then run a website summary; should not try Gemini/Anthropic/XAI.
  • AssemblyAI transcript path:
  • Set only ASSEMBLYAI_API_KEY, then run a podcast URL or --youtube yt-dlp flow; transcriptionProvider should report assemblyai.
  • Podcast URL (Whisper): should show “Downloading audio …” then “Transcribing …” with duration when known.
  • summarize https://podcasts.apple.com/us/podcast/2424-jelly-roll/id360084272?i=1000740717432 --metrics detailed

#Presets

  • Define a preset in ~/.summarize/config.json (see docs/config.md → “Presets”), then:
  • summarize --model <preset> --max-output-tokens 200 https://example.com
  • If the preset contains OpenRouter models, ensure OPENROUTER_API_KEY is set.

#Images

  • Local image (auto uses API models by default; enable CLI via cli.enabled to test CLIs):
  • summarize ./path/to/image.png --max-output-tokens 200

#Video

  • YouTube:
  • summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ --max-output-tokens 200
  • YouTube summary w/ timestamps (expect [mm:ss] in output):
  • summarize --timestamps --youtube web --length short https://www.youtube.com/watch?v=I845O57ZSy4
  • Local video understanding (requires Gemini video-capable model; otherwise expect an error or transcript-only behavior depending on input):
  • summarize ./path/to/video.mp4 --max-output-tokens 200

#Browser-local transcription

After building the extension, run SUMMARIZE_LIVE_BROWSER_MEDIA=1 pnpm -C apps/chrome-extension exec playwright test tests/browser-media-local.live.spec.ts --project=chromium. This downloads a public speech fixture and runs real MediaBunny decoding plus local Whisper inference for embedded and direct audio; no cloud transcription key is needed. Only the navigation documents are fixtures, not the media bytes or model output. Private media URLs remain rejected, and terminal extraction errors fail the test immediately rather than waiting for the success timeout.

#Z.AI

  • summarize --model zai/glm-4.7 --max-output-tokens 200 https://example.com