click-extra screenshot - Capture a command's colored output and
write it as an image or HTML.
click-extra screenshot [OPTIONS]
COMMAND_LINE...
Capture a command's colored output and write it as an image or
HTML.
Runs COMMAND_LINE with colors forced on and its terminal width
pinned, then writes the captured output where --output points. Its extension
picks the format:
.svg a picture of a terminal window, for a surface that strips
inline HTML. A README on GitHub or PyPI has no other option.
.html selectable, searchable, copy-pasteable text, for a page you
own.
Put -- before the command line so its own options are not mistaken
for this command's:
click-extra screenshot --output shot.svg -- my-cli --help
COMMAND_LINE is anything the shell can run, Click CLI or not. A
Click CLI not built on Click Extra prints its help uncolored, so --wrap
routes it through the wrap subcommand first and captures the colored
rendering.
An SVG starts each run of text on its own column, so it renders
correctly outside a web browser, where a file manager, a git client or a
thumbnailer would otherwise slide the columns out of place.
Neither format needs an optional dependency.
- COMMAND_LINE...
- --output
FILE
- Path of the file to write. Its extension picks the format: .svg for an
image, .html for selectable text.
[required]
- --columns
INTEGER|auto
- Terminal width, in characters, the command wraps its output to and the
image is laid out at. Pass auto to pin neither: the command finds its own
width, and the image is laid out at the longest line it printed, so
nothing folds inside the picture.
- --background
[dark|light]
- Terminal chrome the capture is drawn on, and the palette its colors
resolve against. Match it to the theme the captured CLI renders with: a
light-background theme washes out on the dark default.
- --preset
[linux|macos|plain|windows]
- Terminal to draw the capture as: its window decorations, palette, font and
prompt sigil. Anything stated alongside wins over it. Left out, the
capture keeps the renderer's own neutral window.
- --border
TEXT
- Color of the frame drawn around the terminal window, as CSS names it. Pass
none to draw no frame. Defaults to the one the chrome can show.
- --border-width
INTEGER RANGE
- Thickness of that frame, in pixels.
- --radius INTEGER
RANGE
- How round the window's corners are, in pixels. Zero squares them. Defaults
to 8, or to the rounding --preset terminal draws.
- --backdrop
TEXT
- Color filling the image behind the window, margin included, as CSS names
it. Left transparent by default, so the page shows through.
- --shadow
TEXT
- Color of the drop shadow lifting the window off the page, as CSS names it.
Pass none to draw no shadow. Defaults to the one the chrome calls
for.
- --margin INTEGER
RANGE
- Transparent pixels left around the window, on all four sides. The room the
drop shadow falls into, so a capture drawing one wants some.
- --padding
INTEGER RANGE
- Pixels added inside the window, around the captured text, on top of the
few the renderer adds on its own.
- --opacity
FLOAT RANGE
- How solid the window's body is. Under 1 it turns see-through, the way a
terminal set to transparency does: whatever the capture sits on shows
through it, while its text, frame and title bar keep their own paint.
- --watermark
TEXT
- Credit line drawn in the image's bottom-right corner, in the margin around
the window. Pass an empty string to draw none, or your own text to credit
your project instead.
- --watermark-color
TEXT
- Color that credit line is drawn in, as CSS names it, alpha included.
Defaults to a neutral gray: the line sits in the transparent margin, so it
answers to the page embedding the image rather than to the chrome.
- --prompt
TEXT
- Command line to display above the output, when it differs from the one
that is run. Pass an empty string to draw no prompt at all. Defaults to
the command line itself.
- --head INTEGER
RANGE
- Keep only the first N lines of output.
- --tail INTEGER
RANGE
- Keep only the last N lines of output.
- --truncation
TEXT
- Line standing in for what --head or --tail cut away.
- --merge-stderr
- Fold the command's stderr into the capture, for a CLI printing its help
there. Off by default, which is what keeps a wrapper's build chatter out
of the image.
- --line-numbers
- Number the captured lines in a gutter, the way Pygments does inline. The
prompt counts as line 1, being the invocation everything under it came
from.
- --title
TEXT
- Caption drawn in an SVG's window chrome, or an HTML document's title.
- --fragment
- For HTML, emit the bare block instead of a standalone document, to paste
into a page that has its own.
- --wrap
- Route COMMAND_LINE through the wrap subcommand, so a Click CLI that is not
built on Click Extra is captured with its colors. Only works on a target
wrap can resolve.
- --timeout
FLOAT RANGE
- Seconds before the command is killed. Waits forever by default.
- --time /
--no-time
- Measure and print elapsed execution time.
- --config
CONFIG_PATH
- Location of the configuration file. Supports local path with glob patterns
or remote URL.
- --no-config
- Ignore all configuration files and only use command line parameters and
environment variables.
- --validate-config
FILE
- Validate the configuration file and exit.
- --export-config
FORMAT
- Export the configuration in the selected format to <stdout>, then
exit.
- --accessible
- Accessibility mode: disable colors and render tables in a borderless,
screen-reader-friendly format.
- --color[=auto|always|never]
- Colorize the output. A bare --color is the same as --color=always.
- --no-color
- Disable colorization (alias of --color=never).
- --progress /
--no-progress
- Show progress indicators during long operations. Disabled for
non-interactive output (pipes, dumb terminals, CI) and by
--accessible.
- --theme
[auto|dark|dracula|light|manpage|monokai|nord|solarized_dark]
- Color theme used for help screens.
- --params
- Show all CLI parameters, their provenance, defaults and value, then
exit.
- --table-format
[aligned|asciidoc|colon-grid|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|hjson|html|jira|json|json5|jsonc|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|toml|tsv|unsafehtml|vertical|xml|yaml|youtrack]
- Rendering style of tables.
- --verbosity
LEVEL
- Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
- --verbose /
-v
- Increase the default WARNING verbosity by one level for each additional
repetition of the option.
- --quiet /
-q
- Decrease the default WARNING verbosity by one level for each additional
repetition of the option.
- --tree
- Show the tree of nested subcommands and exit.
- --man
- Read the command's manual page and exit.
- --help-format
[carapace|json|json-full|man|markdown|markdown-full]
- Render the command in the given format and exit.
- --version
- Show the version and exit.
- -h / --help
- Show this message and exit.
- SCREENSHOT_OUTPUT
- Path of the file to write. Its extension picks the format: .svg for an
image, .html for selectable text.
- SCREENSHOT_COLUMNS
- Terminal width, in characters, the command wraps its output to and the
image is laid out at. Pass auto to pin neither: the command finds its own
width, and the image is laid out at the longest line it printed, so
nothing folds inside the picture.
- SCREENSHOT_BACKGROUND
- Terminal chrome the capture is drawn on, and the palette its colors
resolve against. Match it to the theme the captured CLI renders with: a
light-background theme washes out on the dark default.
- SCREENSHOT_PRESET
- Terminal to draw the capture as: its window decorations, palette, font and
prompt sigil. Anything stated alongside wins over it. Left out, the
capture keeps the renderer's own neutral window.
- SCREENSHOT_BORDER
- Color of the frame drawn around the terminal window, as CSS names it. Pass
none to draw no frame. Defaults to the one the chrome can show.
- SCREENSHOT_BORDER_WIDTH
- Thickness of that frame, in pixels.
- SCREENSHOT_RADIUS
- How round the window's corners are, in pixels. Zero squares them. Defaults
to 8, or to the rounding --preset terminal draws.
- SCREENSHOT_BACKDROP
- Color filling the image behind the window, margin included, as CSS names
it. Left transparent by default, so the page shows through.
- SCREENSHOT_SHADOW
- Color of the drop shadow lifting the window off the page, as CSS names it.
Pass none to draw no shadow. Defaults to the one the chrome calls
for.
- SCREENSHOT_MARGIN
- Transparent pixels left around the window, on all four sides. The room the
drop shadow falls into, so a capture drawing one wants some.
- SCREENSHOT_PADDING
- Pixels added inside the window, around the captured text, on top of the
few the renderer adds on its own.
- SCREENSHOT_OPACITY
- How solid the window's body is. Under 1 it turns see-through, the way a
terminal set to transparency does: whatever the capture sits on shows
through it, while its text, frame and title bar keep their own paint.
- SCREENSHOT_WATERMARK
- Credit line drawn in the image's bottom-right corner, in the margin around
the window. Pass an empty string to draw none, or your own text to credit
your project instead.
- SCREENSHOT_WATERMARK_COLOR
- Color that credit line is drawn in, as CSS names it, alpha included.
Defaults to a neutral gray: the line sits in the transparent margin, so it
answers to the page embedding the image rather than to the chrome.
- SCREENSHOT_PROMPT
- Command line to display above the output, when it differs from the one
that is run. Pass an empty string to draw no prompt at all. Defaults to
the command line itself.
- SCREENSHOT_HEAD
- Keep only the first N lines of output.
- SCREENSHOT_TAIL
- Keep only the last N lines of output.
- SCREENSHOT_TRUNCATION
- Line standing in for what --head or --tail cut away.
- SCREENSHOT_MERGE_STDERR
- Fold the command's stderr into the capture, for a CLI printing its help
there. Off by default, which is what keeps a wrapper's build chatter out
of the image.
- SCREENSHOT_LINE_NUMBERS
- Number the captured lines in a gutter, the way Pygments does inline. The
prompt counts as line 1, being the invocation everything under it came
from.
- SCREENSHOT_TITLE
- Caption drawn in an SVG's window chrome, or an HTML document's title.
- SCREENSHOT_FRAGMENT
- For HTML, emit the bare block instead of a standalone document, to paste
into a page that has its own.
- SCREENSHOT_WRAP
- Route COMMAND_LINE through the wrap subcommand, so a Click CLI that is not
built on Click Extra is captured with its colors. Only works on a target
wrap can resolve.
- SCREENSHOT_TIMEOUT
- Seconds before the command is killed. Waits forever by default.
- SCREENSHOT_TIME
- Measure and print elapsed execution time.
- SCREENSHOT_CONFIG
- Location of the configuration file. Supports local path with glob patterns
or remote URL.
- SCREENSHOT_VALIDATE_CONFIG
- Validate the configuration file and exit.
- SCREENSHOT_EXPORT_CONFIG
- Export the configuration in the selected format to <stdout>, then
exit.
- SCREENSHOT_ACCESSIBLE
- Accessibility mode: disable colors and render tables in a borderless,
screen-reader-friendly format.
- SCREENSHOT_COLOR
- Colorize the output. A bare --color is the same as --color=always.
- SCREENSHOT_NO_COLOR
- Disable colorization (alias of --color=never).
- SCREENSHOT_PROGRESS
- Show progress indicators during long operations. Disabled for
non-interactive output (pipes, dumb terminals, CI) and by
--accessible.
- SCREENSHOT_THEME
- Color theme used for help screens.
- SCREENSHOT_PARAMS
- Show all CLI parameters, their provenance, defaults and value, then
exit.
- SCREENSHOT_TABLE_FORMAT
- Rendering style of tables.
- SCREENSHOT_VERBOSITY
- Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
- SCREENSHOT_VERBOSE
- Increase the default WARNING verbosity by one level for each additional
repetition of the option.
- SCREENSHOT_QUIET
- Decrease the default WARNING verbosity by one level for each additional
repetition of the option.
- SCREENSHOT_TREE
- Show the tree of nested subcommands and exit.
- SCREENSHOT_MAN
- Read the command's manual page and exit.
- SCREENSHOT_HELP_FORMAT
- Render the command in the given format and exit.
- SCREENSHOT_VERSION
- Show the version and exit.
- SCREENSHOT_HELP
- Show this message and exit.
~/.config/click-extra/{*.toml,*.yaml,*.yml,*.json,*.json5,*.jsonc,*.hjson,*.ini,*.xml,pyproject.toml}
- 0
- Success.
- 1
- A runtime error, or an aborted prompt (Ctrl-C, a declined
confirmation).
- 2
- A usage error: unknown option, invalid value, missing operand, or an
unparsable configuration file.