thehardwarestore.ai

where AI agents shop for the right tools

── 99361 repos indexed ── | filtered by tag: terminal-ui
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
schollz/progressbar ★ 4698 255 APPLICATION

This is a well-crafted Go library providing a thread-safe, highly customizable progress bar for terminal applications. It supports both determinate (known maximum) and indeterminate (spinner) modes, with features like elapsed time, predicted time remaining, byte throughput, iterations per second, and configurable themes (including ASCII, Unicode, and custom). The library is designed for ease of use with convenient constructors (Default, DefaultBytes) and a fully functional options pattern for deep customization. It is used as an io.Writer in download scenarios and includes a built-in HTTP server for external monitoring of progress state. The codebase is clean, well-tested, and follows Go best practices.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
km-clay/nixos-wizard ★ 504 10 APPLICATION

nixos-wizard is a terminal-based NixOS installer that provides a text-based UI for guided system installation. It follows a modular architecture with an event loop managing UI state, Page and ConfigWidget traits for UI components, and an Installer struct as central data store. The application guides users through configuration steps including disk partitioning, user creation, package selection, and system settings, then generates NixOS configuration files (configuration.nix and disko config) for installation. Key features include interactive disk partitioning powered by Disko, real-time package search with fuzzy matching, and immediate validation of generated configurations.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
jesseduffield/lazydocker ★ 52957 1689 APPLICATION

Lazydocker is a mature, well-structured terminal UI application for managing Docker and Docker Compose environments. Built in Go using a forked version of the gocui library, it provides a unified interface for viewing containers, services, images, volumes, and networks with real-time monitoring, log streaming, and interactive command execution. The architecture follows a clean separation between the command layer (Docker API interactions, OS command execution), presentation layer (display string formatting), and GUI layer (gocui-based terminal interface with panels and keybindings). The codebase demonstrates solid engineering practices with a generic, thread-safe FilteredList data structure that efficiently handles filtering and sorting without modifying underlying data. The task management system supports cancellable, concurrent operations with proper context propagation. The SSH tunneling implementation for remote Docker hosts is particularly well-crafted, using dependency injection for testability. The project maintains active development with recent commits, comprehensive CI/CD across multiple platforms, and support for 9 languages. Key architectural patterns include a panel-based UI composition where each side panel (containers, services, images, etc.) shares common infrastructure through generic types, a context-aware main panel that re-renders based on selected items, and a flexible template system for The configuration system supports extensive customization while maintaining sensible defaults. The codebase uses vendored dependencies for reproducible builds and includes proper error handling with user-friendly error messages.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 6 reusable components found
martanne/vis ★ 4711 281 APPLICATION

Vis is a modal text editor that combines vi-like editing with sam's structural regular expressions. It features multiple cursors, extensive Lua-based extensibility (including syntax highlighting lexers and plugins), and a terminal-based UI. The editor is written in C with a Lua API, producing statically linked binaries via Docker for portability. Key components include a reusable lexer framework for syntax highlighting, a dynamic buffer abstraction, an event-driven plugin system, and a modular build system. The project is actively maintained with ongoing lexer updates and documentation improvements.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
dungngminh/simutil ★ 1135 128 APPLICATION

SimUtil is a Dart-based terminal UI/CLI for managing iOS simulators and Xcode Derived Data. It wraps `xcrun simctl` to list, boot, shut down, install, launch, and interact with simulator devices, and adds conveniences like showing/cleaning Derived Data. The app is operated entirely from the terminal and stores user preferences in `~/.simutil/settings.yaml`, including a `plugins:` section for custom commands. Architecturally it separates terminal UI components (`lib/components`) from services (`lib/services`) such as `CommandExec` (a shell-command abstraction), `UserConfig` (YAML settings with first-run defaults and scalar merge), and Derived Data helpers. A `tool/generate_changelog.dart` code generator parses `CHANGELOG.md` and emits typed Dart data so the app can show post-update changelog dialogs. Tests cover the changelog generator and config file behavior, and CI runs build/install verification across platforms.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
rockorager/libvaxis ★ 1999 156 APPLICATION

libvaxis is a terminal user interface (TUI) library for Zig that provides both low-level terminal manipulation and a high-level declarative widget system (vxfw). The library does not rely on terminfo; instead it dynamically queries terminal capabilities via escape sequences, supporting modern features such as RGB color, kitty keyboard and graphics protocols, hyperlinks (OSC 8), bracketed paste, mouse shapes, system clipboard, notifications, synchronized output, and Unicode Core. The architecture comprises an event-driven loop (generic over event type) that reads from a platform-specific TTY abstraction, a state-machine parser for input sequences, double-buffered screen rendering with diff-based updates, and a widget tree with constraint-based layout, focus management, and event propagation (capture/target/bubble phases). Low-level components include the TTY abstraction (Posix, Windows, test stub), input parser, screen buffer, window sub-region handling, and image transmission via the kitty graphics protocol. The high-level vxfw framework offers composable widgets such as Button, TextInput, ListView, SplitView, Border, FlexRow/Column, ScrollView, Spinner, and more. Widgets receive draw context with min/max constraints and an arena allocator per frame, returning surfaces that may contain child surfaces. The library also includes an embedded terminal emulator widget (Terminal) that runs a child process in a PTY and renders its output as a virtual terminal. A stable C API is provided via `vaxis.h`, exposing parsing, screen manipulation, and runtime management without requiring Zig compilation. Cross-platform support covers macOS, Windows, Linux and BSD/Unix systems. The library is built with Zig 0.16.0 and depends on `zigimg` for image decoding and `uucode` for Unicode property data, both fetched as build dependencies.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
plutov/oq ★ 974 19 APPLICATION

oq is a terminal-based OpenAPI Specification viewer that allows users to visualize and navigate OpenAPI 3.0, 3.1, and 3.2 specifications in JSON or YAML format. The application reads OpenAPI specs from files or stdin, parses them using the libopenapi library, and presents the information in an interactive terminal UI with views for endpoints, components, and webhooks. Users can navigate using keyboard shortcuts, fold/unfold sections to see details, and cycle between different views. The architecture separates OpenAPI processing logic (in oas.go) from the terminal UI (built with bubbletea), demonstrating good separation of concerns.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 1 reusable components found
veeso/tui-realm ★ 1001 41 APPLICATION

tui-realm is a Rust library/framework for building terminal user interfaces (TUIs) using a component-based, event-driven architecture. It is not a standalone application but a reusable framework that wraps ratatui (formerly tui-rs) and provides an Application loop, Component/AppComponent traits, a Model/Update/View pattern, and a subscription system for routing events between components. The monorepo is organized as a Cargo workspace containing the core `tuirealm` crate, a `tuirealm_derive` procedural macro crate, a standard library of reusable components (`tui-realm-stdlib`: Input, Label, List, Table, etc.), and optional integration crates `tui-realm-textarea` and `tui-realm-treeview`. The framework is designed to reduce boilerplate by centralizing focus management, event routing, and state handling in the Application/View layer, while allowing developers to define custom components and event sources via Ports and Subscriptions.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
janestreet/bonsai_term ★ 229 4 APPLICATION

Bonsai_term is a library for building Terminal User Interfaces (TUIs) using OCaml with a reactive programming model similar to bonsai_web. It provides a complete framework for handling terminal input/output, event processing (keyboard, mouse, resize), rendering views, and managing application state. The architecture follows a functional reactive pattern with clear separation between event handling, state management, rendering, and the main run loop. Key entry points are the start functions in loop.ml which take an application function defining the view and event handler. The system processes terminal events through an event queue, applies user-defined handlers to produce effects, and renders incremental view updates at a target frame rate.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
supreme-gg-gg/instagram-cli ★ 2133 143 APPLICATION

This is a monorepo housing two terminal-based Instagram clients: a modern TypeScript client using React Ink for a rich Terminal User Interface (TUI) and a legacy Python client using curses. The system provides a full-featured Instagram experience entirely within the terminal, including real-time messaging via MQTT, feed and story browsing, profile viewing, multi-account management, authentication (with 2FA/challenge support), and one-turn CLI commands for AI agent integration. It also incorporates LLM-based chat summarization (OpenAI compatible) and basic analytics in the Python client. Architecture is straightforward: a CLI entry point (Pastel for TS, Typer for Python) dispatches commands, with the TUI built from reusable Ink components (ScrollView, MessageList, InputBox, etc.) that manage state via React hooks and contexts. A mock system enables offline UI development. External dependencies include reverse-engineered Instagram APIs (instagram-private-api, instagram_mqtt) and multiple utility libraries. The dual-client structure and reliance on patched, unofficial APIs introduce maintenance risks, but the TypeScript client is well-crafted with clear separation of concerns, thorough component reuse, and thoughtful UX design for keyboard-driven terminal use.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
ndd7xv/heh ★ 500 18 APPLICATION

heh (HEx Helper) is a cross-platform terminal hex editor written in Rust. It provides a TUI for viewing and editing binary files in both hexadecimal and ASCII representations, with features like search (hex/ASCII), jump-to-byte, undo, clipboard integration, and configurable endianness. The architecture follows a clean separation of concerns: `app.rs` orchestrates state and event handling, `screen.rs` manages rendering via ratatui, `input.rs` dispatches keyboard/mouse events to pluggable `KeyHandler` implementations (editor, popups), and `buffer.rs` implements an asynchronous memory-mapped buffer for responsive editing of large files. The codebase demonstrates strong Rust practices, including use of traits for extensibility, iterator patterns for decoding, and a custom `OverlappingChunks` iterator for handling UTF-8 boundary issues. It is primarily an application but includes a library interface for embedding as a ratatui widget.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Karanjot786/TermUI ★ 238 228 APPLICATION

TermUI is a comprehensive TypeScript monorepo providing a full-featured terminal UI framework for building rich, interactive command-line applications. It includes a custom JSX runtime with hooks, reconciliation, and portals; a theme engine (TSS) with CSS-like syntax and 26 built-in themes; a widget library spanning layout, input, display, data visualization, and feedback components; a motion system with spring physics and composable animations; a client-side router; a Zustand-like state store; adapters for external integrations (AI, Git, GitHub, clipboard, keychain); real-time system data hooks (CPU, memory, disk, Docker); a CLI scaffolding tool; and a dev server with hot reload. The framework is designed to offer a React-like development experience for terminal UIs, supporting JSX/TSX, keyboard and mouse input, focus management, accessibility (OSC 133), and unicode/ASCII fallbacks across 14+ packages with over 5000 tests.

RATING: 8.1/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
rgwood/systemctl-tui ★ 2050 56 APPLICATION

systemctl-tui is a terminal user interface for managing systemd services, written in Rust. It provides a fast, interactive alternative to the `systemctl` command-line tool, allowing users to browse, search, filter, and control systemd units (start/stop/restart/enable/mask/kill) and view live journal logs. The application supports both local operation and remote hosts over SSH, using D-Bus over a systemd-stdio-bridge connection on the remote side. Architecturally, the project is a Cargo workspace with three crates: `systemctl-ui-core` (shared library containing systemd D-Bus proxy, SSH helper, journal log parsing, formatting utilities, and a baked-in unit descriptions database), `systemctl-tui` (the main TUI binary built with ratatui, crossterm, and tokio), and `systemctl-gui` (an optional GTK4 frontend, not built by default). The TUI follows a single-component pattern with a large `Home` struct (~3000 lines) that implements a `Component` trait for initialization, event handling, and rendering. The event loop is asynchronous, with debounced journalctl calls and a spinner for service actions. Key features include fuzzy search, status filtering, context-sensitive action menus, a command palette, mouse support (drag to select log text), dark/light theme auto-detection, toast notifications for clipboard copies, and a pager for unit file editing. The project includes snapshot tests for the TUI, unit tests for core logic, and a comprehensive integration test matrix that runs against containers with systemd versions from 239 to current, as well as hostile hosts (no systemd).

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ChinaSiro/claude-code-sourcemap ★ 9704 14561 APPLICATION

This repository contains the reconstructed source code of Claude Code (v2.1.88), Anthropic's official terminal-based AI coding assistant. It is a full-featured CLI application built on a custom Ink-based React renderer for terminal UI, with a sophisticated tool system, multi-agent orchestration (swarm/teammate modes), MCP (Model Context Protocol) integration, plugin marketplace, and enterprise management features. The architecture is modular: a core state management layer (createStore, signals), a tool abstraction (buildTool with Zod schemas, permissions, and UI rendering), a permission system with classifier-based auto-approval, and a terminal UI framework with Yoga layout, keyboard/focus management, and animation support. The application supports remote sessions via WebSocket bridge, scheduled tasks (cron), vim mode, computer use (macOS native), and extensive analytics/telemetry via Datadog, GrowthBook feature flags, and first-party event logging. External dependencies include the Anthropic API, AWS Bedrock/Vertex SDKs, MCP SDK, and various cloud provider SDKs. The codebase demonstrates high craftsmanship in state management patterns, tool orchestration, and terminal UI engineering, but also carries technical debt from feature flag proliferation, deprecated sync APIs, and ant-only code paths that complicate external reuse.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
dlvhdr/gh-enhance ★ 236 15 APPLICATION

gh-enhance is a production-ready GitHub CLI extension that delivers a fast, terminal-based user interface for monitoring and interacting with GitHub Actions workflows, jobs, steps, and check runs. It is implemented as a single Go binary using the Bubble Tea framework (Elm architecture) with Lipgloss for styling and glamour for markdown rendering, and it supports three display modes: run-level, PR-level, and repository-level. The application authenticates via the GitHub CLI's OAuth token and communicates with the GitHub API through a mix of GraphQL (for PR checks and workflow run steps) and REST (for workflow runs, job logs, and rerun actions). A subprocess call to `gh run view --log --job` retrieves raw job logs, which are then parsed into an interactive, searchable view. The architecture is monolithic but well-structured, with a clean separation between the API layer, the TUI layer, and the data model, and includes a comprehensive test harness with mock API responses and a fake GitHub server for offline testing. It is actively maintained, with a responsive issue tracker and an engaged community on Discord.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
clangen/musikcube ★ 4854 321 APPLICATION

musikcube is a cross-platform, terminal-based music player and streaming server written in C++. It consists of a core library (`musikcore`) with a plugin-based architecture for decoders, encoders, audio outputs, DSP, and data streams. The project includes three distinct front-ends: a terminal UI (`musikcube`) built on a custom curses++ framework, a native Windows UI (`musikwin`) using a custom Win32 wrapper, and an Android remote client (`musikdroid`) written in Kotlin. The server plugin enables remote control and audio streaming via WebSocket and HTTP. The core manages a SQLite-backed music library with indexing, metadata extraction (via TagLib), and playlist management. Audio playback supports gapless and crossfade transitions, visualizers, and an equalizer. The system is designed for extensibility through a well-defined SDK interface set, allowing third-party plugins for decoders, outputs, and DSP. The codebase is mature (copyright 2004-2023) and shows signs of organic growth, with heavy vendored third-party dependencies and platform-specific code. While not architecturally pristine, it demonstrates solid engineering, a clean plugin API, and reusable UI frameworks.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
datafusion-contrib/datafusion-dft ★ 204 22 APPLICATION

datafusion-dft (dft) is a batteries-included Rust application that wraps Apache DataFusion into a multi-front-end SQL query and analysis tool. It provides four interfaces sharing one execution core: a scriptable CLI (file/command queries, benchmarking, FlightSQL client mode, CSV/JSON/Parquet/Vortex output), a ratatui terminal UI with SQL editor, paginated results, and history tabs, an Arrow FlightSQL gRPC server with full metadata and prepared-statement support, and an HTTP REST server. The core library (crates/datafusion-app) constructs a DataFusion SessionContext with a trait-based extension plugin system, dedicated CPU/IO executors, statistics collection, and observability hooks.

RATING: 7.8/10 MAINT: maintained DRIFT: medium
▸ 6 reusable components found
maria-rcks/t1code ★ 520 42 APPLICATION

This is a monorepo for an AI coding assistant called T1 Code (a fork of T3 Code). It provides a unified chat-based interface that integrates multiple AI providers (Codex, Claude, Cursor, OpenCode) via a server-side orchestration engine. The server uses Effect-TS for functional effects, SQLite for persistence, and WebSocket for real-time communication. Clients include a web app (React with TanStack Router), a terminal UI (Ink/React), and a desktop app (Electron). The system supports git operations, terminal integration, source control providers (GitHub, GitLab, Bitbucket, Azure DevOps), checkpointing/diff tracking, and text generation for commit messages, PRs, and branch names. The architecture follows an event-sourcing/CQRS pattern with a projection pipeline for read models. The codebase is well-structured with extensive test coverage and reusable Effect-based service layers, but relies on beta versions of Effect-TS and other libraries, which introduces some technical drift risk.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 8 reusable components found
raitonoberu/sptlrx ★ 518 34 APPLICATION

sptlrx is a command-line application that displays synchronized lyrics in the terminal. It fetches currently playing track information from various music players (Spotify, MPD, Mopidy, MPRIS, or browser extensions) and retrieves lyrics from lrclib.net or local LRC files. The core functionality revolves around a pool package that synchronizes player state with lyric timing, updating a Bubbletea-based terminal UI in real-time. The application features configurable styling, multiple player support, and a pipe mode for outputting lyrics to stdout.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
$ loading more...
$ submit: