id = "viddy"
name = "Viddy"
homepage = "https://github.com/sachaos/viddy"
description = "Modern watch command."
executables = ["viddy"]
[dotfiles]
paths = ["[configHome]/viddy.toml", "[appData]/viddy.toml"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Watch a command"
description = "Run a command periodically and browse its output history with diff highlighting. Save/load of history, shell selection and mouse options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/sachaos/viddy/blob/master/src/cli.rs"
revision = "master 2026-10-27"
evidence = """-n, --interval Seconds to wait between updates (>= 100ms)
-d, --differences Highlight changes between updates
-D, --deletion-differences Highlight deletion changes between updates
-p, --precise Attempt run command in precise intervals
-t, --no-title Turn off header
-w, --unfold Turn off line wrapping
-s, --skip-empty-diffs Skip snapshots with no changes in history
-b, --bell Ring terminal bell changes between updates
-x, --exec Pass command to exec instead of sh -c
[COMMAND]... Command to run"""
[[commands.field]]
id = "interval"
label = "Interval"
description = "Wait between updates, e.g. 2s or 500ms (minimum 100ms)."
type = "string"
option = ["--interval", "-n"]
sources = ["help"]
[[commands.field]]
id = "differences"
label = "Highlight changes"
type = "boolean"
option = ["--differences", "-d"]
sources = ["help"]
[[commands.field]]
id = "deletion_differences"
label = "Highlight deletions"
type = "boolean"
option = ["--deletion-differences", "-D"]
sources = ["help"]
[[commands.field]]
id = "precise"
label = "Precise intervals"
type = "boolean"
option = ["--precise", "-p"]
sources = ["help"]
[[commands.field]]
id = "no_title"
label = "Hide header"
type = "boolean"
option = ["--no-title", "-t"]
sources = ["help"]
[[commands.field]]
id = "unfold"
label = "No line wrapping"
type = "boolean"
option = ["--unfold", "-w"]
sources = ["help"]
[[commands.field]]
id = "skip_empty"
label = "Skip unchanged snapshots"
type = "boolean"
option = ["--skip-empty-diffs", "-s"]
sources = ["help"]
[[commands.field]]
id = "bell"
label = "Ring bell on change"
type = "boolean"
option = ["--bell", "-b"]
sources = ["help"]
[[commands.field]]
id = "exec"
label = "Exec directly (no shell)"
type = "boolean"
option = ["--exec", "-x"]
sources = ["help"]
[[commands.field]]
id = "command"
label = "Command"
type = "string"
position = 0
multiple = true
min = 1
sources = ["help"]
[[commands.task]]
id = "watch"
label = "Watch with diff highlighting"
fields = ["interval", "differences", "command"]
required = ["command"]
set = { differences = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["command", "interval", "differences", "deletion_differences"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["precise", "no_title", "unfold", "skip_empty", "bell", "exec"]