id = "summarize"
name = "summarize"
homepage = "https://github.com/steipete/summarize"
description = "Point at any URL/YouTube/Podcast or file. Get the gist."
executables = ["summarize"]
[dotfiles]
paths = ["~/.summarize/config.json"]
secret = ["~/.summarize/daemon.json"]
[[dotfiles.secret_paths]]
file = "~/.summarize/config.json"
match = { key_path = ["env.*", "apiKeys.*"] }
[commands]
format = 1
label = "Summarize a URL or file"
description = "Summarize or extract content from a URL or file. Model, length, daemon and other options from the command reference are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "s"
kind = "help"
url = "https://github.com/steipete/summarize"
revision = "2026-10-27"
evidence = """
summarize "https://example.com" --extract --plain
summarize "https://example.com" --cli codex
summarize "https://example.com" --locale de --language japanese
Use `--extract` when you only need clean content, `--json` for a stable automation envelope, and `--slides` for video frames.
"""
[[commands.field]]
id = "input"
label = "URL or file"
type = "string"
position = 0
sources = ["s"]
[[commands.field]]
id = "extract"
label = "Extract content only"
type = "boolean"
option = ["--extract"]
sources = ["s"]
[[commands.field]]
id = "plain"
label = "Plain text output"
type = "boolean"
option = ["--plain"]
sources = ["s"]
[[commands.field]]
id = "json"
label = "JSON envelope"
type = "boolean"
option = ["--json"]
sources = ["s"]
[[commands.field]]
id = "slides"
label = "Include video slides"
type = "boolean"
option = ["--slides"]
sources = ["s"]
[[commands.field]]
id = "cli"
label = "CLI provider"
type = "string"
option = ["--cli"]
suggestions = [{ value = "codex", label = "Codex" }]
sources = ["s"]
[[commands.field]]
id = "locale"
label = "Interface locale"
type = "string"
option = ["--locale"]
suggestions = [{ value = "de", label = "German" }]
sources = ["s"]
[[commands.field]]
id = "language"
label = "Summary language"
type = "string"
option = ["--language"]
suggestions = [{ value = "japanese", label = "Japanese" }]
sources = ["s"]
[[commands.task]]
id = "summary"
label = "Summarize"
fields = ["input", "language"]
required = ["input"]
[[commands.task]]
id = "extract"
label = "Extract clean text"
fields = ["input", "extract", "plain"]
required = ["input", "extract"]
set = { extract = [true], plain = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["input", "extract", "plain", "json", "language"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["slides", "cli", "locale"]