16 dépôts
Developer libraries and frameworks for building command-line applications — argument parsing, subcommands, and help generation. These are the building blocks engineers code against, not finished tools; for ready-to-run command-line apps see Command Line Interfaces.
Explore 16 awesome GitHub repositories matching development tools & productivity · CLI Frameworks. Refine with filters or upvote what's useful.
This project is a community-driven directory of software resources, libraries, and tools designed to support iOS application development. It serves as a centralized reference point for developers, organizing a vast ecosystem of third-party components into a searchable, structured index to facilitate discovery and project integration. The repository distinguishes itself through its collaborative curation model, which aggregates disparate utilities into a single, maintainable catalog. By leveraging a flat-file documentation structure, it provides a clear overview of the tools available for nati
Composes terminal tools and command-line interfaces using structured syntax.
Cobra is a development framework for building command-line applications in Go. It organizes application logic into a hierarchical tree structure where each node represents a command, complete with its own flags and execution logic. This structure allows developers to build complex, nested command interfaces that mirror business domains while maintaining a clean separation between command orchestration and underlying business logic. The framework distinguishes itself through its declarative approach to metadata and configuration. It automatically derives help documentation, usage instructions,
Provides the core structure for building professional command-line tools with nested subcommands and flags.
Commander.js is a framework for building command-line interfaces and terminal applications. It functions as an argument parsing library and command lifecycle manager, transforming raw terminal input strings into structured, validated objects for use in executable scripts. The system utilizes a recursive command tree pattern, allowing developers to organize complex execution flows through nested subcommands. It features a declarative interface for defining command-line flags and arguments, which maps user input directly to internal state properties. To assist with usability, the framework auto
Provides a complete framework for defining nested command structures and action handlers.
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 comprehensive framework for defining structured terminal applications with commands, flags, and actions.
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
Provides a library for building command-line interfaces by converting standard functions into executable programs using type hints.
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
A library for building complex command-line interfaces with automatic help generation, parameter parsing, and nested command groups.
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
Provides a toolkit for building complex command-line applications using attribute-based macros or programmatic builders to map inputs to code.
This project is a functional programming library and toolkit for building production TypeScript applications. It provides a system for managing concurrency, error handling, and resource lifecycles using functional effects. The project distinguishes itself through a comprehensive suite of specialized toolkits, including a dependency injection framework for decoupling service implementations, a workflow orchestrator for coordinating durable processes, and a SQL database toolkit for consistent data operations across multiple dialects. It also implements an OpenTelemetry instrumentation library f
Provides tools to create structured terminal applications that handle user input and execute commands.
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
Serves as a foundational library for building feature-rich command-line applications with integrated dependency injection and interactive prompts.
Console est un framework PHP CLI utilisé pour construire des applications de terminal interactives. Il fonctionne comme une boîte à outils de développement d'interface en ligne de commande et un orchestrateur qui gère le cycle de vie des commandes terminales, traite les entrées utilisateur et produit des sorties textuelles formatées. Le projet inclut un détecteur de capacités de terminal pour identifier les modes de couleur du système et les dimensions de la fenêtre afin de créer des mises en page responsives. Il fournit un formateur de sortie console pour le rendu de texte stylisé, de blocs bordés et de barres de progression, ainsi qu'un système pour créer des interfaces terminales interactives. Le framework couvre l'orchestration des commandes via l'intégration de conteneurs de services et l'injection de dépendances. Il fournit également des outils pour la gestion des entrées utilisateur et une interface dédiée pour le test d'exécution des commandes afin de vérifier les flux de sortie et les résultats.
Serves as a comprehensive toolkit for building structured PHP command-line applications.
oclif is a Node.js framework for building command-line interfaces. It provides a structured system for developing terminal applications with consistent command patterns, argument parsing, and automated help generation. The project features a modular plugin architecture that allows for external functionality to be injected via a manifest-based loading mechanism. It includes a dedicated distribution pipeline and packager to bundle applications into OS-native installers and tarballs for Windows, macOS, and Linux. The framework covers a broad range of development capabilities, including project
Provides a comprehensive framework for building structured CLI applications with argument parsing and help generation.
Enquirer est une bibliothèque Node.js pour créer des interfaces en ligne de commande interactives afin de recueillir des entrées utilisateur structurées. Elle fournit un ensemble d'invites de terminal, y compris des menus, des formulaires et des champs de texte, pour collecter des données via l'autocomplétion, la sélection multiple et les confirmations booléennes. Le projet sert de framework personnalisable qui permet la création de types d'invites personnalisés via une classe de base et l'extension des fonctionnalités via une architecture de plugins. La bibliothèque couvre un large éventail de modèles d'interaction, tels que la capture de données numériques et sensibles, la validation des entrées utilisateur par rapport à des règles personnalisées, et l'exécution de séquences d'invites pour recueillir des retours complexes. Elle inclut également des capacités pour trier des listes, remplir des extraits de texte et gérer la collecte de formulaires dans le terminal.
Offers an extensible framework with a base class for creating custom prompt types and plugin-based logic.
Rushstack est un ensemble d'outils complet pour gérer les monorepos TypeScript à grande échelle, fournissant un framework pour l'automatisation des pipelines de build, la coordination des dépendances et l'analyse statique. Il fonctionne comme un orchestrateur de build incrémental et un système de gestion conçu pour maintenir la cohérence et la performance à travers de multiples packages dans un espace de travail partagé. Le système se distingue par un modèle d'exécution basé sur des graphes acycliques dirigés et un incrémentalisme basé sur le hash de contenu, qui assure que seuls les projets affectés sont reconstruits. Il optimise davantage les workflows de développement via la mise en cache distante des artefacts de build avec des intégrations pour S3, Azure et HTTP, et utilise la gestion d'espace de travail basée sur des liens symboliques pour une visibilité immédiate des changements locaux. L'ensemble d'outils couvre un large éventail de capacités incluant des workflows de release automatisés, l'analyse de contrat API et l'application de la qualité de code en entreprise via des profils de linting standardisés. Il fournit également un support étendu pour le bundling d'actifs, la transpilation TypeScript et la génération de définitions de type à partir de schémas JSON et d'actifs statiques. Des domaines utilitaires supplémentaires incluent la gestion de la localisation, la génération d'avis de licence et l'orchestration d'interfaces de ligne de commande avec une sortie de processus synchronisée.
Provides a structured framework for building command-line applications with type-safe parameter handling and syntax validation.
Thor est une boîte à outils Ruby pour créer des interfaces en ligne de commande et des exécuteurs de tâches. Il mappe les drapeaux et paramètres utilisateur vers des méthodes exécutables, fonctionnant à la fois comme un analyseur d'arguments en ligne de commande et un framework pour créer des outils de terminal auto-documentés. Le framework génère automatiquement des bannières d'utilisation et des menus d'aide basés sur les signatures de méthodes définies. Il organise les commandes associées au sein de classes pour créer des espaces de noms isolés et injecte les drapeaux définis par l'utilisateur directement dans la logique des méthodes. Au-delà de la génération d'interface, le projet inclut des capacités pour l'automatisation des tâches de build et l'exécution séquentielle des processus de développement. Cela permet l'orchestration d'une série définie de méthodes pour simuler des flux de travail d'automatisation de build standard.
Provides a framework for mapping command line arguments and options to functions with automatic documentation generation.
Ce projet est une implémentation de référence et un tutoriel conçu pour démontrer le flux de travail de bout en bout de la construction, du versionnage et du téléchargement de distributions Python. Il sert de modèle de projet concret et d'exemple pour configurer les métadonnées et les artefacts de build pour les index de paquets. Le dépôt illustre comment empaqueter un logiciel en définissant les métadonnées du projet et les dépendances dans des fichiers de configuration statiques. Il couvre le processus de transformation des arbres sources en archives versionnées et en distributions binaires spécifiques à la plateforme, montrant spécifiquement comment construire des wheels binaires et des distributions sources. Le projet couvre des domaines de capacités plus larges, notamment la gestion des dépendances, la création d'interfaces en ligne de commande et l'automatisation de la publication des versions vers des dépôts. Il démontre également l'utilisation d'environnements virtuels isolés et l'intégration d'extensions binaires.
Demonstrates how to create a terminal-based interface that maps user arguments to Python functions.
cac is a Node.js CLI framework used to build command line interfaces with a declarative API. It functions as a command line argument parser and a command dispatcher that maps terminal input keywords to specific JavaScript callback functions. The framework features an automated help generator that produces usage instructions and version documentation based on the defined command structures. It manages command aliases and provides a routing system to link specific keyword inputs to execution logic. The toolkit covers command interface definition, including the configuration of global and comma
Provides a declarative API for defining commands and options to handle structured terminal input.