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-dlpflow;transcriptionProvidershould reportassemblyai. - 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(seedocs/config.md→ “Presets”), then: summarize --model <preset> --max-output-tokens 200 https://example.com- If the preset contains OpenRouter models, ensure
OPENROUTER_API_KEYis set.
#Images
- Local image (auto uses API models by default; enable CLI via
cli.enabledto 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