Skip to content

dev-centr/prohelp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prohelp: Progressive CLI Help

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 prohelp library’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.

Key Features

  • 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 (?:i or ?:interactive) with real-time alphanumeric filter search, keyboard navigation, Shift-toggled screen selection, and Ctrl+C dynamic Markdown clipboard copying.

  • 1-Line Integration API: First-pass argument filtering that drops into standard application main entries 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., ?:de or ?:es,i).

  • Sliding-scale Line Budgets: Enforces strict screen boundaries during development (20-line Level 0 menu budget) to ensure zero scrolling overhead.

Getting Started

Compilation

To build the prohelp preview CLI (with built-in help.sdl embedded at compile time):

dub build -c executable

CLI usage

The prohelp executable uses the prohelp library on itself. Built-in help is always available:

prohelp
prohelp ?
prohelp ?:i

Preview mode (schema interpreter)

To preview another application’s help.sdl, pass the schema path first. Prohelp virtualizes the schema’s command name (for example tar) for rendering and navigation:

prohelp examples/tar.sdl ?
prohelp examples/tar.sdl ? operations
prohelp -f myapp/help.sdl ?:de,i

Integration API

D applications (prefer prohelp-cli)

For 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.

Drop-in intercept (library)

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...
}

Changelog

For a full release history and details of specifications, please see the Changelog.

License

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.

About

Progressive & Professional Help CLI Interceptor and Library

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Packages

 
 
 

Contributors