Streamed output is the primary lifetime
Finished content becomes terminal scrollback while the interactive tail stays small.
Streams can be long. The live interface stays bounded.

Language: English | 简体中文
Follow the path in order when adopting Oolong. Each step produces a runnable, tested slice and adds one layer without replacing the previous one.
| Level | Build | Outcome |
|---|---|---|
| Beginner | Your first interface | Run a core-only full-screen component |
| Beginner | A themeable picker | Compose headless behavior, kit appearance, layout, and input |
| Intermediate | Markdown, code, and mathematics | Use optional renderers independently and together |
| Intermediate | Bounded streaming output | Move ordered background bytes into an inline interface |
| Advanced | A bounded agent interface | Join 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.
Install only the modules your application imports:
go get github.com/Tangerg/oolong/core@latest
go get github.com/Tangerg/oolong/components@latestStart 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.
Package contracts render on pkg.go.dev. The GitHub repository contains source, examples, changelog, and contribution policy.