20 dépôts
Hierarchical organization of CLI commands into sub-commands and groups.
Distinct from CLI Command Frameworks: Distinct from CLI Command Frameworks: focuses on the hierarchical nesting of commands rather than the base framework definition.
Explore 20 awesome GitHub repositories matching development tools & productivity · Nested Command Structures. Refine with filters or upvote what's useful.
Python Fire is a library that automatically generates command line interfaces from any Python object, function, or class. It removes the need for manual argument parsing by mapping Python dictionaries, lists, and classes directly to terminal commands. The tool converts Python docstrings into formatted terminal help screens and produces shell scripts to enable tab-completion for available commands. It can wrap existing libraries or external modules to expose their functionality via the terminal without requiring modifications to the original source code. The library supports hierarchical comm
Nest commands in Fire using classes or objects with member objects to create a structured, multi-level command hierarchy.
Python is a high-level, interpreted programming language designed for readability and versatility. It operates via a bytecode-based virtual machine and manages memory automatically through reference-counting garbage collection. The language supports multiple programming paradigms, including object-oriented, imperative, and functional styles, and provides a comprehensive standard library for system operations, networking, and data handling. The language is distinguished by its dynamic nature, allowing for runtime object introspection and metaclass-driven class creation. It utilizes protocol-ba
Groups related commands into hierarchical sub-commands to manage complex tool functionality.
This is a framework for building structured terminal applications in Go. It provides the core components necessary to define a command-line interface, including a system for managing commands, sub-commands, and their associated flags. The library distinguishes itself through an automated help generator that produces formatted usage instructions and manual pages, and a shell completion generator that creates tab-completion scripts for Bash, Zsh, Fish, and PowerShell. It also features a command lifecycle manager to handle pre- and post-execution logic and process exit codes. The toolkit covers
Provides a recursive hierarchy for organizing commands and sub-commands with associated metadata.
This project is a Python framework for building command-line interfaces by converting standard functions into executable programs. It uses type hints to automatically infer and generate argument parsers, validation logic, and help documentation, allowing developers to define complex terminal applications through simple function signatures. The framework distinguishes itself through a decorator-driven registration system that enables the construction of hierarchical command trees. It supports dependency injection to manage shared state and runtime configuration across subcommands, and it utili
Organizes related functions into a single command-line application with nested subcommands and automatic help generation.
Click is a Python framework for building command-line interfaces. It provides a declarative approach to defining command structures, allowing developers to map functions to command-line arguments, options, and nested groups using decorators. The framework handles the complexities of parameter parsing, type validation, and help documentation generation automatically. The project distinguishes itself through its hierarchical context system, which propagates configuration and state across nested commands, and its environment-aware parameter resolution that prioritizes command-line inputs, enviro
Combines multiple independent command line utilities into a single hierarchical interface.
Clap is a command-line argument parser for Rust that enables developers to define complex interfaces through strongly-typed data structures. It functions as a comprehensive framework for building terminal applications, automating the transformation of raw string inputs into validated, type-safe code representations while simultaneously generating help documentation and usage statements. The library distinguishes itself by offering both a declarative, attribute-based approach and a fluent builder-pattern API, allowing for flexible interface construction. It includes a sophisticated validation
Manages nested command structures where individual subcommands maintain their own independent arguments, help documentation, and execution logic.
yargs is a command-line interface framework and argument parser for Node.js. It translates raw command-line strings into structured JavaScript objects, providing a toolkit for building terminal applications with nested sub-commands, dedicated handlers, and a structured user interface. The framework distinguishes itself through automated help text generation, which constructs formatted usage menus and instructions based on registered metadata. It also provides shell completion generation for Bash and Zsh and uses string-distance algorithms to offer typo correction suggestions when invalid inpu
Enables the creation of nested sub-commands with dedicated handlers and options to organize complex CLI structures.
Spectre.Console is a .NET framework designed for building structured, feature-rich command-line applications. It provides a comprehensive toolkit for managing complex command hierarchies, type-safe argument parsing, and dependency injection, allowing developers to decouple business logic from input processing while maintaining modular application designs. The framework distinguishes itself through a sophisticated terminal user interface toolkit that enables the creation of dynamic, interactive console experiences. It utilizes a markup-based rendering system to display styled text, tables, cha
Organizes application functionality into a hierarchical structure of nested commands that automatically generate documentation and handle execution flow.
Lefthook est un gestionnaire de hooks Git et un automatiseur de flux de travail qui utilise une approche basée sur la configuration pour gérer les scripts déclenchés par des événements de contrôle de version. Il fonctionne comme un exécuteur de tâches en parallèle, exécutant plusieurs scripts simultanément pour réduire le temps requis pour les vérifications pré-commit ou pré-push. Le projet fournit un exécuteur de hooks conteneurisé pour garantir des dépendances et des ensembles d'outils cohérents sur différentes machines de développeurs. Il prend également en charge l'orchestration de monorepos en exécutant des scripts dans des sous-répertoires spécifiques et en gérant des structures de projet complexes. Le système inclut des capacités de filtrage de fichiers basé sur des motifs pour exécuter des tâches d'assurance qualité uniquement sur les actifs modifiés. Il prend en charge l'exécution manuelle de tâches, le marquage et le regroupement de commandes, ainsi que des remplacements de configuration locaux pour les paramètres spécifiques à l'environnement.
Organizes related sets of commands into tags to execute multiple associated tasks as a single unit.
which-key.nvim is a keybinding discovery menu and command palette for Neovim. It serves as a configuration tool to organize complex keymap hierarchies and a visual utility for browsing editor marks, registers, and spelling suggestions through a compact popup interface. The plugin differentiates itself by organizing shortcuts into nested groups with custom labels and icons, reducing the need to memorize long key sequences. It includes built-in help presets for native editor operators and motions, and supports dynamic key mapping where descriptions are evaluated at runtime. The system covers w
Organizes keybindings into a hierarchical tree structure where each node represents a prefix for subsequent commands.
RediSearch is a Redis module that adds secondary indexing, full-text search, aggregation, and vector similarity search directly into the in-memory data store. It operates as an in-process search engine, extending the core key-value store with capabilities for indexing hash and JSON documents, enabling fast field-level lookups beyond primary key access. The module provides a full-text search engine built on inverted indexes, supporting stemming, fuzzy matching, and relevance scoring via tf-idf. It also includes a vector similarity search engine using a Hierarchical Navigable Small World graph
Lists all registered commands grouped by category for discoverability.
yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing pipeline, from reading YAML content into a traversable node tree to writing in-memory data structures back as YAML text. The library represents parsed YAML as a mutable tree of typed nodes, supporting scalars, sequences, maps, and aliases. It uses a recursive-descent parser to build this node tree, and a stream-based emitter to generate YAML output incrementally. Template-based type conversion enables compile-time serialization between YAML nodes and C++ types, including support for c
Constructs hierarchical YAML structures by nesting sequence and map manipulators.
CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web applications. It provides a lightweight toolkit with minimal configuration, organizing application logic into controllers, models, and views for clean separation of concerns. The framework includes a fluent query builder for constructing SQL statements programmatically, PSR-4 autoloading with namespace mapping, and a service-based dependency injection container for managing shared class instances. The framework distinguishes itself through its comprehensive set of built-in tools
Lists all registered Spark commands grouped by category when invoked without arguments.
picocli est un framework de développement d'interface en ligne de commande (CLI) et un analyseur d'arguments pour les applications basées sur la JVM. Il mappe les options de ligne de commande et les paramètres positionnels vers des méthodes et champs Java fortement typés en utilisant un modèle déclaratif basé sur des annotations. Le framework fournit un support spécifique pour la compilation en image native, produisant les fichiers de configuration de réflexion et de ressources nécessaires pour construire des binaires autonomes avec une surcharge de démarrage réduite. Il se distingue en outre par un système dédié à la génération de scripts d'autocomplétion shell et un styliseur de terminal ANSI pour appliquer des couleurs et des styles à la sortie. Le projet couvre un large éventail de capacités d'application terminale, notamment le dispatch de commandes hiérarchiques pour les sous-commandes imbriquées, la génération automatisée d'aide à l'utilisation et de pages man, et l'implémentation de shell interactif avec des invites utilisateur. Il inclut également une infrastructure pour l'injection de dépendances via des usines personnalisées, la conversion de type basée sur des plugins et le traitement de fichiers d'arguments externes.
Creates hierarchical command structures that allow users to navigate complex toolsets through sub-levels.
Cette bibliothèque est un analyseur de ligne de commande .NET pour C# et F# qui implémente les conventions POSIX getopt pour mapper les arguments du shell dans des objets fortement typés. Elle fournit un framework pour construire des applications console qui traitent les drapeaux (flags) et options de style Unix. Le projet dispose d'un système de routage qui dirige l'exécution du programme en fonction de verbes orientés action, prenant en charge les sous-commandes et les actions par défaut. Il inclut un générateur d'aide automatique qui produit des instructions d'utilisation localisées et des écrans d'aide formatés basés sur les options de commande définies. La boîte à outils couvre l'analyse d'arguments avec mappage fortement typé, la validation des entrées pour les options mutuellement exclusives ou requises, et la capacité de sérialiser les objets d'options remplis en chaînes de ligne de commande.
Organizes multiple distinct commands by assigning specific option classes to unique verb identifiers.
CLI11 est une bibliothèque C++ header-only pour l'analyse d'arguments en ligne de commande et la gestion de fichiers de configuration. Elle mappe les entrées du shell vers des variables typées et prend en charge la création de hiérarchies de commandes complexes. La bibliothèque se distingue par sa prise en charge des sous-commandes imbriquées avec une profondeur infinie et la correspondance de préfixes. Elle intègre la gestion de la configuration en permettant aux paramètres de l'application d'être chargés depuis des fichiers TOML ou INI, avec la possibilité de revenir aux variables d'environnement. Le projet fournit un ensemble complet d'outils pour l'analyse d'arguments, incluant des flags et des arguments positionnels, ainsi qu'un framework de validation pour imposer des options obligatoires et des dépendances mutuelles. Il inclut également la génération automatique de documentation d'aide avec un formatage personnalisable et un système de callback pour déclencher une logique personnalisée lors d'étapes d'analyse spécifiques. Cette bibliothèque sans dépendance est conçue pour C++11 et les versions ultérieures.
Supports the organization of subcommands into a nested hierarchy allowing for infinite depth.
This is a library for building command-line interfaces in Swift. It converts command-line arguments into type-safe Swift properties using a declarative approach, ensuring that inputs match expected data types to prevent runtime errors. The framework supports the creation of complex command hierarchies through nested subcommands. It automatically generates formatted usage documentation and error messages by deriving information from the defined metadata and types. The system utilizes property wrappers to attach parsing logic to types and employs reflection to extract metadata from property na
Provides hierarchical organization of CLI commands into sub-commands and groups using a declarative tree of types.
Brigadier is a command-line parser and dispatcher that maps text-based inputs to executable functions using a hierarchical tree of arguments. It provides a system for defining nested command structures and typed arguments to route user input to specific handlers. The library includes a command syntax generator that automatically produces human-readable usage strings and documentation based on defined command nodes. It transforms raw strings into structured data to identify valid command sequences and pinpoint syntax errors. The framework covers command tree routing, input syntax validation,
Maps hierarchical command structures to executable functions to handle complex nested subcommands and arguments.
Space Station 14 is a C# multiplayer game and roleplay simulation framework. It is built upon an Entity-Component-System (ECS) game engine that separates logic into systems and data into components to manage complex entity interactions. The project functions as a grid-based physics simulator with a YAML data-driven prototype system for defining game objects. The project features a specialized 2D sprite rendering engine that maps server-side appearance data to client-side shaders. It implements a networking model with client-side prediction and dirty-flagged state synchronization to reduce inp
Supports executing sequences of commands within curly braces to override order of operations or pass computed values.
Kong is a declarative command line interface framework and parser for Go. It maps flags and positional arguments directly into typed Go structures using struct tags, allowing developers to define terminal interfaces through data models rather than manual parsing logic. The project functions as a configuration mapper that populates Go structures from a combination of command-line arguments, environment variables, and JSON files. It distinguishes itself by providing a dependency injection container to pass external services into command handlers and a plugin architecture for dynamic command reg
Supports the organization of large-scale applications into nested command structures and sub-commands.