The standard command-line help interface (--help or help) is broken. It dumps massive walls of unreadable text.
Prohelp is a progressive help specification and reference library: a professional-grade, budget-enforced terminal documentation system with Unicode box panels, locale-aware rendering, and an optional full-screen TUI. The official name is intentionally short — progressive is the idea; professional is the experience.
Prohelp is not a full command-line application framework. It solves progressive help only. For building CLI tools, use a framework and wire Prohelp in:
-
D (recommended): prohelp-cli with arsd.cli (or another D CLI router) — parsing and routing stay in the framework; help stays in Prohelp.
-
C / BetterC: the
prohelplibrary’s C-compatible API (planned) — combine with your existing argv parser. -
Other languages: consume Prohelp through FFI and pair it with your ecosystem’s CLI framework (Click, clap, cobra, etc.).
The prohelp preview executable ships with built-in help and can interpret any help.sdl schema for authoring and testing before you bake help into a product build.
Prohelp enforces progressive information disclosure by organizing CLI documentation into a clean conceptual hierarchy.
It intercepts user help requests, automatically resolves host system locales, renders structured progressive layouts using 24-bit TrueColor and Unicode box-drawing visual zoning, and bundles an opt-in full-screen interactive Terminal browser.
-
Default Static Box Zoning: Generates gorgeous, Unicode-boxed information panels that are fully compatible with pipes (
|), redirects (>), and log files. -
Opt-in TUI Viewport: A zero-dependency, full-screen terminal browser (
?:ior?:interactive) with real-time alphanumeric filter search, keyboard navigation, Shift-toggled screen selection, andCtrl+Cdynamic Markdown clipboard copying. -
1-Line Integration API: First-pass argument filtering that drops into standard application
mainentries with a single line of code. -
Hierarchical Globbing (
*): Supports subtree glob extraction (e.g.tar ?:text operations *), enabling scripts and AI agents to fetch highly targeted documentation chunks on demand without context window clutter. -
Multilingual Localization: Native OS locale auto-detection with support for explicit overrides (e.g.,
?:deor?:es,i). -
Sliding-scale Line Budgets: Enforces strict screen boundaries during development (20-line Level 0 menu budget) to ensure zero scrolling overhead.
To build the prohelp preview CLI (with built-in help.sdl embedded at compile time):
dub build -c executableThe prohelp executable uses the prohelp library on itself. Built-in help is always available:
prohelp
prohelp ?
prohelp ?:iFor new D command-line tools, prefer prohelp-cli integrated with a CLI router such as arsd.cli. See the prohelp-cli repository for how execution routing and progressive help cooperate.
For minimal integration or non-D languages via FFI, add prohelp as a dependency and call intercept before your existing argument parser:
import prohelp.intercept;
void main(string[] args) {
if (prohelp.intercept(args)) return;
// Your CLI framework or hand-rolled parser continues here...
}For a full release history and details of specifications, please see the Changelog.
Prohelp is licensed under the Prohelp Copyleft and Disclosure License (PCDL) Version 1.0.
This is a strong copyleft license with a mandatory downstream disclosure rider. You may copy, modify, and distribute this software provided that: 1. Any derivative works are licensed under the exact same PCDL Version 1.0 terms (strong copyleft). 2. You publicly disclose the existence of your derivative work and notify the original project (Parent Project) at dev-centr/prohelp within 30 days of release or deployment.
See the LICENSE file for full legal terms.