Skip to content

OolongStreaming-first terminal UI for Go

Streams can be long. The live interface stays bounded.

Oolong wordmark with flowing terminal chunks

Language: English | 简体中文

Learn by building ​

Follow the path in order when adopting Oolong. Each step produces a runnable, tested slice and adds one layer without replacing the previous one.

LevelBuildOutcome
BeginnerYour first interfaceRun a core-only full-screen component
BeginnerA themeable pickerCompose headless behavior, kit appearance, layout, and input
IntermediateMarkdown, code, and mathematicsUse optional renderers independently and together
IntermediateBounded streaming outputMove ordered background bytes into an inline interface
AdvancedA bounded agent interfaceJoin streaming text, domain events, review, and scrollback ownership

Browse the example catalog when you prefer to learn from complete commands. Every example includes an in-process test.

Choose the smallest useful layer ​

Install only the modules your application imports:

sh
go get github.com/Tangerg/oolong/core@latest
go get github.com/Tangerg/oolong/components@latest

Start with core for the runtime, terminal, grid, input, text, and layout. Add components for reusable headless behavior and the default theme. Optional Markdown, highlighting, LaTeX, SSH, and PTY testing remain separate modules.

Choose modules for your interface lists the dependency and release rules.

Validate and understand the system ​

Package contracts render on pkg.go.dev. The GitHub repository contains source, examples, changelog, and contribution policy.

Released under the Apache 2.0 License.