Learn inputs

Every {{…}} token from Add. Try the control, copy the token.

Input codeDescriptionPreview
File — pick a path
{{input.file}}fileSource file to read.
{{input.dir}}fileFolder only.
{{input.files}}fileFiles, appended one after the other.
{{input.image}}fileDrop image here or click to browseOne image — drop it or browse, preview inline.
{{input.images}}fileDrop images here or click to browseSeveral images — names join with spaces, thumbnails inline.
{{input.video}}fileDrop video here or click to browseOne video — drop it or browse, playable preview.
{{input.videos}}fileDrop videos here or click to browseSeveral videos — names join with spaces, each playable.
{{input.document}}fileA document — drop it or browse, shown as a chip.
Text — short values
{{input.text}}textAny short text. Prefill with {{input.text:hello}}.
{{input.email}}textEmail address, validated.
{{input.url}}textWeb link, validated.
{{input.search}}textSearch query.
{{input.uuid.autogenerate}}text · autoUnique id, prefilled. Drop .autogenerate to ask instead.
{{input.textarea}}textareaMultiline text — commit messages, queries. Prefill with {{input.textarea:hello}}.
{{input.keyvalue:MY_KEY=value}}keyvalueKey=value pair for -e / env flags. Renders two fields, joins with =.
Number — counts and ports
{{input.number}}numberAny number. Prefill with {{input.number:5}}.
{{input.port:8080}}numberTCP port, clamped 1–65535.
Date · Time · Color · Secret — pickers
{{input.date:2026-01-15}}dateCalendar day. {{input.since}} is an alias.
{{input.time}}timeClock time. {{input.hour}} / {{input.minute}} / {{input.second}} are retired here.
{{input.datetime}}datetimeDay plus time, one control.
{{input.duration}}durationSlide seconds — reads out as HH:MM:SS for ffmpeg -t / -ss.
{{input.color:#1677ff}}colorBrand color.
{{input.password}}secretHidden secret.
Choice — select, radio, buttongroup, multiselect, license
{{input.select:zip,tar.gz}}selectPick one from a dropdown. Default with {{input.select:zip,tar.gz=zip}}.
{{input.radio:yes,no}}radioOne of a few, as radios. Same inline options as select.
{{input.buttongroup:zip,tar.gz}}buttongroupOne-tap pick, as segments. Same inline options as select.
{{input.multiselect:dev,build,test}}multiselectPick several — joins with commas. Defaults with {{input.multiselect:dev,build,test=dev,test}}.
{{input.license}}select · 1818 SPDX ids built in — writing this inline is not viable.
{{input.country}}select · 249Full 249-country list built in — writing this inline is not viable.
{{input.timezone}}select · 4141 IANA zones built in — writing this inline is not viable.
{{input.currency}}select · 4141 currencies built in — writing this inline is not viable.
{{input.language}}select · 3030 languages built in — use select for anything shorter.
{{input.locale}}select · 2020 locales built in — use select for anything shorter.
Flag — on / off
{{input.checkbox:--rm}}checkboxCheckboxFlagToggle a flag. Start unchecked with {{input.checkbox:--rm=off}}.
{{input.switch:--yes}}switchSwitchToggle switchSame syntax as checkbox, rendered as a switch.
{{input.option:--output=$file}}optionOptionToggle on emits the flag; off hides the bound field.Bound field {{input.file}}--output=input.mp4Optional flag bound to another input. Toggle on emits --output=input.mp4 once, and the bound input's own slot stays empty; toggle off emits nothing anywhere and hides the referenced field. Broken syntax or a ref with no matching input anywhere disables the toggle — see below.
Range — sliders
{{input.range:0-100}}range35Any slider with a number field — same paired control as the command form. Bounds plus default: {{input.range:18-28=23}}.

Reference other inputs with $

Inside an input default — after the colon — $base.property inserts another input's value. Example: {{input.text:$file.name}} defaults the text to the file's name. Refs resolve left to right in command order; a ref to a later input, to itself, to an unknown base or property, or to an empty value resolves to empty and Add shows a warning in the preview. When an input repeats, $ sees the nearest preceding one.

ReferencePropertiesExample
Single file — path parts
$file.*filevalue full text · name file name · stem name without extension · ext extension · dir folder. Same for $dir, $document, $poster, $thumbnail, $path, $folder.{{input.text:$file.name}} → input.mp4
Image and video — plus dimensions
$image.*filePath parts above, plus width and height once a file is dropped or picked — otherwise empty. Same for $video.*.{{input.text:$image.width}} → 1920
Multiple files — items and ordinals
$files.*filevalue all items · count how many · first … ninth, tenth (ten works too). Items split on spaces. Same for $images.*, $videos.*.{{input.text:$files.second}} → input2.mp4
Everything else — raw value
$name.valuetextEvery other input type exposes value only — text, numbers, dates, colors, secrets, selects, radios, checkboxes, ranges. Exception: $url below.{{input.text:$branch.value}} → main
URLs — safe filename
$url.asfilenametextvalue the URL as typed · asfilename the entire URL lowercased into a safe filename — every run of characters outside a-z 0-9 . - becomes one dash (https://www.youtube.com/watch?v=dQw4w9WgXcQ → https-www.youtube.com-watch-v-dqw4w9wgxcq).{{input.text:$url.asfilename}} → https-example.com-clips-trailer.mp4

Optional flags with {{input.option}}

Syntax is {{input.option:FLAG DIVIDER $ref}} — flag is --name, -x or /name; divider is =, space or :; ref is $base or $base.property using the $ table above. Toggle on appends flag plus divider plus the resolved value; toggle off emits nothing and hides the referenced field while keeping its value. The option finds its $ref in either direction, so the referenced input may come before or after the option. While the toggle is on, the bound input's own slot emits empty, so the value appears once, inside the flag; toggle off drops the flag and the bound slot still emits nothing, so the command shows neither. The input keeps its control value while connected, and toggling back on restores the flag with that value. Empty slots collapse surrounding spaces to one and trim the ends, so off never leaves double spaces. Anything else — bad flag, bad divider, missing $, or a ref with no matching input anywhere — disables the toggle, forces it off, and Add shows a warning in the preview.

SyntaxToggle onToggle off
{{input.option:--output=$file}}--output=input.mp4empty, file field hidden
{{input.option:-o $branch}}-o mainempty, branch field hidden
{{input.option:/res:$image.width}}/res:1920empty, image field hidden
{{input.option:--output=out.mp4}}toggle disabled, emptyempty

Same parser as Add — {{input.color:#1677ff}}, {{input.uuid.autogenerate}}, {{input.checkbox:--dry-run=off}}. Unknown {{braces}} stay literal. Try it in Add →

—options shown