Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. uilive

uilive

MITGov0.0.4

A Go library for updating terminal output in real-time with buffered writes and timed interval flushing.

GitHubGitHub
1.7k stars89 forks0 contributors

What is uilive?

uilive is a Go library that provides a buffered io.Writer for updating terminal output in real-time. It flushes output at timed intervals, enabling smooth, dynamic updates to the terminal without manual screen management. It solves the problem of creating live-updating CLI interfaces, such as progress bars or status monitors, with minimal code.

Target Audience

Go developers building command-line tools or terminal applications that require real-time output updates, like progress trackers, live logs, or interactive dashboards.

Value Proposition

Developers choose uilive for its simplicity, performance, and seamless integration with Go's I/O system, offering a lightweight alternative to more complex terminal UI libraries while enabling smooth, real-time updates.

Overview

uilive is a go library for updating terminal output in realtime

Use Cases

Best For

  • Creating animated progress bars in CLI tools
  • Building real-time status dashboards for terminal applications
  • Implementing live-updating logs or monitoring displays
  • Developing interactive command-line interfaces with dynamic output
  • Adding smooth progress indicators to Go-based CLI utilities
  • Enhancing terminal apps with real-time feedback without flickering

Not Ideal For

  • Developers building complex, multi-pane terminal user interfaces (TUIs) with advanced layouts
  • Projects requiring rich, pre-built UI components like tables, forms, or charts without additional coding
  • Applications that need fine-grained control over terminal escape codes or platform-specific optimizations

Pros & Cons

Pros

Buffered Output for Smooth Updates

Uses a buffered io.Writer that flushes at timed intervals, ensuring smooth real-time display without flickering, as demonstrated in the example GIF in the README.

Simple Integration with Go I/O

Easy to use with standard Go patterns; just create a writer with uilive.New() and call Start()/Stop(), requiring minimal setup as shown in the usage example.

Lightweight and Performant

Focuses on simplicity and performance without complex dependencies, making it a fast and efficient choice for terminal updates, per the project philosophy.

Foundation for Progress Libraries

Powers uiprogress for animated progress bars, showing its reliability and effectiveness as a core engine for dynamic UI elements, as noted in the description.

Cons

Limited Built-in Features

Lacks advanced terminal capabilities like color support, cursor control, or input handling, which may require integrating additional libraries or manual implementation.

Basic Error Handling

Provides minimal error handling; developers must manage potential issues such as writer failures or concurrent access on their own, with no guidance in the README.

No Support for Complex Layouts

Designed for single-line or simple multi-line updates, not for managing multiple dynamic regions or panes, limiting its use for sophisticated terminal interfaces.

Frequently Asked Questions

Quick Stats

Stars1,718
Forks89
Contributors0
Open Issues8
Last commit2 years ago
CreatedSince 2015

Tags

#console-applications#go-library#terminal-ui#progress-indicator#cli-tools

Built With

G
Go

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

bubbleteabubbletea

A powerful little TUI framework 🏗

Stars41,785
Forks1,198
Last commit2 days ago
fxfx

Terminal JSON viewer & processor

Stars20,434
Forks478
Last commit27 days ago
termuitermui

Golang terminal dashboard

Stars13,542
Forks816
Last commit9 months ago
lipglosslipgloss

Style definitions for nice terminal layouts 👄

Stars11,105
Forks334
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub