CLI Binary Wrappers
Built on BinaryWrapper, each wrapper is a production consumer that demonstrates the framework against real-world CLI tools with different help formats, versioning schemes, and output patterns.
| Binary | Versions Scraped | Commands | Parser | Notes |
|---|---|---|---|---|
| Podman | 58 (4.1.0–5.8.1) | 180+ | CobraHelpParser | 386 generated files, 18 command groups |
| Docker Compose | 57 (2.20.0–5.1.0) | 37 | CobraHelpParser | Channel-based parallel scraping |
| Vagrant | 7 (2.4.3–2.4.9) | 30+ | VagrantHelpParser (custom) | Typed events, machine-readable output |
| Packer | Multiple | 8 groups | PackerHelpParser (custom) | HCL template workflows |
| Podman Compose | 6 (1.1.0–1.5.0) | 25 | ArgparseHelpParser | Python CLI (argparse format) |
| GitLab CLI (glab) | 2+ (1.46.1–1.47.0) | 50+ | GlabHelpParser (custom) | GitLab API version discovery, Alpine container scraping |
| Docker | In progress | — | CobraHelpParser | Structure in place |
| Git | 134 (2.30.0–2.53.0) | ~150 | GitHelpParser (custom) | 422 generated files, build-from-source scraping |
Git is the most complex scraping pipeline: since git doesn't ship as a standalone binary on Alpine, the design project builds git from source inside an Alpine container (make + gcc from tarball), then scrapes --help output. A custom GitHelpParser handles git's unique help format including git help -a for command discovery.
Podman is the largest: 58 scraped versions producing 192 command classes and 192 builders across Container, Image, Network, Volume, Pod, System, Machine, Secret, and Manifest groups.
Vagrant is the most interesting architecturally: a custom help parser for Vagrant's unusual Common commands: / Available subcommands: format, typed event hierarchies (MachineOutput, ProvisionerOutput, ActionCompleted), result collectors (VagrantUpCollector → VagrantUpResult), and edge-case handling for version-specific bugs.