Mandible offers an intuitive terminal user interface (TUI) manual for command-line tools, allowing users to effortlessly navigate command structures, subcommands, and flags. Unlike traditional manuals, it unveils the full capabilities of tools beyond basic commands, providing a streamlined and informative experience.
Mandible is a powerful Terminal User Interface (TUI) designed to provide comprehensive documentation for every command-line tool available. Unlike traditional help commands like man or --help, Mandible goes beyond single commands and helps users explore the entire functionality of tools they may not fully understand.
Interactive Exploration: By executing commands such as mandible docker, users can visualize a tree structure that displays every command, subcommand, and flag on the left pane, while bringing up detailed documentation on the right.
$ mandible docker
Framework-Agnostic: Mandible is built on the principle that help texts are generated by specific frameworks rather than being hard-coded. It intelligently identifies the framework that produced a tool's output and applies the correct grammatical structure for accurate documentation.
| Language | Frameworks Used |
|---|---|
| Rust | clap (v2, v3/v4) |
| Go | cobra, urfave/cli, stdlib flag |
| Python | argparse, click, docopt |
| JavaScript | commander, yargs, oclif |
| Java / .NET | picocli, System.CommandLine |
| Others | GNU argp/getopt_long, and more |
Universal Tool Coverage: The software continuously tests itself against every executable on your PATH, providing coverage metrics that help ensure the accuracy and completeness of the documentation. This rigorous testing is reflected in the cargo xtask coverage reports.
Safety Protocols: Mandible runs tools in a safe manner, only asking for help through benign commands like --help. It isolates any output to a temporary directory to avoid unintentional file creation or system changes, ensuring user safety when probing commands.
Mandible allows users to customize their experience, including binding keys for quick navigation within the interface. It also supports local overrides of tool documentation:
summary = "my better one-line description"
[[flags]]
long = "verbose"
short = "v"
description = "a description that actually explains it"
This flexibility enables users to enhance the documentation based on their needs.
Mandible is compatible with Linux and macOS (both x86_64 and arm64), but does not support Windows at this time due to reliance on POSIX process group features.
For those looking for a comprehensive and interactive way to learn and explore command-line tools, Mandible offers an innovative solution that bridges the gap between simple help commands and detailed documentation.
No comments yet.
Sign in to be the first to comment.