{
  "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
    },
    "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)\n-d, --differences  Highlight changes between updates\n-D, --deletion-differences  Highlight deletion changes between updates\n-p, --precise  Attempt run command in precise intervals\n-t, --no-title  Turn off header\n-w, --unfold  Turn off line wrapping\n-s, --skip-empty-diffs  Skip snapshots with no changes in history\n-b, --bell  Ring terminal bell changes between updates\n-x, --exec  Pass command to exec instead of sh -c\n[COMMAND]...  Command to run"
      }
    ],
    "field": [
      {
        "id": "interval",
        "label": "Interval",
        "description": "Wait between updates, e.g. 2s or 500ms (minimum 100ms).",
        "type": "string",
        "option": [
          "--interval",
          "-n"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "differences",
        "label": "Highlight changes",
        "type": "boolean",
        "option": [
          "--differences",
          "-d"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "deletion_differences",
        "label": "Highlight deletions",
        "type": "boolean",
        "option": [
          "--deletion-differences",
          "-D"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "precise",
        "label": "Precise intervals",
        "type": "boolean",
        "option": [
          "--precise",
          "-p"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "no_title",
        "label": "Hide header",
        "type": "boolean",
        "option": [
          "--no-title",
          "-t"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "unfold",
        "label": "No line wrapping",
        "type": "boolean",
        "option": [
          "--unfold",
          "-w"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "skip_empty",
        "label": "Skip unchanged snapshots",
        "type": "boolean",
        "option": [
          "--skip-empty-diffs",
          "-s"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "bell",
        "label": "Ring bell on change",
        "type": "boolean",
        "option": [
          "--bell",
          "-b"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "exec",
        "label": "Exec directly (no shell)",
        "type": "boolean",
        "option": [
          "--exec",
          "-x"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "command",
        "label": "Command",
        "type": "string",
        "position": 0,
        "multiple": true,
        "min": 1,
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "watch",
        "label": "Watch with diff highlighting",
        "fields": [
          "interval",
          "differences",
          "command"
        ],
        "required": [
          "command"
        ],
        "set": {
          "differences": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "command",
          "interval",
          "differences",
          "deletion_differences"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "precise",
          "no_title",
          "unfold",
          "skip_empty",
          "bell",
          "exec"
        ]
      }
    ]
  }
}
