awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

CLI framework

排名更新于 2026年7月8日

For a framework for building command line tools, the strongest matches are clap-rs/clap (Clap is a robust and widely-used library for command-line), yargs/yargs (Yargs is a robust framework for building Node) and symfony/console (This is a comprehensive PHP framework that provides all). cacjs/cac and urfave/cli round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

Find the best CLI framework for your next project. We ranked top open-source tools by activity and features to help you compare and pick the right one.

CLI framework

用 AI 发现最棒的仓库。我们将通过 AI 为您搜索最匹配的仓库。
  • clap-rs/clapclap-rs 的头像

    clap-rs/clap

    16,528在 GitHub 上查看↗

    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

    Clap is a robust and widely-used library for command-line argument parsing in Rust that provides essential features like terminal styling, auto-completion, and complex command structure management for building interactive CLI applications.

    RustArgument ParsersCommand-Line Argument ParsersTerminal Styling
    在 GitHub 上查看↗16,528
  • yargs/yargsyargs 的头像

    yargs/yargs

    11,492在 GitHub 上查看↗

    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

    Yargs is a robust framework for building Node.js CLI applications that handles command parsing, help generation, and shell completion, though it lacks built-in interactive prompt components which would require integration with additional libraries.

    JavaScriptArgument ParsersCommand-Line Argument ParsersShell Completion
    在 GitHub 上查看↗11,492
  • symfony/consolesymfony 的头像

    symfony/Console

    9,813在 GitHub 上查看↗

    Console is a PHP CLI framework used for building interactive terminal applications. It functions as a command line interface development toolkit and orchestrator that manages the lifecycle of terminal commands, processes user input, and produces formatted text output. The project includes a terminal capability detector to identify system color modes and window dimensions for creating responsive layouts. It provides a console output formatter for rendering styled text, bordered blocks, and progress bars, alongside a system for creating interactive terminal interfaces. The framework covers com

    This is a comprehensive PHP framework that provides all the essential tools for building interactive CLI applications, including command routing, argument parsing, terminal styling, and interactive input collection.

    PHPCommand Line Argument Parsers
    在 GitHub 上查看↗9,813
  • cacjs/caccacjs 的头像

    cacjs/cac

    2,923在 GitHub 上查看↗

    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

    This is a lightweight CLI framework that provides essential command parsing, routing, and help generation, making it a solid choice for building interactive command-line tools despite lacking built-in terminal styling or advanced plugin systems.

    TypeScriptCommand-Line Argument ParsersArgument Parsing
    在 GitHub 上查看↗2,923
  • urfave/cliurfave 的头像

    urfave/cli

    24,133在 GitHub 上查看↗

    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

    This is a robust framework for building structured CLI applications in Go that excels at command parsing, flag management, and shell completion, though it lacks built-in interactive prompt widgets.

    GoArgument ParsersArgument ParsingShell Completion Generators
    在 GitHub 上查看↗24,133
  • dthree/vorpaldthree 的头像

    dthree/vorpal

    5,628在 GitHub 上查看↗

    Vorpal is a Node.js interactive CLI framework and terminal user interface library used to build extensible command-line shells. It functions as an interactive command-line parser that converts string input into executable functions, managing the lifecycle of terminal sessions and command routing. The framework is distinguished by a plugin-based extension architecture that allows external modules to register new commands, shared behaviors, and complete command suites into the core environment. It supports the creation of custom shell environments with specialized namespaces and a system for pe

    Vorpal is a comprehensive Node.js framework specifically designed for building interactive CLI applications, featuring robust command parsing, plugin-based extensibility, and built-in support for terminal session management.

    JavaScriptCommand Line Extensions
    在 GitHub 上查看↗5,628
  • remkop/picocliremkop 的头像

    remkop/picocli

    5,387在 GitHub 上查看↗

    picocli is a command line interface development framework and argument parser for JVM-based applications. It maps command line options and positional parameters to strongly typed Java methods and fields using a declarative, annotation-based model. The framework provides specific support for native image compilation, producing the reflection and resource configuration files necessary to build standalone binaries with reduced startup overhead. It further distinguishes itself with a dedicated system for generating shell autocompletion scripts and an ANSI terminal stylizer for applying colors and

    This is a comprehensive Java framework for building CLI applications that includes robust support for command parsing, terminal styling, and auto-completion, though it focuses more on argument-driven interfaces than complex interactive prompt flows.

    JavaCommand Line Argument ParsersTerminal StylingShell Completion Generators
    在 GitHub 上查看↗5,387
  • oclif/oclifoclif 的头像

    oclif/oclif

    9,543在 GitHub 上查看↗

    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

    oclif is a comprehensive Node.js framework designed specifically for building professional CLI applications, offering robust support for command parsing, plugin architecture, and cross-platform distribution.

    TypeScriptArgument Parsing
    在 GitHub 上查看↗9,543
  • fastapi/typerfastapi 的头像

    fastapi/typer

    19,632在 GitHub 上查看↗

    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

    Typer is a robust framework for building CLI applications that leverages Python type hints to handle command parsing and argument validation, making it a highly effective tool for creating complex terminal interfaces.

    PythonArgument ParsersCommand Argument ParsersCommand-Line Argument Parsers
    在 GitHub 上查看↗19,632
  • tj/commander.jstj 的头像

    tj/commander.js

    28,282在 GitHub 上查看↗

    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

    Commander.js is a widely-used framework for building CLI applications that excels at command parsing and structuring complex command hierarchies, though it lacks built-in interactive prompts and advanced terminal styling compared to more comprehensive suites.

    JavaScriptArgument Parsers
    在 GitHub 上查看↗28,282
  • spf13/cobraspf13 的头像

    spf13/cobra

    44,107在 GitHub 上查看↗

    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,

    Cobra is a comprehensive framework for building complex, nested CLI applications in Go that provides robust command parsing, automatic help generation, and built-in support for shell auto-completion.

    GoShell Completion Generators
    在 GitHub 上查看↗44,107
  • kylef/commanderkylef 的头像

    kylef/Commander

    1,535在 GitHub 上查看↗

    Compose beautiful command line interfaces in Swift

    This library provides a framework for defining command-line interfaces and parsing arguments in Swift, serving as a foundational tool for building interactive CLI applications.

    SwiftArgument Parsing
    在 GitHub 上查看↗1,535
  • docopt/docoptdocopt 的头像

    docopt/docopt

    8,008在 GitHub 上查看↗

    Docopt is a command-line argument parser and declarative interface tool that converts raw terminal input into a structured data map. It derives its parsing logic and requirements directly from a standardized POSIX-style help message, using the documentation as the formal specification for the interface. The system implements a POSIX usage pattern parser to translate human-readable help strings into rules for extracting options and positional arguments. It automatically generates help screens and version information based on the internal usage patterns defined by the user. The tool ensures a

    This library provides a declarative approach to command parsing and help generation, serving as a foundational tool for building CLI applications even though it lacks built-in support for interactive prompts or terminal styling.

    PythonCommand Line Argument Parsers
    在 GitHub 上查看↗8,008
  • pallets/clickpallets 的头像

    pallets/click

    17,560在 GitHub 上查看↗

    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

    Click is a robust Python framework for building complex, nested command-line interfaces that handles command parsing and terminal styling, though it lacks a built-in plugin architecture.

    PythonCLI ExtensionsCommand Argument ParsersShell Completion Generators
    在 GitHub 上查看↗17,560
  • textualize/textualTextualize 的头像

    Textualize/textual

    36,285在 GitHub 上查看↗

    This project is a framework for building interactive, graphical-style terminal applications. It provides a declarative component model that organizes user interfaces into a tree of nested widgets, each managing its own lifecycle, state, and rendering. By subclassing the base application class, developers can construct complex, keyboard-navigable interfaces that run directly within terminal emulators. The framework distinguishes itself through a reactive architecture and a CSS-based layout engine. It uses a reactive attribute system to automatically track state changes and trigger targeted int

    Textual is a comprehensive framework for building complex, interactive terminal user interfaces that provides the necessary tools for terminal styling, layout management, and event-driven interactivity.

    PythonTerminal Application FrameworksApplication DefinitionsCommand Palettes
    在 GitHub 上查看↗36,285
  • alecthomas/kongalecthomas 的头像

    alecthomas/kong

    2,976在 GitHub 上查看↗

    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

    Kong is a declarative CLI framework for Go that excels at command parsing and structure mapping, providing a robust foundation for building complex command-line applications.

    GoCommand Line Interface PluginsCommand-Line Argument Parsers
    在 GitHub 上查看↗2,976
  • chjj/blessedchjj 的头像

    chjj/blessed

    11,854在 GitHub 上查看↗

    This project is a terminal user interface library for Node.js, designed to facilitate the construction of interactive command-line applications. It provides a comprehensive toolkit of high-level widgets that abstract complex terminal escape codes and rendering logic, allowing developers to build functional interfaces using reusable components. The framework distinguishes itself by implementing a box-model-based layout engine and a virtual DOM-style reconciliation system. These mechanisms enable responsive design patterns—such as percentage-based sizing and relative positioning—to function wit

    This library provides a comprehensive toolkit for building interactive terminal user interfaces with complex layouts and widget-based components, making it a strong choice for developing feature-rich CLI applications.

    JavaScriptTerminal StylingTerminal Text Styling
    在 GitHub 上查看↗11,854
  • google/python-firegoogle 的头像

    google/python-fire

    28,208在 GitHub 上查看↗

    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

    Python Fire is a framework that simplifies CLI development by automatically generating interfaces from Python objects, though it focuses more on command parsing and structure than on building interactive prompts or complex terminal styling.

    PythonShell Completion Generators
    在 GitHub 上查看↗28,208
  • textualize/richTextualize 的头像

    Textualize/rich

    56,636在 GitHub 上查看↗

    Rich is a comprehensive library for building sophisticated command-line interfaces and terminal applications. It provides a robust console formatting engine and a layout framework that enables developers to render rich text, syntax-highlighted code, and complex data structures directly in the terminal. By utilizing a recursive constraint-based layout engine, the library allows for the creation of hierarchical grids, panels, and trees that maintain their structure even as terminal dimensions change. What distinguishes the library is its ability to manage persistent, real-time terminal interfac

    Rich is a powerful library for terminal styling and complex data rendering that serves as a foundational component for building interactive CLI applications, though it focuses more on visual output than on command parsing or plugin architecture.

    PythonCLI Interaction Helpers
    在 GitHub 上查看↗56,636
  • gizak/termuigizak 的头像

    gizak/termui

    13,574在 GitHub 上查看↗

    Termui is a Go terminal user interface library used for building interactive dashboards and visual layouts within a command-line environment. It functions as a TUI layout engine, an interactive CLI framework, and a terminal data visualization toolkit. The library provides a set of specialized widgets for rendering charts, plots, gauges, and tables using character-based graphics. It includes a grid-based system for arranging interface elements using relative coordinates and proportional sizing to create structured displays. The toolkit covers a broad range of capabilities including data visua

    This library provides a robust set of tools for building interactive, visual terminal interfaces and dashboards, making it a strong choice for developers focused on the UI and layout aspects of CLI applications.

    GoTerminal Text Styling
    在 GitHub 上查看↗13,574
  • veeso/tui-realmveeso 的头像

    veeso/tui-realm

    963在 GitHub 上查看↗

    This project is a framework for building stateful, component-driven terminal user interfaces in Rust. It provides a structured architecture for managing complex command line applications by decoupling rendering logic from application state through a centralized message-passing system. By utilizing a component-based model, it enables developers to construct interactive interfaces that handle event routing, focus management, and lifecycle orchestration in a predictable manner. The framework distinguishes itself through its focus on modularity and developer productivity. It employs trait-based c

    This framework provides a robust, component-driven architecture for building complex, stateful terminal user interfaces in Rust, making it a strong choice for developers needing to manage interactive CLI application logic.

    RustTerminal User Interface FrameworksApplication State ManagementComponent Communication
    在 GitHub 上查看↗963
  • vadimdemedes/inkvadimdemedes 的头像

    vadimdemedes/ink

    38,933在 GitHub 上查看↗

    Ink is a declarative framework for building interactive command-line applications using a component-based architecture. It functions as a console renderer that maps component trees to terminal output buffers, allowing developers to manage stateful interfaces through standard component reconciliation. By translating high-level layout and style properties into terminal control codes, it enables the creation of responsive, dynamic interfaces within the console. The framework distinguishes itself by integrating a cross-platform layout engine that applies a flexible box model to the character-base

    Ink is a component-based framework that enables the creation of complex, interactive terminal user interfaces using React, providing the necessary tools for terminal styling and dynamic layout management.

    TypeScriptTerminal UI FrameworksDeclarative Terminal FrameworksTerminal Rendering Engines
    在 GitHub 上查看↗38,933
  • python-poetry/cleopython-poetry 的头像

    python-poetry/cleo

    1,351在 GitHub 上查看↗

    Create beautiful and testable command-line interfaces.

    Cleo is a Python framework designed specifically for building interactive, testable CLI applications with built-in support for command parsing, terminal styling, and prompt handling.

    PythonCLI DevelopmentPython CLI Frameworks
    在 GitHub 上查看↗1,351
  • aplus-framework/cliaplus-framework 的头像

    aplus-framework/cli

    231在 GitHub 上查看↗

    This project is a PHP framework designed for building interactive command-line applications and automation tools. It provides a structured environment for developers to construct console interfaces that handle user input and terminal output, facilitating the management of system-level operations and repetitive development tasks. The framework utilizes a command-pattern dispatching system that maps terminal arguments to executable classes, supported by a dependency-injection container to manage service lifecycles. It incorporates reflective metadata discovery to automatically extract command d

    This library provides the necessary tools for command parsing and console interaction within PHP applications, serving as a dedicated framework for building CLI tools.

    PHPCommand Line Interface FrameworksCLI Command DispatchersInteractive Command Line Interfaces
    在 GitHub 上查看↗231
  • jonathanslenders/python-prompt-toolkitjonathanslenders 的头像

    jonathanslenders/python-prompt-toolkit

    10,498在 GitHub 上查看↗

    python-prompt-toolkit is a Python library and terminal user interface framework used for building interactive command line interfaces. It provides a toolkit for constructing complex terminal applications with advanced input handling and layout management. The project features a real-time syntax highlighting engine and a rendering system that ensures correct alignment and display of double-width Unicode characters. It includes specialized capabilities for command line autocompletion, providing ghost text suggestions and searchable input history. The framework covers a broad range of interface

    This library provides a robust foundation for building interactive CLI applications with advanced features like autocompletion, syntax highlighting, and complex layout management, though it focuses more on the interface layer than on high-level command parsing or plugin architectures.

    PythonInteractive CLI FrameworksTerminal User InterfacesCommand Line Input Utilities
    在 GitHub 上查看↗10,498
  • dotnet/command-line-apidotnet 的头像

    dotnet/command-line-api

    3,667在 GitHub 上查看↗

    Command line parsing, invocation, and rendering of terminal output.

    This library provides robust command parsing and terminal output rendering for .NET applications, serving as a foundational framework for building interactive CLI tools.

    C#Command Line ToolsDotnet CLI Frameworks
    在 GitHub 上查看↗3,667
  • commander-rb/commandercommander-rb 的头像

    commander-rb/commander

    822在 GitHub 上查看↗

    The complete solution for Ruby command-line executables

    This is a dedicated Ruby framework for building CLI applications that provides command parsing and terminal styling, though it lacks a built-in plugin architecture.

    RubyCLI DevelopmentRuby CLI Frameworks
    在 GitHub 上查看↗822
  • mrrooijen/commandermrrooijen 的头像

    mrrooijen/commander

    130在 GitHub 上查看↗

    Command-line interface builder for the Crystal programming language.

    This library provides a structured way to build command-line interfaces in Crystal, offering essential command parsing and interface building capabilities for CLI development.

    CrystalCLI Builders
    在 GitHub 上查看↗130
一览前 10 名对比
仓库Star 数语言许可证最后推送
clap-rs/clap16.5KRustApache-2.02026年6月1日
yargs/yargs11.5KJavaScriptMIT2026年6月15日
symfony/console9.8KPHPMIT2026年6月16日
cacjs/cac2.9KTypeScriptmit2026年2月20日
urfave/cli24.1KGoMIT2026年6月23日
dthree/vorpal5.6KJavaScriptMIT2023年9月19日
remkop/picocli5.4KJavaApache-2.02026年5月10日
oclif/oclif9.5KTypeScriptMIT2026年6月15日
fastapi/typer19.6KPythonMIT2026年6月21日
tj/commander.js28.3KJavaScriptMIT2026年6月22日

Related searches

  • a library for building PHP CLI applications
  • a ruby framework for building cli applications
  • a terminal utility for improving developer productivity
  • a java library for building cli applications
  • Python 命令行界面 (CLI) 开发框架
  • 用于构建 CLI 工具的 Go 框架
  • a library for building C# CLI applications
  • 用于构建可扩展工具的模块化框架