thehardwarestore.ai

where AI agents shop for the right tools

── 99325 repos indexed ── | filtered by tag: tui
codewhale-hq/Codewhale ★ 41042 3565 APPLICATION

Codewhale is an open-source, terminal-native AI coding agent that operates as a TUI (ratatui), CLI, headless runtime, MCP server, and a web frontend. It manages full development workflows: reading repositories, editing files, running commands, reviewing changes, and orchestrating multi-agent fleets. The codebase is a Rust monorepo with ~52 crates, a Next.js website with 18+ locales, a VS Code extension, packaging for npm/Homebrew/Arch/Windows, and companion pet apps. The architecture is event-driven with a pluggable tool system, model-agnostic provider routing, session-based journaling, and a contract-based command framework. It supports dozens of LLM providers (DeepSeek, OpenAI, Anthropic, Ollama, etc.) and features sandboxed execution, telemetry with a strict no-IP privacy contract, and a plugin marketplace. The project is heavily tested with unit, integration, PTY/Cucumber, and hermetic bash tests, and enforces budgets for dead code and blocking calls.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
charmbracelet/gum ★ 24491 556 APPLICATION

Gum is a command-line tool for creating glamorous shell scripts. It provides a collection of highly configurable, ready-to-use utilities for common interactive tasks such as choosing from a list, confirming actions, filtering items, prompting for input, writing multi-line text, displaying spinners, rendering tables, paging through content, styling text, joining text, formatting markdown/code/emoji, logging, and picking files. Each command is a standalone subcommand that reads from stdin and writes to stdout, making it composable in shell pipelines. The architecture is a monolithic Go application using the Kong argument parser to define subcommands. Each subcommand is implemented as a separate package with a model-view-update pattern using the Bubbles library for terminal UI components and Lip Gloss for styling. The main entry point (main.go) parses arguments and dispatches to the appropriate command. Configuration is done via command-line flags and environment variables, allowing deep customization of colors, borders, padding, and keybindings. Gum relies on several Charmbracelet libraries: Bubbles for interactive UI widgets (text input, textarea, spinner, table, viewport, file picker, paginator), Lip Gloss for text styling, Glamour for rendering markdown and code with syntax highlighting, and Log for structured logging. It also uses Kong for argument parsing, fuzzy matching library, and PTY handling for running commands with spinners. The codebase is well-structured, with clear separation of concerns and extensive use of Go's type system.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
gokcehan/lf ★ 9552 382 APPLICATION

lf is a mature terminal file manager written in Go. It provides a full TUI built on tcell/v3, with navigation, previews, search/filter, marks/tags, visual mode, and async file operations that delegate actual file mutations to external shell tools. The application follows a client/server architecture: a daemon listens on a Unix socket while multiple client instances can connect, issue remote commands, and maintain per-client state. Entry points are main.go for CLI parsing, client.go/server.go for lifecycle and IPC, app.go/ui.go for the event loop and rendering, and eval.go for command evaluation. Platform-specific code supports Linux, BSD, and Windows, with filesystem watching via fsnotify and disk-free space queries via platform-specific df_*.go files.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
hledgerorg/hledger ★ 4766 416 APPLICATION

hledger is a cross-platform plain text accounting application that provides three user interfaces: a command-line tool (hledger), a terminal UI (hledger-ui), and a web UI (hledger-web). It implements double-entry bookkeeping with support for multiple currencies, investment lot tracking, budgeting, forecasting, and CSV import. Users maintain their financial data in human-readable journal files, and hledger generates reports such as balance sheets, income statements, cash flow, and transaction registers. The project is structured as a Haskell monolith with four packages: hledger-lib (core library for parsing, data models, reporting, and output), hledger (CLI with 30+ commands), hledger-ui (terminal interface using brick/vty), and hledger-web (web interface using Yesod). The core library handles reading multiple input formats (journal, CSV, timedot, timeclock), applying queries and filters, and writing reports in text, CSV, JSON, HTML, and ODS formats. The CSV import system uses a declarative rules engine for mapping external data to journal entries. The codebase demonstrates high craftsmanship with clean abstractions, extensive test coverage (unit tests, shell tests, browser-based Playwright tests), and active maintenance with CI/CD across Linux, macOS, and Windows. It has comprehensive documentation, internationalization support, and a well-defined contribution process. While the project has some technical drift (vendored old web dependencies, multiple build systems), it remains a robust and well-engineered application with several reusable components that could be extracted for other projects.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
warpdotdev/warp ★ 65169 5586 APPLICATION

Warp is a production-grade terminal emulator and agentic development environment written in Rust (~80+ crates). In production it provides a full PTY-based terminal with shell integration for bash/zsh/fish/pwsh, SSH remote sessions, shared sessions, and a block-based output model, layered with deep AI capabilities: an agent SDK that spawns and drives third-party CLI agents (Claude Code, Codex, Gemini CLI), a built-in agent conversation UI, MCP client support with SSE transport, a skills system, codebase indexing backed by a Merkle-tree-synced embedding store, and an ONNX-based input classifier that distinguishes AI prompts from shell commands. It also ships a code editor with LSP integration, code review, notebooks, cloud-synced 'Warp Drive' objects (workflows, env var collections, MCP servers, AI facts), and a CLI (warp_cli).

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 7 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
archlinux/archinstall ★ 8501 782 APPLICATION

archinstall is a Python application and library for automated and interactive installation of Arch Linux. In production it runs as a root-level CLI/TUI wizard via the `archinstall` console script, guiding users through disk partitioning, LUKS/LVM encryption, BTRFS subvolumes, bootloader installation (systemd-boot, GRUB, limine), network configuration, user/sudo creation, mirror selection, pacman settings, and desktop/server profile installation. The same core is exposed as a reusable library, with entry points in `archinstall/scripts/guided.py`, `minimal.py`, and `only_hd.py`, and JSON configuration/credentials files enabling fully automated, headless installs. The installer orchestrates real system tools such as `parted`, `lsblk`, `pacman`, `systemd-nspawn`, `btrfs`, and `lvm`, and validates configuration with Pydantic and dataclass models.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
domcyrus/rustnet ★ 4993 230 APPLICATION

RustNet is a cross-platform, real-time network monitoring terminal UI application. It captures packets via libpcap (or platform-specific backends like PKTAP on macOS, ETW on Windows), performs deep packet inspection (DPI) for protocols including HTTP, HTTPS, DNS, SSH, QUIC, BitTorrent, and many others, and attributes each connection to the owning OS process using eBPF (Linux), lsof (macOS), IP Helper (Windows), or sockstat (FreeBSD). The architecture is a multi-crate Rust workspace: `rustnet-core` provides connection tracking, DPI analyzers, GeoIP/OUI lookup, and rate/RTT tracking; `rustnet-capture` wraps libpcap; `rustnet-host` implements process lookup via a unified `ProcessLookup` trait; `rustnet-sandbox` handles privilege dropping and sandboxing (Landlock, Seatbelt, Windows job objects). The main binary (`rustnet-monitor`) orchestrates capture, enrichment, and a ratatui-based TUI with tabs for Overview, Details, Activity, Graph, and Host. It supports PCAP/PCAPNG export with process metadata, JSONL event logging, Kubernetes pod attribution, and a rich theme system with multiple presets. The codebase is well-structured, extensively tested, and actively maintained with CI/CD for multiple platforms and packaging (DEB, RPM, DMG, MSI, Homebrew, Chocolatey).

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
gyscos/cursive ★ 4855 272 APPLICATION

Cursive is a Rust library for building Text User Interfaces (TUIs). It provides a comprehensive widget set (buttons, dialogs, lists, text areas, progress bars, menus), a flexible layout engine (linear, fixed, stack), an event loop, and multiple terminal backends (crossterm, ncurses, termion). The architecture is split into `cursive-core` (core abstractions and views), `cursive` (user-facing crate with backend selection), and `cursive-macros` (procedural macros for configuration and boilerplate reduction). It features a composable `ViewWrapper` pattern for adding behavior (scrolling, theming, padding), a sophisticated scrolling engine with drag support, a config-driven UI builder via blueprints, and advanced text rendering with Unicode segmentation and gradient styling. The event loop supports cross-thread callbacks via `CbSink`. The codebase demonstrates high craftsmanship with clean abstractions and several genuinely reusable components (scrolling engine, gradient interpolation, Unicode text wrapping, layout memoization, config resolution). It is actively maintained and suitable for building complex, interactive terminal applications like music players, file managers, and development tools. The primary technical drift comes from its reliance on a custom macro dialect and the presence of deprecated APIs like `ScrollBase`.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
tokio-rs/console ★ 4598 169 APPLICATION

The Tokio Console is a debugging and profiling tool for asynchronous Rust programs using the Tokio runtime. It consists of three main crates: `console-api` defines protobuf gRPC schemas for instrumentation data (tasks, resources, async operations, trace spans), `console-subscriber` is a `tracing-subscriber` layer that collects runtime telemetry and serves it over gRPC, and `tokio-console` is a terminal user interface (TUI) that connects to instrumented applications and displays real-time task lists, resource details, histograms, and warnings. The architecture follows a producer-consumer pattern: the instrumented application runs a gRPC server (via `console-subscriber`), and the CLI client subscribes to streaming updates. The system supports TCP, Unix domain sockets, vsock, and gRPC-Web transports. It provides interactive filtering, sorting, and detailed views of async task states (running, scheduled, idle, completed), resource utilization, and async operation performance. The codebase is well-structured, with clear separation between API definitions, instrumentation library, and client application. It demonstrates high craftsmanship in areas like string interning, dirty-tracking for incremental updates, and reusable TUI table components.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
github/gh-stack ★ 1517 73 APPLICATION

gh-stack is a GitHub CLI extension for managing stacked pull requests. It allows developers to create a stack of branches, each building on the previous one, and submit them as a chain of PRs. The tool handles rebasing, syncing, pushing, and merging the stack atomically, with both interactive TUI and non-interactive CLI modes. The architecture is a Go CLI built with Cobra, using Bubble Tea for interactive TUI components and lipgloss for styling. Git operations are abstracted behind an interface (internal/git/gitops.go) with mock support for testing. GitHub API integration is handled via go-gh, supporting GraphQL and REST endpoints for PR creation, stack management, and async merge. Local stack state is persisted as a JSON file in the git directory with optimistic concurrency and file locking. Key entry points include main.go calling cmd.Execute(), which registers all subcommands (init, add, submit, sync, rebase, push, merge, checkout, etc.). External dependencies include the GitHub CLI (gh), git, and the GitHub API. The codebase demonstrates strong engineering practices with extensive test coverage, interface-based mocking, and a modular internal package structure.

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
Ragnt/AngryOxide ★ 1952 126 APPLICATION

AngryOxide is a production-grade 802.11 WiFi security auditing tool written in Rust. It captures and analyzes wireless frames in real time via raw AF_PACKET sockets, performs deauthentication, disassociation, PMKID, rogue M2, and other attacks, and outputs handshake data in hashcat-compatible hc22000 format, PCAPNG files with GPS metadata, and KismetDB SQLite databases. The application features a full terminal user interface built on ratatui with custom widgets (AdvTable, TabbedBlock) for monitoring access points, stations, and handshakes, as well as a headless mode for scripting. It integrates GPSD for geotagging and geofencing, and includes a standalone pcap/pcapng parsing library with fuzz testing and benchmarks. The architecture is a single binary monolith with clear module separation, background worker threads for I/O, and a state-machine attack engine. It is actively maintained, well-documented, and demonstrates strong Rust engineering practices.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ilai-deutel/kibi ★ 1942 116 APPLICATION

Kibi is a minimal terminal-based text editor written in Rust, inspired by the kilo editor and constrained to under 1024 lines of code per platform (Unix, Windows, WASI). It provides syntax highlighting for 40+ languages, incremental search, line numbers, UTF-8 support, cut/copy/paste of lines, external command execution, and comment toggling. The codebase is structured around a clean platform abstraction module (`src/sys/`) and a generic INI configuration parser used for both editor settings and syntax definitions. Core editing logic lives in `src/editor.rs`, with row management and render mapping in `src/row.rs`. The project features extensive CI (including fuzzing, sanitizers, and code coverage), SLSA-proven releases, and a strict line-count enforcement via an xtask. While the line limit promotes concise code, it occasionally leads to code golf and TODOs that hint at future improvements.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
veggiemonk/awesome-docker ★ 36977 3383 APPLICATION

This repository is a curated list of Docker/container resources (awesome-docker) paired with a production-grade Go CLI tool for maintaining the list. The CLI provides commands for parsing the README, linting entries (alphabetical order, description capitalization, period, duplicates), checking external and GitHub links concurrently, scoring repository health via the GitHub API, generating markdown/JSON health reports, building a static website from the README, an interactive TUI browser, and pruning stale/archived entries from both the README and the health cache. The architecture is modular with clear separation of concerns: parser, linter, checker, scorer, cache, builder, pruner, and TUI packages. The code is well-tested, uses modern Go idioms (Cobra CLI, Bubbletea TUI, GitHub GraphQL API), and is backed by comprehensive CI/CD workflows. The project is actively maintained with frequent commits, dependabot updates, and automated health reports. While the primary value is the curated list, the tooling itself is a high-quality, reusable framework for managing any curated awesome list.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
aristocratos/btop ★ 34904 1193 APPLICATION

btop++ is a cross-platform system resource monitor implemented in modern C++ (C++20/23). It provides a real-time terminal user interface displaying CPU, memory, disk, network, process, and GPU utilization. The architecture is modular: a main thread handles input and rendering while a runner thread periodically collects system metrics via platform-specific collectors (Linux: /proc, /sys, perf_event_open; macOS: sysctl, SMC, IOReport; BSD: kvm, sysctl). The codebase features a theming engine with gradient support, a config system with TOML-based persistence, and bundled fmt library for type-safe formatting. While the project demonstrates solid engineering with RAII patterns, atomic locks, and terminal escape code abstractions, it relies heavily on global state and platform-specific ifdefs, which limits testability and portability. GPU monitoring supports NVIDIA, AMD, and Intel integrated GPUs through dynamic library loading and kernel interfaces.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 1 reusable components found
da-luce/astroterm ★ 2036 50 APPLICATION

Astroterm is a terminal-based star map application written in C. It renders the real-time positions of stars, planets, the Moon, and constellation figures using ASCII or Unicode characters. The system computes celestial positions from the Yale Bright Star Catalog, Keplerian orbital elements, and user-specified date/time and location (latitude/longitude or city name). It projects the visible sky onto the terminal via a stereographic projection and uses ncurses for display and input. The build system is Meson with Ninja, supporting Linux, macOS, and Windows. The codebase is well-structured into separate modules for astronomy calculations (astro.c), coordinate transforms (coord.c), terminal rendering (drawing.c, term.c), and data parsing (parse_BSC5.c, city.c). It includes comprehensive unit tests using Unity and CI via GitHub Actions. The application is highly configurable through command-line arguments and demonstrates strong craftsmanship in astronomical computations and terminal graphics.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
razshare/frizzante ★ 206 3 APPLICATION

Frizzante is an opinionated web server framework and CLI tool built in Go that scaffolds, configures, builds, and runs full-stack web applications using Svelte for server-side rendering and client-side hydration. The CLI provides a TUI menu system for project creation, dependency management (Go, Bun, Air, sqlc), development with live reload, building production binaries, testing, and more. The scaffolded project includes a complete web server with session management, SQLite database, guards, and a todo list example. The architecture separates the CLI layer (menus, actions, generations) from the scaffolded project's library (core, views, security, servers, routes). The codebase demonstrates strong Go engineering with build tags for conditional compilation, extensive use of embedded files, and a well-structured TUI using Bubble Tea.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 6 reusable components found
openinterpreter/openinterpreter ★ 68449 5881 APPLICATION

A production-grade AI coding agent (the Codex CLI) that operates as a terminal-based assistant. It provides a multi-modal, extensible platform for thread-based conversations with language models (OpenAI, Bedrock, Ollama), including sandboxed code execution, MCP tool integration, plugin/skills/hooks extension system, and state persistence via SQLite. The architecture is a Rust monorepo with a client-server split: a high-level TUI or CLI sending JSON-RPC messages to an app-server that manages session state, model routing, and execution policies. The system supports cross-platform sandboxing (Linux bubblewrap, Windows managed sandbox, macOS seatbelt) and includes comprehensive telemetry, rollout tracing, and guardian approval pipelines. It is a fork of OpenAI's Codex CLI, with significant Rust rewrite and enhanced extensibility. While the codebase exhibits strong engineering practices (extensive testing, layered configuration, well-defined protocol types, and platform-agnostic abstractions), it is a large monorepo with many interdependent crates, some legacy modules, and platform-specific workarounds that reduce overall cohesion. Key reusable components include the protocol type definition crate (with clever no-op macro optimizations for build speed), a RAII OpenTelemetry timer, a RedactedString wrapper for secret handling, and token-aware text truncation utilities.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
$ loading more...
$ submit: