A modern CLI framework for D

Get Started with Dub

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!

Modular, reusuable components

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 the full power of JCLI, allowing you 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 to practice marketing-speak and the like >:d

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 available 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.