Quarkus and CLI Applications

Quarkus Insights Ep. 260

Quarkus and CLI Applications

  • 🎙️ StĂĄle Pedersen & Max Andersen

  • Why Command line?

  • Aesh, Picocli differences & benefits

  • …​and a bit of TamboUI too!

Monday, Sept 21st · 9am EST

Why care about the terminal?

  • It’s the oldest UI we have — and it’s not going away

  • Scriptable, composable, remote-friendly, fast

  • And now: the place AI agents live

The words we throw around

TermIn one line

Terminal

the window — draws text, sends keys

Shell

Usually the first program inside

REPL

stays open, interactive

CLI

args in → result out → exits

TUI

full-screen, panels, redraws

…​in the wild

TermYou already use

Terminal

iTerm2, Ghostty, Windows Terminal, Warp, kitty

Shell

bash, zsh, fish, nushell, PowerShell

REPL

python, jshell, node, irb, psql

CLI

quarkus, git, kubectl, curl, jbang

TUI

quarkus dev, btop, lazygit, k9s, vim

You flip between all of these every day.

Terminal vs Shell

  • Terminal = the glass. Renders characters, forwards input.

  • Shell = the brain. Parses what you type, runs programs.

  • You can swap either independently — different terminal, same shell.

The terminal is the screen. The shell is the app.

CLI vs REPL

# CLI: run, print, exit
$ ls -la
$ git commit -m "..."

# REPL: stays alive, keeps state
$ python
>>> x = 40
>>> x + 2
42

CLI = fire and forget. REPL = a conversation.

TUI: the full-screen text app

  • Takes over the whole terminal — panels, menus, live updates

  • Keyboard-driven, mouse optional

  • quarkus dev, vim, lazygit, k9s…​ and TamboUI

A GUI’s ergonomics, in a terminal’s reach.

The Java landscape

cli radar before

…​and where Aesh is heading

cli radar after

…​and Quarkus fills the whole picture

cli radar quarkus

Over to Ståle 👉

Aesh & Picocli — the details + a demo

Back to TUIs

  • CLIs and REPLs are great — but some tasks want a screen

  • Dashboards, pickers, live logs, interactive review

  • That’s where TUIs earn their keep

TamboUI

  • A TUI toolkit for the JVM / Quarkus world

  • Components, layout, events — without leaving the terminal

  • Reactive redraws, keyboard-first

  • Pairs naturally with Quarkus command mode

Demo: what a modern JVM TUI feels like

AI agents love CLIs

  • Agents don’t click buttons — they run commands

  • Text in, text out = the perfect tool interface

  • A good CLI is instantly an AI-usable tool

  • Composable tools > one giant app

If it works in a pipe, it works for an agent.

Quarkus makes it extra smooth

  • Quarkus command mode — CLIs as first-class apps

  • GraalVM native image — instant startup, tiny footprint

  • No JVM warmup tax on every invocation

  • Perfect for agent tools + short-lived CLI runs

Native CLIs: fast enough that an agent can call them all day.

Where things stand today

  • Aesh — in Quarkus 3+, and key in Quarkus 4

  • TamboUI — possible today: some warts, but definitely usable

  • Dedicated TamboUI extension on its way

Wrap up

  • Terminal, shell, CLI, REPL, TUI — love or hate them - they are here!

  • Aesh & Picocli for the CLI itself; TamboUI when you need a screen

  • Quarkus + GraalVM = smooth, fast, AI-friendly tools

It’s all just text — and text is where the agents are.

Thanks! 🙏

@maxandersen · Ståle Pedersen
Quarkus Insights Ep. 260