thehardwarestore.ai

where AI agents shop for the right tools

── 98934 repos indexed ── | filtered by tag: bubbletea
charmbracelet/glow ★ 27654 786 APPLICATION

Glow is a terminal-based markdown reader written in Go. It provides both a CLI mode for rendering markdown files directly to the terminal and a TUI mode for browsing and reading local markdown files with a pager interface. The application supports reading from files, stdin, HTTP URLs, and GitHub/GitLab repositories via their APIs. It features syntax highlighting via Glamour, word wrapping, custom styles, and a configuration file. The architecture is modular: the main entry point parses commands and arguments, delegates to either the CLI renderer or the TUI program, which is built on the Bubble Tea framework. The UI is split into a stash view (file listing) and a pager view (document rendering), with models and views separated. A notable feature is support for Kitty terminal's text sizing protocol (OSC 66) to scale heading sizes, implemented in a self-contained utility module. The codebase demonstrates strong Go practices, clean abstractions, and thorough testing.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
charmbracelet/bubbles ★ 8990 474 APPLICATION

Bubbles is a Go library providing a collection of reusable, well-crafted UI components (widgets) for building terminal applications with Bubble Tea. Each component is a self-contained package implementing the Bubble Tea Model interface, handling user input via tea.Msg, updating internal state, and rendering views using Lip Gloss for styling. The library includes components such as text input, text area, progress bar, viewport, list, table, tree, spinner, paginator, help view, timer, stopwatch, file picker, and cursor management. These components are designed to be composable and customizable, with extensive keybinding support and style configuration. The architecture follows a modular pattern where each component lives in its own package with a clear public API (New, Update, View, and various setters/getters). Internal utilities like rune sanitization and memoization are kept in internal packages, ensuring a clean public surface. The code demonstrates high craftsmanship with idiomatic Go, comprehensive test coverage (including golden file tests for rendering), and thoughtful design decisions such as spring-based animation for the progress bar, soft-wrapping and gutter support in the viewport, and virtual cursor management for text inputs. External dependencies are minimal and well-chosen: Bubble Tea for the application framework, Lip Gloss for styling, and a few specialized libraries for clipboard access, fuzzy matching, and rune width calculation. The repository is actively maintained by Charmbracelet, with regular releases, CI/CD pipelines, and a clear upgrade guide for v2 migration. It is widely used in production applications like Glow and Charm.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
erikgeiser/promptkit ★ 308 21 APPLICATION

Promptkit is a Go library for building interactive command-line prompts. It provides customizable confirmation, selection (single and multi-select), text input, and text area prompts with sensible defaults, re-mappable key bindings, and template-based styling. Built on top of bubbletea, it offers a modular architecture where each prompt type is implemented as a separate package with clear separation of concerns. The library handles user input through keypress events, renders views using templates, and supports features like filtering, pagination, auto-completion, and input validation.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
tw93/Mole ★ 69190 2450 APPLICATION

Mole is a macOS system maintenance CLI tool that provides a unified interface for cleaning caches, uninstalling applications, analyzing disk usage, monitoring system health, and optimizing performance. It combines two Go binaries (cmd/analyze for disk exploration with a Bubble Tea TUI, cmd/status for real-time system metrics) with an extensive shell script library for orchestration and system-level operations. The `mo` command dispatches to subcommands like `clean`, `uninstall`, `analyze`, `status`, `optimize`, `purge`, and `installer`. The architecture is hybrid: Go handles performance-critical tasks (concurrent directory scanning with semaphore-based concurrency, hardlink deduplication, gob-based caching, and interactive TUI rendering) while Bash scripts manage cleanup logic, safety guards (path identity snapshots, whitelists, process guards), Homebrew integration, and sudo session management. Key data flows include disk scanning with progress events and cache invalidation, system metrics collection via gopsutil and macOS commands (system_profiler, ioreg, pmset), and cleanup operations with dry-run previews and bounded timeouts. External dependencies include Homebrew (for cask detection and uninstall), macOS system commands (tmutil, plutil, diskutil, osascript), and Go modules (charmbracelet/bubbletea, lipgloss, gopsutil). The codebase emphasizes safety with fail-closed policies, identity re-verification before deletion, and extensive timeout handling. It supports both interactive TUI and non-interactive JSON output for scripting.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
floatpane/matcha ★ 1100 83 APPLICATION

Matcha is a full-featured terminal email client (TUI) written in Go, using the Bubble Tea framework. It supports multiple email protocols (IMAP, JMAP, POP3, Maildir) and provides a rich set of features including PGP/SMIME encryption, OAuth2 authentication, a Lua plugin system with 35+ community plugins, background daemon for push notifications and sync, spellcheck, i18n with 11 languages, and a configurable theme system. The architecture is modular: a backend provider interface abstracts protocol implementations, a daemon runs as a background process communicating via JSON-RPC over Unix sockets, and the TUI is built with composable Bubble Tea models. The codebase demonstrates strong engineering practices with extensive test coverage, CI/CD pipelines, cross-platform packaging (Homebrew, Snap, Flatpak, Nix, WinGet), and a well-designed plugin API. It is not a data research project; it is a production-grade application.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
erans/hyprmon ★ 518 11 APPLICATION

HyprMon is a TUI (Terminal User Interface) tool for configuring monitors on Arch Linux running Wayland with Hyprland. It provides a visual 'desk map' where users can arrange monitors using keyboard and mouse controls, with real-time application to Hyprland. The application reads monitor configuration via hyprctl, allows live adjustments, and persists configurations to Hyprland's config files. It features profile management, advanced display settings (HDR, VRR, color depth), monitor mirroring with circular dependency prevention, and automatic workspace migration when monitors are added/removed. Built with Go using the Bubble Tea framework for the TUI and Lip Gloss for styling.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Melkeydev/go-blueprint ★ 8969 492 APPLICATION

Go Blueprint is a CLI tool for scaffolding Go project structures with optional integration of popular web frameworks (Chi, Gin, Fiber, Echo, Gorilla, HttpRouter, standard library), database drivers (MySQL, Postgres, SQLite, Mongo, Redis, Scylla), and advanced features (HTMX/Templ, Tailwind CSS, React/Vite, WebSocket, Docker, CI/CD workflows). The tool operates both interactively (via a TUI built with Bubble Tea) and non-interactively via command-line flags. It generates a complete project skeleton including `go.mod`, `Makefile`, `.air.toml`, `.env`, server code, routes, tests, and Docker configuration. The architecture is a standard CLI application using Cobra, with a clear separation of concerns: flags parsing, UI components, template generation, and project file creation. The codebase is well-structured, modular, and includes comprehensive CI/CD pipelines (linting, integration tests via Testcontainers, release automation). It is a practical, production-ready tool for Go developers.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
aviator-co/av ★ 509 48 APPLICATION

The `av` CLI tool manages stacked Git branches and their associated GitHub pull requests in an automated workflow. It allows developers to create dependent branches, automatically rebase child branches when parents change, synchronize local state with GitHub (fetches, pushes, prunes merged branches), and interactively reorder or squash commits across a stack. The system uses a local JSON file database (`av.db`) to persist branch metadata and PR associations, a GraphQL client to communicate with GitHub, and a Bubbletea-based terminal UI for interactive prompts and progress spinners. It consists of Cobra command definitions, a git operations wrapper (mix of `go-git` and direct exec), and a state-machine sequencer for multi-step rebase operations with conflict handling. The architecture is modular with clear separation between git operations, GitHub API, state management, and user interface, making it a solid example of a domain-specific developer tool.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: