{
  "id": "bmon",
  "name": "bmon",
  "homepage": "https://github.com/tgraf/bmon",
  "description": "Interface bandwidth monitor",
  "executables": [
    "bmon"
  ],
  "platforms": [
    "macos",
    "linux"
  ],
  "dotfiles": {
    "paths": [
      "~/.bmonrc"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Monitor bandwidth",
    "description": "Start bmon with common display, interval and module options. Module-specific settings go inside the input/output module strings.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "man",
        "kind": "manual",
        "url": "https://manpages.debian.org/bookworm/bmon/bmon.8.en.html",
        "revision": "bookworm",
        "evidence": "-i, --input=MODULE[:OPTIONS][,MODULE...]\n-o, --outputMODULE[:OPTIONS][,MODULE...]\n-U, --use-si\n-f, --configfile=FILE\n-p, --policy=POLICY\n-r, --read-interval=FLOAT\n-R, --rate-interval=FLOAT\n-b, --use-bit\n-L, --lifetime=FLOAT\n"
      }
    ],
    "field": [
      {
        "id": "policy",
        "label": "Interface policy",
        "description": "Which interfaces to show, for example a comma-separated list of names.",
        "type": "string",
        "option": [
          "--policy",
          "-p"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "use_bit",
        "label": "Show bits per second",
        "type": "boolean",
        "option": [
          "--use-bit",
          "-b"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "use_si",
        "label": "Use SI units (1 KB = 1000 bytes)",
        "type": "boolean",
        "option": [
          "--use-si",
          "-U"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "read_interval",
        "label": "Read interval (seconds)",
        "type": "number",
        "option": [
          "--read-interval",
          "-r"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "rate_interval",
        "label": "Rate interval (seconds)",
        "type": "number",
        "option": [
          "--rate-interval",
          "-R"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "lifetime",
        "label": "Element lifetime (seconds)",
        "type": "number",
        "option": [
          "--lifetime",
          "-L"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "input",
        "label": "Input modules",
        "type": "string",
        "option": [
          "--input",
          "-i"
        ],
        "suggestions": [
          {
            "value": "netlink",
            "label": "netlink"
          },
          {
            "value": "proc",
            "label": "proc"
          }
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "output",
        "label": "Output modules",
        "type": "string",
        "option": [
          "-o"
        ],
        "suggestions": [
          {
            "value": "curses",
            "label": "curses"
          },
          {
            "value": "ascii",
            "label": "ascii"
          }
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "configfile",
        "label": "Config file",
        "type": "path",
        "option": [
          "--configfile",
          "-f"
        ],
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "monitor",
        "label": "Monitor in bits per second",
        "fields": [
          "policy",
          "use_bit",
          "read_interval"
        ],
        "set": {
          "use_bit": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "policy",
          "use_bit",
          "use_si",
          "read_interval"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "rate_interval",
          "lifetime",
          "input",
          "output",
          "configfile"
        ]
      }
    ]
  }
}
