For a library for building typescript cli tools, the strongest matches are vadimdemedes/ink (Ink is a robust, React-based framework that provides a), tj/commander.js (Commander) and yargs/yargs (yargs is a mature and widely-used framework for command). cacjs/cac and oclif/oclif round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best typescript cli libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
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 robust, React-based framework that provides a declarative way to build complex, interactive CLI applications with full TypeScript support, including built-in terminal styling, layout management, and stateful UI components.
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 foundational library for building CLI applications in the Node.js ecosystem that provides robust command and argument parsing, though it requires additional libraries to handle interactive prompts and advanced terminal styling.
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 mature and widely-used framework for command and argument parsing in Node.js that provides the essential foundation for building robust TypeScript CLI applications.
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 and declarative CLI framework that provides robust command and argument parsing with full TypeScript support, making it a solid choice for building 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
oclif is a comprehensive, TypeScript-native framework specifically designed for building robust command-line applications, offering built-in support for command parsing, plugin architectures, and cross-platform distribution.
Enquirer is a Node.js library for creating interactive command-line interfaces to gather structured user input. It provides a set of terminal prompts, including menus, forms, and text fields, to collect data via autocomplete, multiselect, and boolean confirmations. The project serves as a customizable framework that allows for the creation of custom prompt types through a base class and the extension of functionality via a plugin architecture. The library covers a wide range of interaction patterns, such as capturing numerical and sensitive data, validating user input against custom rules, a
Enquirer is a specialized library for building interactive terminal prompts and user input flows, providing the essential interactive components needed to build a robust TypeScript CLI application.
Meow is a Node.js command line argument parser that converts raw input strings into structured objects. It functions as a tool for processing flags and positional arguments according to POSIX and shell conventions. The library provides a system for enforcing required arguments and verifying data types for command line inputs. It also serves as a helper for managing version strings, help menus, and subcommand routing within terminal applications. The project covers the broader surface of command line interface development, including input validation and the direction of execution paths via ke
Meow is a specialized library for argument parsing and flag validation that serves as a foundational building block for TypeScript CLI development, though it lacks built-in interactive prompts or terminal styling features.
Commander is a foundational library for building command-line interfaces in Node.js that provides robust command and argument parsing with excellent TypeScript support, though it relies on external packages for advanced features like interactive prompts or complex terminal styling.
cli-spinners is a collection of predefined terminal animation sequences and structured datasets used to signal background activity in console applications. It serves as a library of visual frame sequences and a JSON dataset designed for integration into command line scripts. The project provides a curated collection of spinner frame sequences and timing intervals to create loading indicators. It includes utilities for selecting specific animations or picking a random configuration from the available library of styles. The library covers terminal animation assets and visual feedback mechanism
This is a collection of animation assets and spinner sequences rather than a full CLI framework, serving as a visual building block you would integrate into a larger tool to provide progress feedback.
Halo is a Python library for rendering animated loading indicators and task completion symbols within terminal and notebook environments. It serves as a utility for providing visual feedback in command-line interfaces to signal that background processes are active. The library allows for the customization of loading spinner animations through the use of preset styles or custom character sequences and rotation intervals. It includes functionality to terminate active animations and replace them with specific status symbols and messages to indicate success, failure, or warnings. The project cov
This is a Python library for terminal spinners and loading indicators, which serves as a useful building block for CLI development but does not provide the TypeScript framework or command-parsing capabilities required for your project.
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
This is a robust framework for building command-line applications, but it is built for the .NET ecosystem using C# rather than the TypeScript environment requested.
indicatif is a Rust library for rendering progress bars and loading spinners in command line applications. It provides terminal progress indicators that track task completion percentages and estimated time remaining. The project includes a multi-bar progress manager to coordinate several simultaneous indicators in a single terminal view and a terminal log synchronizer to prevent logging output from overlapping or distorting active bars. It features a spinner component for signaling active background processes when the total completion percentage is unknown. The library supports progress temp
This is a Rust library for rendering progress bars and spinners, which serves as a useful building block for CLI development but does not provide the TypeScript framework or command parsing capabilities requested.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| vadimdemedes/ink | 38.9K | TypeScript | MIT | |
| tj/commander.js | 28.3K | JavaScript | MIT | |
| yargs/yargs | 11.5K | JavaScript | MIT | |
| cacjs/cac | 2.9K | TypeScript | mit | |
| oclif/oclif | 9.5K | TypeScript | MIT | |
| enquirer/enquirer | 7.9K | JavaScript | MIT | |
| sindresorhus/meow | 3.7K | JavaScript | MIT | |
| tj/commander | 0 | — | — | — |
| sindresorhus/cli-spinners | 2.8K | JavaScript | mit | |
| manrajgrover/halo | 3.1K | Python | mit |