For a library for building Kotlin CLI applications, the first results are remkop/picocli (This framework provides robust argument parsing, subcommand support, and native image compatibility for JVM applications, making it a highly capable tool for building CLI applications in Kotlin despite its Java-centric annotation model), ajalt/clikt (Clikt is a comprehensive Kotlin library specifically designed for building command-line interfaces, offering robust support for argument parsing, subcommands, and a type-safe DSL that aligns perfectly with your requirements) and kotlin/kotlinx-cli (This is a lightweight, pure Kotlin library for argument parsing that provides the core functionality needed to build CLI applications, though it lacks some of the more advanced features like built-in interactive prompts or native binary compilation support). mojang/brigadier and httpie/httpie round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best kotlin cli frameworks”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
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 framework provides robust argument parsing, subcommand support, and native image compatibility for JVM applications, making it a highly capable tool for building CLI applications in Kotlin despite its Java-centric annotation model.
Clikt (pronounced "clicked") is a multiplatform Kotlin library that makes writing command line interfaces simple and intuitive. It's the "Command Line Interface for Kotlin".
Clikt is a comprehensive Kotlin library specifically designed for building command-line interfaces, offering robust support for argument parsing, subcommands, and a type-safe DSL that aligns perfectly with your requirements.
Pure Kotlin implementation of a generic command-line parser.
This is a lightweight, pure Kotlin library for argument parsing that provides the core functionality needed to build CLI applications, though it lacks some of the more advanced features like built-in interactive prompts or native binary compilation support.
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,
This library provides a robust command-tree and argument-parsing engine for Java, but it is not a Kotlin-specific framework and lacks native support for Kotlin DSLs or interactive prompts.
HTTPie is a command-line HTTP client designed for sending requests to web services and APIs. It functions as a terminal-based web client and JSON API interface, allowing users to interact with RESTful services and download remote files directly from the console. The tool simplifies the interaction with APIs through a custom syntax for argument parsing and automatic JSON payload serialization. It includes a request debugger to verify the structure of a request before transmission and uses ANSI-based formatting to display server responses with color and indentation for improved readability. Th
This is a standalone command-line HTTP client application written in Python, rather than a library or framework for developers to build their own Kotlin CLI applications.
Consola is a diagnostic logging utility and log output manager that provides a unified interface for Node.js and web browser environments. It functions as a scoped logging framework and a tool for capturing user text, confirmations, and selections through interactive console prompts. The project distinguishes itself through a system for creating specialized logger instances with inherited defaults and unique tags for contextual tracking. It also features a pluggable reporter interface that allows for the redirection of standard output to custom logging destinations and external reporters. Th
This is a TypeScript-based logging and interactive prompt utility for Node.js and web environments, which does not support the Kotlin language or provide the argument parsing and native compilation features required for building Kotlin CLI applications.
Navi is an interactive command-line cheatsheet tool and shell command manager. It provides a fuzzy command browser that allows users to search and execute stored command-line snippets, reducing the need to memorize complex flags and arguments. The tool distinguishes itself through a system for importing and synchronizing command collections from remote Git repositories and third-party providers. It features interactive variable prompts that allow users to fill placeholders in commands via manual keyboard entry or selectable lists, including support for variable dependency mapping where one se
This is a standalone terminal utility application written in Rust rather than a library or framework for developers to build their own Kotlin-based CLI tools.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| remkop/picocli | 5.4K | Java | Apache-2.0 | |
| ajalt/clikt | 0 | — | — | — |
| kotlin/kotlinx-cli |
| 949 |
| Kotlin |
| Apache-2.0 |
| mojang/brigadier | 3.7K | Java | MIT |
| httpie/httpie | 38.2K | Python | BSD-3-Clause |
| unjs/consola | 7.3K | TypeScript | NOASSERTION |
| denisidoro/navi | 17.2K | Rust | Apache-2.0 |