A modern CLI framework for D

Easy yet powerful

It takes minutes to get started with JCLI, while also providing more advanced features such as dependency injection, string binding, and more!

A framework AND a library

JCLI can be used as either a framework or the basis of your own framework due to its independent, reusable components.

The power of D

Powerful metaprogramming capabilities alongside a featureful yet concise language allows for an easy and developer-friendly experience.
JCLI Colours

Colourful, toggleable output

Whether it's to talk to the user; show verbose logging, or even to display debug-only information, the UserIO component has your back!

Perhaps you want to mess with colours yourself? Well, the AnsiText component allows fluent construction of ANSI-escaped coloured strings, including automatic Windows support.

Use JCLI's core, or roll your own

Leverage JCLI's default core with the CommandLineInterface class to make use of all of JCLI's components to easily create or prototype your next CLI tool.

CommandLineInterface not doing it for you? JCLI's components are designed so that they can be used independentally from the default core, allowing you build your very own core on top of an existing, battle-tested* toolset.

* I'm pretty sure I'm the only one who uses this library right now, don't take that statement too literally. The API isn't even stable yet. This page was mostly made for fun >:d
cog

Become one with the D

Like it long and hard? I don't either, which is why you should drop your other languages and move to D!

With one of the most advanced metaprogramming capabilities for a compiled language; clean and easy to read syntax; and the potential for jokes about phallic objects, D allows you to write productive python-like code while leveraging the perfomance benefits of a natively compiled language.

It's not about the size of your codebase, its how you use it.