@steipete/summarize 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +80 -28
- package/README.md +115 -30
- package/dist/cli.js +1 -1
- package/dist/esm/cache.js +67 -65
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/cli-main.js +27 -27
- package/dist/esm/cli-main.js.map +1 -1
- package/dist/esm/cli.js +2 -2
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/config.js +310 -166
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/content/asset.js +53 -50
- package/dist/esm/content/asset.js.map +1 -1
- package/dist/esm/content/index.js +1 -1
- package/dist/esm/content/index.js.map +1 -1
- package/dist/esm/costs.js +1 -1
- package/dist/esm/costs.js.map +1 -1
- package/dist/esm/daemon/agent.js +165 -164
- package/dist/esm/daemon/agent.js.map +1 -1
- package/dist/esm/daemon/auto-mode.js +3 -3
- package/dist/esm/daemon/auto-mode.js.map +1 -1
- package/dist/esm/daemon/chat.js +16 -14
- package/dist/esm/daemon/chat.js.map +1 -1
- package/dist/esm/daemon/cli-entrypoint.js +72 -0
- package/dist/esm/daemon/cli-entrypoint.js.map +1 -0
- package/dist/esm/daemon/cli.js +63 -87
- package/dist/esm/daemon/cli.js.map +1 -1
- package/dist/esm/daemon/config.js +15 -15
- package/dist/esm/daemon/config.js.map +1 -1
- package/dist/esm/daemon/constants.js +6 -6
- package/dist/esm/daemon/constants.js.map +1 -1
- package/dist/esm/daemon/env-merge.js.map +1 -1
- package/dist/esm/daemon/env-snapshot.js +36 -31
- package/dist/esm/daemon/env-snapshot.js.map +1 -1
- package/dist/esm/daemon/flow-context.js +59 -28
- package/dist/esm/daemon/flow-context.js.map +1 -1
- package/dist/esm/daemon/launchd.js +100 -55
- package/dist/esm/daemon/launchd.js.map +1 -1
- package/dist/esm/daemon/meta.js +5 -5
- package/dist/esm/daemon/meta.js.map +1 -1
- package/dist/esm/daemon/models.js +54 -31
- package/dist/esm/daemon/models.js.map +1 -1
- package/dist/esm/daemon/process-registry.js +15 -15
- package/dist/esm/daemon/process-registry.js.map +1 -1
- package/dist/esm/daemon/schtasks.js +42 -42
- package/dist/esm/daemon/schtasks.js.map +1 -1
- package/dist/esm/daemon/server.js +248 -244
- package/dist/esm/daemon/server.js.map +1 -1
- package/dist/esm/daemon/summarize-progress.js +11 -11
- package/dist/esm/daemon/summarize-progress.js.map +1 -1
- package/dist/esm/daemon/summarize.js +29 -29
- package/dist/esm/daemon/summarize.js.map +1 -1
- package/dist/esm/daemon/systemd.js +47 -47
- package/dist/esm/daemon/systemd.js.map +1 -1
- package/dist/esm/firecrawl.js +12 -12
- package/dist/esm/firecrawl.js.map +1 -1
- package/dist/esm/flags.js +32 -32
- package/dist/esm/flags.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/language.js +1 -1
- package/dist/esm/language.js.map +1 -1
- package/dist/esm/llm/cli.js +128 -64
- package/dist/esm/llm/cli.js.map +1 -1
- package/dist/esm/llm/errors.js +1 -1
- package/dist/esm/llm/errors.js.map +1 -1
- package/dist/esm/llm/generate-text.js +107 -98
- package/dist/esm/llm/generate-text.js.map +1 -1
- package/dist/esm/llm/google-models.js +17 -17
- package/dist/esm/llm/google-models.js.map +1 -1
- package/dist/esm/llm/html-to-markdown.js +3 -3
- package/dist/esm/llm/html-to-markdown.js.map +1 -1
- package/dist/esm/llm/model-id.js +38 -16
- package/dist/esm/llm/model-id.js.map +1 -1
- package/dist/esm/llm/prompt.js +5 -5
- package/dist/esm/llm/prompt.js.map +1 -1
- package/dist/esm/llm/providers/anthropic.js +33 -33
- package/dist/esm/llm/providers/anthropic.js.map +1 -1
- package/dist/esm/llm/providers/google.js +19 -19
- package/dist/esm/llm/providers/google.js.map +1 -1
- package/dist/esm/llm/providers/models.js +30 -30
- package/dist/esm/llm/providers/models.js.map +1 -1
- package/dist/esm/llm/providers/openai.js +35 -34
- package/dist/esm/llm/providers/openai.js.map +1 -1
- package/dist/esm/llm/providers/shared.js +8 -8
- package/dist/esm/llm/providers/shared.js.map +1 -1
- package/dist/esm/llm/transcript-to-markdown.js +9 -5
- package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
- package/dist/esm/llm/usage.js +18 -18
- package/dist/esm/llm/usage.js.map +1 -1
- package/dist/esm/logging/daemon.js +21 -21
- package/dist/esm/logging/daemon.js.map +1 -1
- package/dist/esm/logging/ring-file.js +5 -5
- package/dist/esm/logging/ring-file.js.map +1 -1
- package/dist/esm/markitdown.js +21 -19
- package/dist/esm/markitdown.js.map +1 -1
- package/dist/esm/media-cache.js +39 -39
- package/dist/esm/media-cache.js.map +1 -1
- package/dist/esm/model-auto.js +175 -106
- package/dist/esm/model-auto.js.map +1 -1
- package/dist/esm/model-spec.js +52 -42
- package/dist/esm/model-spec.js.map +1 -1
- package/dist/esm/pricing/litellm.js +4 -4
- package/dist/esm/pricing/litellm.js.map +1 -1
- package/dist/esm/processes.js +1 -1
- package/dist/esm/processes.js.map +1 -1
- package/dist/esm/prompts/index.js +1 -1
- package/dist/esm/prompts/index.js.map +1 -1
- package/dist/esm/refresh-free.js +81 -81
- package/dist/esm/refresh-free.js.map +1 -1
- package/dist/esm/run/attachments.js +47 -44
- package/dist/esm/run/attachments.js.map +1 -1
- package/dist/esm/run/bird.js +26 -26
- package/dist/esm/run/bird.js.map +1 -1
- package/dist/esm/run/cache-state.js +7 -7
- package/dist/esm/run/cache-state.js.map +1 -1
- package/dist/esm/run/cli-fallback-state.js +45 -0
- package/dist/esm/run/cli-fallback-state.js.map +1 -0
- package/dist/esm/run/cli-preflight.js +24 -24
- package/dist/esm/run/cli-preflight.js.map +1 -1
- package/dist/esm/run/constants.js +12 -12
- package/dist/esm/run/constants.js.map +1 -1
- package/dist/esm/run/cookies/twitter.js +47 -47
- package/dist/esm/run/cookies/twitter.js.map +1 -1
- package/dist/esm/run/env.js +21 -15
- package/dist/esm/run/env.js.map +1 -1
- package/dist/esm/run/fetch-with-timeout.js +4 -4
- package/dist/esm/run/fetch-with-timeout.js.map +1 -1
- package/dist/esm/run/finish-line.js +68 -68
- package/dist/esm/run/finish-line.js.map +1 -1
- package/dist/esm/run/flows/asset/extract.js +15 -15
- package/dist/esm/run/flows/asset/extract.js.map +1 -1
- package/dist/esm/run/flows/asset/input.js +47 -66
- package/dist/esm/run/flows/asset/input.js.map +1 -1
- package/dist/esm/run/flows/asset/media-policy.js +1 -1
- package/dist/esm/run/flows/asset/media-policy.js.map +1 -1
- package/dist/esm/run/flows/asset/media.js +49 -40
- package/dist/esm/run/flows/asset/media.js.map +1 -1
- package/dist/esm/run/flows/asset/output.js +12 -12
- package/dist/esm/run/flows/asset/output.js.map +1 -1
- package/dist/esm/run/flows/asset/preprocess.js +79 -44
- package/dist/esm/run/flows/asset/preprocess.js.map +1 -1
- package/dist/esm/run/flows/asset/summary.js +173 -106
- package/dist/esm/run/flows/asset/summary.js.map +1 -1
- package/dist/esm/run/flows/url/extract.js +26 -26
- package/dist/esm/run/flows/url/extract.js.map +1 -1
- package/dist/esm/run/flows/url/flow.js +104 -98
- package/dist/esm/run/flows/url/flow.js.map +1 -1
- package/dist/esm/run/flows/url/markdown.js +57 -57
- package/dist/esm/run/flows/url/markdown.js.map +1 -1
- package/dist/esm/run/flows/url/slides-output.js +61 -59
- package/dist/esm/run/flows/url/slides-output.js.map +1 -1
- package/dist/esm/run/flows/url/slides-text.js +85 -85
- package/dist/esm/run/flows/url/slides-text.js.map +1 -1
- package/dist/esm/run/flows/url/summary.js +174 -107
- package/dist/esm/run/flows/url/summary.js.map +1 -1
- package/dist/esm/run/format.js +10 -10
- package/dist/esm/run/format.js.map +1 -1
- package/dist/esm/run/help.js +141 -135
- package/dist/esm/run/help.js.map +1 -1
- package/dist/esm/run/logging.js +10 -10
- package/dist/esm/run/logging.js.map +1 -1
- package/dist/esm/run/markdown.js +12 -12
- package/dist/esm/run/markdown.js.map +1 -1
- package/dist/esm/run/media-cache-state.js +5 -5
- package/dist/esm/run/media-cache-state.js.map +1 -1
- package/dist/esm/run/model-attempts.js.map +1 -1
- package/dist/esm/run/openrouter.js +11 -11
- package/dist/esm/run/openrouter.js.map +1 -1
- package/dist/esm/run/progress.js +1 -1
- package/dist/esm/run/progress.js.map +1 -1
- package/dist/esm/run/run-config.js +16 -16
- package/dist/esm/run/run-config.js.map +1 -1
- package/dist/esm/run/run-context.js +2 -2
- package/dist/esm/run/run-context.js.map +1 -1
- package/dist/esm/run/run-env.js +55 -54
- package/dist/esm/run/run-env.js.map +1 -1
- package/dist/esm/run/run-input.js +3 -3
- package/dist/esm/run/run-input.js.map +1 -1
- package/dist/esm/run/run-metrics.js +16 -16
- package/dist/esm/run/run-metrics.js.map +1 -1
- package/dist/esm/run/run-models.js +28 -23
- package/dist/esm/run/run-models.js.map +1 -1
- package/dist/esm/run/run-output.js +3 -3
- package/dist/esm/run/run-output.js.map +1 -1
- package/dist/esm/run/run-settings.js +83 -34
- package/dist/esm/run/run-settings.js.map +1 -1
- package/dist/esm/run/run-stream.js +4 -4
- package/dist/esm/run/run-stream.js.map +1 -1
- package/dist/esm/run/runner.js +166 -127
- package/dist/esm/run/runner.js.map +1 -1
- package/dist/esm/run/slides-cli.js +43 -42
- package/dist/esm/run/slides-cli.js.map +1 -1
- package/dist/esm/run/slides-render.js +36 -36
- package/dist/esm/run/slides-render.js.map +1 -1
- package/dist/esm/run/stdin-temp-file.js +77 -0
- package/dist/esm/run/stdin-temp-file.js.map +1 -0
- package/dist/esm/run/stream-output.js +7 -7
- package/dist/esm/run/stream-output.js.map +1 -1
- package/dist/esm/run/streaming.js +16 -16
- package/dist/esm/run/streaming.js.map +1 -1
- package/dist/esm/run/summary-engine.js +57 -51
- package/dist/esm/run/summary-engine.js.map +1 -1
- package/dist/esm/run/summary-llm.js +3 -3
- package/dist/esm/run/summary-llm.js.map +1 -1
- package/dist/esm/run/terminal.js +4 -4
- package/dist/esm/run/terminal.js.map +1 -1
- package/dist/esm/run/tips.js +2 -2
- package/dist/esm/run/tips.js.map +1 -1
- package/dist/esm/run/transcriber-cli.js +49 -49
- package/dist/esm/run/transcriber-cli.js.map +1 -1
- package/dist/esm/run.js +1 -1
- package/dist/esm/run.js.map +1 -1
- package/dist/esm/shared/contracts.js +1 -1
- package/dist/esm/shared/contracts.js.map +1 -1
- package/dist/esm/shared/sse-events.js +16 -16
- package/dist/esm/shared/sse-events.js.map +1 -1
- package/dist/esm/shared/streaming-merge.js +3 -3
- package/dist/esm/shared/streaming-merge.js.map +1 -1
- package/dist/esm/slides/extract.js +258 -249
- package/dist/esm/slides/extract.js.map +1 -1
- package/dist/esm/slides/index.js +3 -3
- package/dist/esm/slides/index.js.map +1 -1
- package/dist/esm/slides/settings.js +14 -14
- package/dist/esm/slides/settings.js.map +1 -1
- package/dist/esm/slides/store.js +9 -9
- package/dist/esm/slides/store.js.map +1 -1
- package/dist/esm/tty/format.js +13 -13
- package/dist/esm/tty/format.js.map +1 -1
- package/dist/esm/tty/osc-progress.js +1 -1
- package/dist/esm/tty/osc-progress.js.map +1 -1
- package/dist/esm/tty/progress/fetch-html.js +14 -14
- package/dist/esm/tty/progress/fetch-html.js.map +1 -1
- package/dist/esm/tty/progress/transcript.js +70 -62
- package/dist/esm/tty/progress/transcript.js.map +1 -1
- package/dist/esm/tty/spinner.js +20 -9
- package/dist/esm/tty/spinner.js.map +1 -1
- package/dist/esm/tty/theme.js +92 -92
- package/dist/esm/tty/theme.js.map +1 -1
- package/dist/esm/tty/website-progress.js +32 -32
- package/dist/esm/tty/website-progress.js.map +1 -1
- package/dist/esm/version.js +29 -29
- package/dist/esm/version.js.map +1 -1
- package/dist/types/cache.d.ts +6 -6
- package/dist/types/config.d.ts +49 -7
- package/dist/types/content/asset.d.ts +8 -6
- package/dist/types/content/index.d.ts +1 -1
- package/dist/types/costs.d.ts +3 -3
- package/dist/types/daemon/agent.d.ts +1 -1
- package/dist/types/daemon/auto-mode.d.ts +3 -3
- package/dist/types/daemon/chat.d.ts +2 -2
- package/dist/types/daemon/cli-entrypoint.d.ts +2 -0
- package/dist/types/daemon/config.d.ts +2 -2
- package/dist/types/daemon/env-merge.d.ts +1 -1
- package/dist/types/daemon/env-snapshot.d.ts +1 -1
- package/dist/types/daemon/flow-context.d.ts +7 -7
- package/dist/types/daemon/launchd.d.ts +8 -0
- package/dist/types/daemon/models.d.ts +6 -2
- package/dist/types/daemon/process-registry.d.ts +5 -5
- package/dist/types/daemon/server.d.ts +2 -2
- package/dist/types/daemon/summarize-progress.d.ts +1 -1
- package/dist/types/daemon/summarize.d.ts +7 -7
- package/dist/types/firecrawl.d.ts +1 -1
- package/dist/types/flags.d.ts +11 -11
- package/dist/types/index.d.ts +4 -4
- package/dist/types/language.d.ts +1 -1
- package/dist/types/llm/attachments.d.ts +1 -1
- package/dist/types/llm/cli.d.ts +3 -3
- package/dist/types/llm/generate-text.d.ts +7 -7
- package/dist/types/llm/html-to-markdown.d.ts +3 -3
- package/dist/types/llm/model-id.d.ts +1 -1
- package/dist/types/llm/prompt.d.ts +2 -2
- package/dist/types/llm/providers/anthropic.d.ts +3 -3
- package/dist/types/llm/providers/google.d.ts +3 -3
- package/dist/types/llm/providers/models.d.ts +2 -2
- package/dist/types/llm/providers/openai.d.ts +4 -4
- package/dist/types/llm/providers/shared.d.ts +2 -2
- package/dist/types/llm/transcript-to-markdown.d.ts +4 -2
- package/dist/types/llm/usage.d.ts +1 -1
- package/dist/types/logging/daemon.d.ts +4 -4
- package/dist/types/markitdown.d.ts +1 -1
- package/dist/types/media-cache.d.ts +2 -2
- package/dist/types/model-auto.d.ts +14 -4
- package/dist/types/model-spec.d.ts +10 -10
- package/dist/types/pricing/litellm.d.ts +1 -1
- package/dist/types/processes.d.ts +1 -1
- package/dist/types/prompts/index.d.ts +1 -1
- package/dist/types/run/attachments.d.ts +7 -7
- package/dist/types/run/bird.d.ts +2 -2
- package/dist/types/run/cache-state.d.ts +2 -2
- package/dist/types/run/cli-fallback-state.d.ts +6 -0
- package/dist/types/run/constants.d.ts +1 -1
- package/dist/types/run/cookies/twitter.d.ts +1 -1
- package/dist/types/run/env.d.ts +1 -1
- package/dist/types/run/finish-line.d.ts +5 -5
- package/dist/types/run/flows/asset/extract.d.ts +4 -4
- package/dist/types/run/flows/asset/input.d.ts +9 -3
- package/dist/types/run/flows/asset/media.d.ts +1 -1
- package/dist/types/run/flows/asset/output.d.ts +5 -5
- package/dist/types/run/flows/asset/preprocess.d.ts +23 -17
- package/dist/types/run/flows/asset/summary.d.ts +19 -17
- package/dist/types/run/flows/url/extract.d.ts +1 -1
- package/dist/types/run/flows/url/flow.d.ts +1 -1
- package/dist/types/run/flows/url/markdown.d.ts +6 -6
- package/dist/types/run/flows/url/slides-output.d.ts +7 -7
- package/dist/types/run/flows/url/slides-text.d.ts +9 -9
- package/dist/types/run/flows/url/summary.d.ts +11 -11
- package/dist/types/run/flows/url/types.d.ts +26 -22
- package/dist/types/run/format.d.ts +3 -3
- package/dist/types/run/help.d.ts +1 -1
- package/dist/types/run/media-cache-state.d.ts +2 -2
- package/dist/types/run/model-attempts.d.ts +1 -1
- package/dist/types/run/run-config.d.ts +4 -4
- package/dist/types/run/run-context.d.ts +3 -1
- package/dist/types/run/run-env.d.ts +3 -1
- package/dist/types/run/run-input.d.ts +2 -2
- package/dist/types/run/run-metrics.d.ts +3 -3
- package/dist/types/run/run-models.d.ts +3 -2
- package/dist/types/run/run-output.d.ts +1 -1
- package/dist/types/run/run-settings.d.ts +15 -6
- package/dist/types/run/run-stream.d.ts +2 -2
- package/dist/types/run/runner.d.ts +3 -2
- package/dist/types/run/slides-render.d.ts +4 -4
- package/dist/types/run/stdin-temp-file.d.ts +9 -0
- package/dist/types/run/stream-output.d.ts +1 -1
- package/dist/types/run/streaming.d.ts +4 -4
- package/dist/types/run/summary-engine.d.ts +11 -11
- package/dist/types/run/summary-llm.d.ts +5 -5
- package/dist/types/run/types.d.ts +4 -4
- package/dist/types/run.d.ts +1 -1
- package/dist/types/shared/contracts.d.ts +2 -2
- package/dist/types/shared/sse-events.d.ts +9 -9
- package/dist/types/slides/extract.d.ts +5 -4
- package/dist/types/slides/index.d.ts +5 -5
- package/dist/types/slides/store.d.ts +2 -2
- package/dist/types/slides/types.d.ts +2 -2
- package/dist/types/tty/osc-progress.d.ts +5 -5
- package/dist/types/tty/progress/fetch-html.d.ts +3 -3
- package/dist/types/tty/progress/transcript.d.ts +3 -3
- package/dist/types/tty/spinner.d.ts +2 -2
- package/dist/types/tty/theme.d.ts +2 -2
- package/dist/types/tty/website-progress.d.ts +3 -3
- package/dist/types/version.d.ts +1 -1
- package/docs/agent.md +38 -4
- package/docs/assets/site.js +46 -46
- package/docs/chrome-extension.md +11 -5
- package/docs/cli.md +59 -13
- package/docs/config.md +59 -10
- package/docs/extract-only.md +2 -0
- package/docs/index.html +33 -14
- package/docs/llm.md +7 -4
- package/docs/media.md +5 -4
- package/docs/model-auto.md +3 -2
- package/docs/nvidia-onnx-transcription.md +3 -3
- package/docs/openai.md +1 -1
- package/docs/releasing.md +3 -0
- package/docs/site/404.html +4 -1
- package/docs/site/assets/site.js +46 -46
- package/docs/site/docs/chrome-extension.html +18 -6
- package/docs/site/docs/config.html +29 -8
- package/docs/site/docs/extract-only.html +16 -4
- package/docs/site/docs/firecrawl.html +12 -3
- package/docs/site/docs/index.html +35 -6
- package/docs/site/docs/llm.html +19 -5
- package/docs/site/docs/openai.html +18 -5
- package/docs/site/docs/website.html +29 -9
- package/docs/site/docs/youtube.html +12 -3
- package/docs/site/index.html +33 -14
- package/docs/slides.md +13 -5
- package/docs/smoketest.md +29 -20
- package/docs/timestamps.md +21 -0
- package/docs/website.md +2 -1
- package/docs/youtube.md +4 -0
- package/package.json +36 -35
|
@@ -46,22 +46,31 @@
|
|
|
46
46
|
<p class="kicker">product</p>
|
|
47
47
|
<h1>Chrome extension</h1>
|
|
48
48
|
<p>
|
|
49
|
-
Summarize ships a Chrome Side Panel extension backed by a tiny local daemon. It streams
|
|
50
|
-
for the active tab and supports auto-summarize on navigation.
|
|
49
|
+
Summarize ships a Chrome Side Panel extension backed by a tiny local daemon. It streams
|
|
50
|
+
Markdown summaries for the active tab and supports auto-summarize on navigation.
|
|
51
51
|
</p>
|
|
52
52
|
|
|
53
53
|
<h2>Setup</h2>
|
|
54
54
|
<ul>
|
|
55
|
-
<li
|
|
55
|
+
<li>
|
|
56
|
+
<code>npm i -g @steipete/summarize</code> or
|
|
57
|
+
<code>brew install steipete/tap/summarize</code>
|
|
58
|
+
</li>
|
|
56
59
|
<li>Build extension: <code>pnpm -C apps/chrome-extension build</code></li>
|
|
57
60
|
<li>Load unpacked: <code>apps/chrome-extension/.output/chrome-mv3</code></li>
|
|
58
|
-
<li>
|
|
61
|
+
<li>
|
|
62
|
+
Open side panel → copy token command → run
|
|
63
|
+
<code>summarize daemon install --token <TOKEN></code>
|
|
64
|
+
</li>
|
|
59
65
|
<li>Verify: <code>summarize daemon status</code></li>
|
|
60
66
|
</ul>
|
|
61
67
|
|
|
62
68
|
<h2>Dev</h2>
|
|
63
69
|
<ul>
|
|
64
|
-
<li>
|
|
70
|
+
<li>
|
|
71
|
+
Install daemon for dev:
|
|
72
|
+
<code>pnpm summarize daemon install --token <TOKEN> --dev</code>
|
|
73
|
+
</li>
|
|
65
74
|
<li>Dev server: <code>pnpm -C apps/chrome-extension dev</code></li>
|
|
66
75
|
</ul>
|
|
67
76
|
|
|
@@ -80,7 +89,10 @@
|
|
|
80
89
|
|
|
81
90
|
<footer class="footer">
|
|
82
91
|
<span>summarize — Link → clean text → summary.</span>
|
|
83
|
-
<span
|
|
92
|
+
<span
|
|
93
|
+
><a href="./index.html">Docs</a> ·
|
|
94
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
95
|
+
>
|
|
84
96
|
</footer>
|
|
85
97
|
</main>
|
|
86
98
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/config" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -42,30 +45,48 @@
|
|
|
42
45
|
<article class="doc reveal">
|
|
43
46
|
<p class="kicker">docs</p>
|
|
44
47
|
<h1>Config</h1>
|
|
45
|
-
<p>
|
|
48
|
+
<p>
|
|
49
|
+
summarize is mostly flags + env vars. Keep secrets in env; keep defaults in a shell
|
|
50
|
+
profile.
|
|
51
|
+
</p>
|
|
46
52
|
|
|
47
53
|
<h2>Environment variables</h2>
|
|
48
54
|
<ul>
|
|
49
|
-
<li
|
|
50
|
-
|
|
55
|
+
<li>
|
|
56
|
+
<code>OPENAI_API_KEY</code>, <code>XAI_API_KEY</code>, <code>GEMINI_API_KEY</code> —
|
|
57
|
+
provider keys (only needed when a mode actually calls an LLM).
|
|
58
|
+
</li>
|
|
59
|
+
<li>
|
|
60
|
+
<code>FIRECRAWL_API_KEY</code> — optional extraction fallback / preferred Markdown
|
|
61
|
+
output in extract mode.
|
|
62
|
+
</li>
|
|
51
63
|
</ul>
|
|
52
64
|
|
|
53
65
|
<h2>Tips</h2>
|
|
54
66
|
<ul>
|
|
55
67
|
<li>For deterministic output, pin <code>--model</code> and avoid provider fallback.</li>
|
|
56
|
-
<li>
|
|
57
|
-
|
|
68
|
+
<li>
|
|
69
|
+
When debugging extraction, add <code>--verbose</code> and/or <code>--json</code> for
|
|
70
|
+
structured output.
|
|
71
|
+
</li>
|
|
72
|
+
<li>
|
|
73
|
+
Use <code>--timeout</code> when crawling slow sites (defaults to <code>2m</code>).
|
|
74
|
+
</li>
|
|
58
75
|
</ul>
|
|
59
76
|
|
|
60
77
|
<div class="note">
|
|
61
|
-
Want the raw content? Use <code>--extract</code> (then decide where the summary should
|
|
78
|
+
Want the raw content? Use <code>--extract</code> (then decide where the summary should
|
|
79
|
+
happen).
|
|
62
80
|
</div>
|
|
63
81
|
</article>
|
|
64
82
|
</section>
|
|
65
83
|
|
|
66
84
|
<footer class="footer">
|
|
67
85
|
<span>summarize — Link → clean text → summary.</span>
|
|
68
|
-
<span
|
|
86
|
+
<span
|
|
87
|
+
><a href="./index.html">Docs</a> ·
|
|
88
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
89
|
+
>
|
|
69
90
|
</footer>
|
|
70
91
|
</main>
|
|
71
92
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/extract-only" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -65,15 +68,24 @@
|
|
|
65
68
|
<li><code>--timeout</code> — tune crawling budget (<code>2m</code> default).</li>
|
|
66
69
|
<li><code>--firecrawl off|auto|always</code> — choose the fallback strategy.</li>
|
|
67
70
|
<li><code>--format md|text</code> — choose extracted output format.</li>
|
|
68
|
-
<li
|
|
69
|
-
|
|
71
|
+
<li>
|
|
72
|
+
<code>--markdown-mode off|auto|llm|readability</code> — for non-YouTube URLs with
|
|
73
|
+
<code>--format md</code>, control HTML→Markdown conversion (LLM) + fallbacks.
|
|
74
|
+
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<code>--preprocess off|auto|always</code> — controls markitdown usage (default
|
|
77
|
+
<code>auto</code>).
|
|
78
|
+
</li>
|
|
70
79
|
</ul>
|
|
71
80
|
</article>
|
|
72
81
|
</section>
|
|
73
82
|
|
|
74
83
|
<footer class="footer">
|
|
75
84
|
<span>summarize — Link → clean text → summary.</span>
|
|
76
|
-
<span
|
|
85
|
+
<span
|
|
86
|
+
><a href="./index.html">Docs</a> ·
|
|
87
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
88
|
+
>
|
|
77
89
|
</footer>
|
|
78
90
|
</main>
|
|
79
91
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/firecrawl" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -42,7 +45,10 @@
|
|
|
42
45
|
<article class="doc reveal">
|
|
43
46
|
<p class="kicker">extractor</p>
|
|
44
47
|
<h1>Firecrawl</h1>
|
|
45
|
-
<p>
|
|
48
|
+
<p>
|
|
49
|
+
Used as a fallback when HTML extraction looks blocked or too thin — and as a preferred
|
|
50
|
+
Markdown source in extract mode (when configured).
|
|
51
|
+
</p>
|
|
46
52
|
|
|
47
53
|
<h2>Key</h2>
|
|
48
54
|
<ul>
|
|
@@ -64,7 +70,10 @@
|
|
|
64
70
|
|
|
65
71
|
<footer class="footer">
|
|
66
72
|
<span>summarize — Link → clean text → summary.</span>
|
|
67
|
-
<span
|
|
73
|
+
<span
|
|
74
|
+
><a href="./index.html">Docs</a> ·
|
|
75
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
76
|
+
>
|
|
68
77
|
</footer>
|
|
69
78
|
</main>
|
|
70
79
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -30,12 +33,35 @@
|
|
|
30
33
|
<div class="hero__inner">
|
|
31
34
|
<p class="kicker">Docs</p>
|
|
32
35
|
<h1 class="title">Modes & knobs.</h1>
|
|
33
|
-
<p class="lede">
|
|
36
|
+
<p class="lede">
|
|
37
|
+
Small surface area. Powerful extraction. Sensible fallbacks. Podcast pages supported.
|
|
38
|
+
</p>
|
|
34
39
|
<div class="pillRow">
|
|
35
40
|
<span class="pill"><span class="pill__dot" aria-hidden="true"></span> Website</span>
|
|
36
|
-
<span class="pill"
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
<span class="pill"
|
|
42
|
+
><span
|
|
43
|
+
class="pill__dot"
|
|
44
|
+
aria-hidden="true"
|
|
45
|
+
style="background: var(--accent2)"
|
|
46
|
+
></span>
|
|
47
|
+
YouTube</span
|
|
48
|
+
>
|
|
49
|
+
<span class="pill"
|
|
50
|
+
><span
|
|
51
|
+
class="pill__dot"
|
|
52
|
+
aria-hidden="true"
|
|
53
|
+
style="background: var(--accent3)"
|
|
54
|
+
></span>
|
|
55
|
+
Podcasts</span
|
|
56
|
+
>
|
|
57
|
+
<span class="pill"
|
|
58
|
+
><span
|
|
59
|
+
class="pill__dot"
|
|
60
|
+
aria-hidden="true"
|
|
61
|
+
style="background: var(--accent3)"
|
|
62
|
+
></span>
|
|
63
|
+
Extract</span
|
|
64
|
+
>
|
|
39
65
|
</div>
|
|
40
66
|
</div>
|
|
41
67
|
</div>
|
|
@@ -86,7 +112,10 @@
|
|
|
86
112
|
|
|
87
113
|
<footer class="footer">
|
|
88
114
|
<span>summarize — Link → clean text → summary.</span>
|
|
89
|
-
<span
|
|
115
|
+
<span
|
|
116
|
+
><a href="../index.html">Home</a> ·
|
|
117
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
118
|
+
>
|
|
90
119
|
</footer>
|
|
91
120
|
</main>
|
|
92
121
|
|
package/docs/site/docs/llm.html
CHANGED
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/llm" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -42,19 +45,27 @@
|
|
|
42
45
|
<article class="doc reveal">
|
|
43
46
|
<p class="kicker">summarizer</p>
|
|
44
47
|
<h1>LLM</h1>
|
|
45
|
-
<p>
|
|
48
|
+
<p>
|
|
49
|
+
summarize can use multiple providers. Pick one model, one provider, then make it boring
|
|
50
|
+
and reliable.
|
|
51
|
+
</p>
|
|
46
52
|
|
|
47
53
|
<h2>Keys</h2>
|
|
48
54
|
<ul>
|
|
49
55
|
<li><code>OPENAI_API_KEY</code></li>
|
|
50
56
|
<li><code>XAI_API_KEY</code></li>
|
|
51
|
-
<li
|
|
57
|
+
<li>
|
|
58
|
+
<code>GEMINI_API_KEY</code> (also accepts <code>GOOGLE_GENERATIVE_AI_API_KEY</code> /
|
|
59
|
+
<code>GOOGLE_API_KEY</code>)
|
|
60
|
+
</li>
|
|
52
61
|
</ul>
|
|
53
62
|
|
|
54
63
|
<h2>Practical advice</h2>
|
|
55
64
|
<ul>
|
|
56
65
|
<li>Pin <code>--model</code> for stable output.</li>
|
|
57
|
-
<li>
|
|
66
|
+
<li>
|
|
67
|
+
When using <code>--markdown-mode llm</code>, provider fallback is disabled by design.
|
|
68
|
+
</li>
|
|
58
69
|
<li>For audits / tooling, prefer <code>--json</code> + fixed model.</li>
|
|
59
70
|
</ul>
|
|
60
71
|
</article>
|
|
@@ -62,7 +73,10 @@
|
|
|
62
73
|
|
|
63
74
|
<footer class="footer">
|
|
64
75
|
<span>summarize — Link → clean text → summary.</span>
|
|
65
|
-
<span
|
|
76
|
+
<span
|
|
77
|
+
><a href="./index.html">Docs</a> ·
|
|
78
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
79
|
+
>
|
|
66
80
|
</footer>
|
|
67
81
|
</main>
|
|
68
82
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/openai" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -42,23 +45,33 @@
|
|
|
42
45
|
<article class="doc reveal">
|
|
43
46
|
<p class="kicker">provider</p>
|
|
44
47
|
<h1>OpenAI</h1>
|
|
45
|
-
<p>
|
|
48
|
+
<p>
|
|
49
|
+
Use OpenAI by setting <code>OPENAI_API_KEY</code> and picking a model via
|
|
50
|
+
<code>--model</code>.
|
|
51
|
+
</p>
|
|
46
52
|
|
|
47
53
|
<h2>Notes</h2>
|
|
48
54
|
<ul>
|
|
49
55
|
<li>Some modes (like <code>--extract</code>) don’t need an LLM at all.</li>
|
|
50
|
-
<li>
|
|
56
|
+
<li>
|
|
57
|
+
When output is used downstream, prefer <code>--json</code> and pin
|
|
58
|
+
<code>--model</code>.
|
|
59
|
+
</li>
|
|
51
60
|
</ul>
|
|
52
61
|
|
|
53
62
|
<div class="note">
|
|
54
|
-
If your extraction is flaky, flip on <code>--verbose</code> and inspect which path was
|
|
63
|
+
If your extraction is flaky, flip on <code>--verbose</code> and inspect which path was
|
|
64
|
+
taken (HTML vs Firecrawl vs LLM Markdown).
|
|
55
65
|
</div>
|
|
56
66
|
</article>
|
|
57
67
|
</section>
|
|
58
68
|
|
|
59
69
|
<footer class="footer">
|
|
60
70
|
<span>summarize — Link → clean text → summary.</span>
|
|
61
|
-
<span
|
|
71
|
+
<span
|
|
72
|
+
><a href="./index.html">Docs</a> ·
|
|
73
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
74
|
+
>
|
|
62
75
|
</footer>
|
|
63
76
|
</main>
|
|
64
77
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/website" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -42,9 +45,19 @@
|
|
|
42
45
|
<article class="doc reveal">
|
|
43
46
|
<p class="kicker">mode</p>
|
|
44
47
|
<h1>Website mode</h1>
|
|
45
|
-
<p>
|
|
48
|
+
<p>
|
|
49
|
+
Fetch HTML → extract “article-ish” content → normalize to clean text. If extraction
|
|
50
|
+
looks blocked or too thin, retry via Firecrawl Markdown (optional). With
|
|
51
|
+
<code>--format md</code>, the CLI prefers Firecrawl Markdown when configured and can
|
|
52
|
+
also convert HTML → Markdown via <code>--markdown-mode</code> (LLM) or
|
|
53
|
+
<code>uvx markitdown</code>.
|
|
54
|
+
</p>
|
|
46
55
|
|
|
47
|
-
<p>
|
|
56
|
+
<p>
|
|
57
|
+
Podcast pages are supported (Apple Podcasts, Spotify episodes, RSS feeds, Podbean,
|
|
58
|
+
Podchaser, embedded YouTube). Summaries use published transcripts when available,
|
|
59
|
+
otherwise Whisper.
|
|
60
|
+
</p>
|
|
48
61
|
|
|
49
62
|
<h2>Flags</h2>
|
|
50
63
|
<ul>
|
|
@@ -52,22 +65,29 @@
|
|
|
52
65
|
<li><code>--timeout 30s|2m|5000ms</code> (default <code>2m</code>)</li>
|
|
53
66
|
<li><code>--extract</code> (print extracted content; no summary call)</li>
|
|
54
67
|
<li><code>--format md|text</code> (default <code>text</code>)</li>
|
|
55
|
-
<li
|
|
56
|
-
|
|
68
|
+
<li>
|
|
69
|
+
<code>--markdown-mode off|auto|llm|readability</code> (only with
|
|
70
|
+
<code>--format md</code>)
|
|
71
|
+
</li>
|
|
72
|
+
<li>
|
|
73
|
+
<code>--preprocess off|auto|always</code> (default <code>auto</code>; controls
|
|
74
|
+
markitdown usage)
|
|
75
|
+
</li>
|
|
57
76
|
<li><code>--json</code> (emit a single JSON object)</li>
|
|
58
77
|
<li><code>--verbose</code> (progress + which extractor was used)</li>
|
|
59
78
|
<li><code>--metrics off|on|detailed</code></li>
|
|
60
79
|
</ul>
|
|
61
80
|
|
|
62
|
-
<div class="note">
|
|
63
|
-
Plain-text mode: <code>--extract --format text</code>.
|
|
64
|
-
</div>
|
|
81
|
+
<div class="note">Plain-text mode: <code>--extract --format text</code>.</div>
|
|
65
82
|
</article>
|
|
66
83
|
</section>
|
|
67
84
|
|
|
68
85
|
<footer class="footer">
|
|
69
86
|
<span>summarize — Link → clean text → summary.</span>
|
|
70
|
-
<span
|
|
87
|
+
<span
|
|
88
|
+
><a href="./index.html">Docs</a> ·
|
|
89
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
90
|
+
>
|
|
71
91
|
</footer>
|
|
72
92
|
</main>
|
|
73
93
|
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
<link rel="canonical" href="https://summarize.sh/docs/youtube" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
|
-
<link
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap"
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
/>
|
|
12
15
|
<link rel="stylesheet" href="../assets/site.css" />
|
|
13
16
|
</head>
|
|
14
17
|
<body>
|
|
@@ -42,7 +45,10 @@
|
|
|
42
45
|
<article class="doc reveal">
|
|
43
46
|
<p class="kicker">mode</p>
|
|
44
47
|
<h1>YouTube mode</h1>
|
|
45
|
-
<p>
|
|
48
|
+
<p>
|
|
49
|
+
Extracts transcripts via multiple strategies. The goal: reliable text, even when YouTube
|
|
50
|
+
is being “difficult”.
|
|
51
|
+
</p>
|
|
46
52
|
|
|
47
53
|
<h2>Tip</h2>
|
|
48
54
|
<ul>
|
|
@@ -54,7 +60,10 @@
|
|
|
54
60
|
|
|
55
61
|
<footer class="footer">
|
|
56
62
|
<span>summarize — Link → clean text → summary.</span>
|
|
57
|
-
<span
|
|
63
|
+
<span
|
|
64
|
+
><a href="./index.html">Docs</a> ·
|
|
65
|
+
<a href="https://github.com/steipete/summarize">Repo</a></span
|
|
66
|
+
>
|
|
58
67
|
</footer>
|
|
59
68
|
</main>
|
|
60
69
|
|
package/docs/site/index.html
CHANGED
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
/>
|
|
12
12
|
<link rel="canonical" href="https://summarize.sh/" />
|
|
13
13
|
<meta property="og:title" content="summarize" />
|
|
14
|
-
<meta
|
|
14
|
+
<meta
|
|
15
|
+
property="og:description"
|
|
16
|
+
content="Fast summaries, in the CLI and the Chrome Side Panel."
|
|
17
|
+
/>
|
|
15
18
|
<meta property="og:type" content="website" />
|
|
16
19
|
<meta property="og:url" content="https://summarize.sh/" />
|
|
17
20
|
<meta name="theme-color" content="#0b0f12" />
|
|
@@ -44,9 +47,10 @@
|
|
|
44
47
|
<p class="kicker">CLI + Chrome Extension</p>
|
|
45
48
|
<h1 class="title">Summaries that live where you work.</h1>
|
|
46
49
|
<p class="lede">
|
|
47
|
-
Summarize turns links, files, and media into sharp summaries with a real extraction
|
|
48
|
-
Use the <strong>CLI</strong> for automation or the
|
|
49
|
-
summaries of the current tab.
|
|
50
|
+
Summarize turns links, files, and media into sharp summaries with a real extraction
|
|
51
|
+
pipeline. Use the <strong>CLI</strong> for automation or the
|
|
52
|
+
<strong>Chrome Side Panel</strong> for one-click summaries of the current tab.
|
|
53
|
+
Supports <strong>local, paid, and free</strong> models.
|
|
50
54
|
</p>
|
|
51
55
|
<div class="ctaRow">
|
|
52
56
|
<a class="btn btn--primary" href="./docs/index.html">Docs</a>
|
|
@@ -71,7 +75,11 @@
|
|
|
71
75
|
<figcaption>CLI: streaming summaries in the terminal.</figcaption>
|
|
72
76
|
</figure>
|
|
73
77
|
<figure class="shot shot--ext">
|
|
74
|
-
<img
|
|
78
|
+
<img
|
|
79
|
+
src="./assets/summarize-extension.png"
|
|
80
|
+
alt="Summarize Chrome extension side panel"
|
|
81
|
+
loading="lazy"
|
|
82
|
+
/>
|
|
75
83
|
<figcaption>Extension: a live Side Panel for the active tab.</figcaption>
|
|
76
84
|
</figure>
|
|
77
85
|
</div>
|
|
@@ -85,13 +93,18 @@
|
|
|
85
93
|
<h2>Fast summaries, scripted or interactive.</h2>
|
|
86
94
|
</div>
|
|
87
95
|
<p>
|
|
88
|
-
Built for automation: extract clean text, summarize with your model, and output JSON or
|
|
89
|
-
Works with URLs, PDFs, images, audio/video, YouTube, and podcasts.
|
|
96
|
+
Built for automation: extract clean text, summarize with your model, and output JSON or
|
|
97
|
+
Markdown. Works with URLs, PDFs, images, audio/video, YouTube, and podcasts.
|
|
90
98
|
</p>
|
|
91
99
|
<ul class="list">
|
|
92
100
|
<li><strong>Extract + summarize</strong> with Firecrawl fallback.</li>
|
|
93
|
-
<li
|
|
94
|
-
|
|
101
|
+
<li>
|
|
102
|
+
<strong>Media pipeline</strong> with transcript-first flow and Whisper fallback.
|
|
103
|
+
</li>
|
|
104
|
+
<li>
|
|
105
|
+
<strong>Scriptable output</strong> via <code>--json</code>, <code>--extract</code>,
|
|
106
|
+
<code>--metrics</code>.
|
|
107
|
+
</li>
|
|
95
108
|
</ul>
|
|
96
109
|
<div class="cardCode">
|
|
97
110
|
<pre><code>summarize "https://example.com" --length long
|
|
@@ -110,8 +123,8 @@ summarize "/path/report.pdf" --model google/gemini-3-flash-preview</code></pre>
|
|
|
110
123
|
<h2>Summaries in the Side Panel, one click away.</h2>
|
|
111
124
|
</div>
|
|
112
125
|
<p>
|
|
113
|
-
A real Chrome Side Panel with a tiny local daemon. It streams Markdown summaries for the
|
|
114
|
-
with auto-summary on navigation.
|
|
126
|
+
A real Chrome Side Panel with a tiny local daemon. It streams Markdown summaries for the
|
|
127
|
+
active tab, with auto-summary on navigation.
|
|
115
128
|
</p>
|
|
116
129
|
<ol class="steps">
|
|
117
130
|
<li>Install the CLI + daemon.</li>
|
|
@@ -119,11 +132,14 @@ summarize "/path/report.pdf" --model google/gemini-3-flash-preview</code></pre>
|
|
|
119
132
|
<li>Open Side Panel and connect with the token.</li>
|
|
120
133
|
</ol>
|
|
121
134
|
<div class="callout">
|
|
122
|
-
<strong>Runs locally</strong> on your machine. The daemon is localhost-only and
|
|
135
|
+
<strong>Runs locally</strong> on your machine. The daemon is localhost-only and
|
|
136
|
+
token-protected.
|
|
123
137
|
</div>
|
|
124
138
|
<div class="ctaRow">
|
|
125
139
|
<a class="btn btn--ghost" href="./docs/chrome-extension.html">Extension docs</a>
|
|
126
|
-
<a class="btn" href="https://github.com/steipete/summarize/releases/latest"
|
|
140
|
+
<a class="btn" href="https://github.com/steipete/summarize/releases/latest"
|
|
141
|
+
>Latest release</a
|
|
142
|
+
>
|
|
127
143
|
</div>
|
|
128
144
|
</article>
|
|
129
145
|
</section>
|
|
@@ -196,7 +212,10 @@ summarize "/path/report.pdf" --model google/gemini-3-flash-preview</code></pre>
|
|
|
196
212
|
|
|
197
213
|
<footer class="footer">
|
|
198
214
|
<span>Canonical: <a href="https://summarize.sh">summarize.sh</a></span>
|
|
199
|
-
<span
|
|
215
|
+
<span
|
|
216
|
+
><a href="./docs/index.html">Docs</a> ·
|
|
217
|
+
<a href="https://github.com/steipete/summarize">GitHub</a></span
|
|
218
|
+
>
|
|
200
219
|
</footer>
|
|
201
220
|
</main>
|
|
202
221
|
|
package/docs/slides.md
CHANGED
|
@@ -7,6 +7,7 @@ read_when:
|
|
|
7
7
|
# Slides plan (no model)
|
|
8
8
|
|
|
9
9
|
## Goals
|
|
10
|
+
|
|
10
11
|
- Expanded slides view = full-width cards, top of summary.
|
|
11
12
|
- Click slide = seek video timestamp (no modal).
|
|
12
13
|
- Descriptions scale with length setting.
|
|
@@ -14,11 +15,13 @@ read_when:
|
|
|
14
15
|
- No model call for slide descriptions.
|
|
15
16
|
|
|
16
17
|
## Data sources
|
|
18
|
+
|
|
17
19
|
- Primary: transcript timed text (already available with timestamps).
|
|
18
20
|
- Secondary: OCR text from slides (truncate, selectable).
|
|
19
21
|
- Tertiary: empty description (still render card).
|
|
20
22
|
|
|
21
23
|
## Description generation (no model)
|
|
24
|
+
|
|
22
25
|
- For each slide timestamp `t`:
|
|
23
26
|
- Pull transcript segments within a time window around `t`.
|
|
24
27
|
- Concatenate into plain text (no bullets).
|
|
@@ -27,6 +30,7 @@ read_when:
|
|
|
27
30
|
- Always render all slide cards; missing text → show slide only.
|
|
28
31
|
|
|
29
32
|
## Length scaling
|
|
33
|
+
|
|
30
34
|
- Map summary length to per-slide target chars.
|
|
31
35
|
- Use existing length presets (short/medium/long/xl/xxl + custom):
|
|
32
36
|
- `short`: ~120 chars/slide
|
|
@@ -39,6 +43,7 @@ read_when:
|
|
|
39
43
|
- Window size should expand with length (e.g. 20s → 90s).
|
|
40
44
|
|
|
41
45
|
## UI behavior
|
|
46
|
+
|
|
42
47
|
- Default summary stays unchanged (no slide text).
|
|
43
48
|
- Slide strip (compact) stays horizontal; no modal required.
|
|
44
49
|
- Expand toggle switches to vertical full-width list:
|
|
@@ -49,6 +54,7 @@ read_when:
|
|
|
49
54
|
(enough slides + total OCR chars); otherwise hide it.
|
|
50
55
|
|
|
51
56
|
## CLI
|
|
57
|
+
|
|
52
58
|
- `summarize <url> --slides` streams a short intro paragraph and then a continuous narrative with slide images inserted inline where `[slide:N]` markers appear.
|
|
53
59
|
- The model is responsible for inserting every slide marker in order; text length is still governed by `--length`.
|
|
54
60
|
- If inline images are unsupported, the CLI prints text-only output and notes how to export slides to disk.
|
|
@@ -59,6 +65,7 @@ read_when:
|
|
|
59
65
|
- Defaults to writing images under `./slides/<sourceId>/` (override via `--slides-dir` / `--output`).
|
|
60
66
|
|
|
61
67
|
## Implementation notes
|
|
68
|
+
|
|
62
69
|
- Build `slideDescriptions` map in panel:
|
|
63
70
|
- Use `summary.timedText` when available.
|
|
64
71
|
- Split transcript into segments with timestamps (already in payload).
|
|
@@ -67,8 +74,9 @@ read_when:
|
|
|
67
74
|
- Slide extraction downloads the media once for detect+extract; set `SLIDES_EXTRACT_STREAM=1` to allow stream fallback (lower accuracy).
|
|
68
75
|
|
|
69
76
|
## Steps
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
|
|
78
|
+
1. Add slide-description builder in sidepanel using transcript timed text + OCR fallback.
|
|
79
|
+
2. Add length-based per-slide char budget and window sizing.
|
|
80
|
+
3. Render expanded card list with timestamps + text.
|
|
81
|
+
4. Remove modal; click = seek only.
|
|
82
|
+
5. Add tests for slide description + fallback.
|