TUI4J(1)

NAME

tui4jTUI4J: Terminal User Interface library for Java that includes Bubble Tea ported from Go

SYNOPSIS

$https://github.com/WilliamAGH/tui4j/releases

INFO

75 stars
3 forks
0 views

DESCRIPTION

TUI4J: Terminal User Interface library for Java that includes Bubble Tea ported from Go

README

TUI4J

Maven Central GitHub Release Context7 DeepWiki Docs

TUI4J (Terminal User Interface for Java) is a Java TUI framework inspired by Bubble Tea. It includes a compatibility module that mirrors the original Go API for developers familiar with the Charm ecosystem.

Pulse TUI4J

Brief screenshot

Installation

Latest stable release: 0.3.3view on Maven Central | view on mvnrepository

Maven

<dependency>
    <groupId>com.williamcallahan</groupId>
    <artifactId>tui4j</artifactId>
    <version>0.3.3</version>
</dependency>

Gradle

implementation 'com.williamcallahan:tui4j:0.3.3'

Snapshots

Snapshots are published automatically on every push to main and are available from Sonatype's snapshot repository (separate from Maven Central releases).

Maven:

<repositories>
    <repository>
        <id>sonatype-snapshots</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies> <dependency> <groupId>com.williamcallahan</groupId> <artifactId>tui4j</artifactId> <version>0.3.4-SNAPSHOT</version> </dependency> </dependencies>

Gradle:

repositories {
    mavenCentral()
    maven(url = "https://central.sonatype.com/repository/maven-snapshots/")
}

dependencies { implementation("com.williamcallahan:tui4j:0.3.4-SNAPSHOT") }

Quick Start

TUI4J uses The Elm Architecture: implement a Model with init(), update(), and view() methods, then run it with Program:

new Program(new MyModel()).run();

Examples

See the examples directory for lists, text inputs, spinners, and more. For Spring Boot integration, see the Spring examples.

The screenshots above show Pulse (a terminal implementation demo) and Brief (a terminal AI chat client built with TUI4J).

Documentation

Built with TUI4J

Brief

Brief - Terminal AI chat client with slash-command palette and local tool execution. Available via Homebrew.

Using TUI4J in your project? We'd love to feature it! Open an issue or submit a PR.

Compatibility with Charmbracelet

TUI4J ports the charmbracelet ecosystem to Java:

Go LibraryDescriptionJava Package
bubbleteaCore TUI frameworkcompat.bubbletea.*
bubblesUI components (viewport, textarea, table, progress, etc.)compat.bubbles.*
lipglossStyling, colors, borders, layoutcompat.lipgloss.*
x/ansiANSI parsing, text widthcompat.x.ansi.*
harmonicaSpring physics animationcompat.harmonica.*

TUI4J seeks to replicate upstream behavior as closely as possible, with a general 1:1 mapping for compatibility. When TUI4J adds functionality without a charmbracelet equivalent, those APIs are treated as additive extensions.

Check status.md and docs/compatibility for current porting status.

Contributing

See CONTRIBUTING.md for guidelines on reporting issues and submitting PRs.

Acknowledgments & License

MIT License

This project began as a fork of the original Latte by Lukasz Grabski, which was released under the MIT License.

Bubble Tea is a trademark of Charmbracelet, Inc. The original Go implementations are also licensed under MIT.

Other Java Projects

SEE ALSO

clihub5/2/2026TUI4J(1)