thehardwarestore.ai

where AI agents shop for the right tools

── 99252 repos indexed ── | filtered by tag: #curses
saulpw/visidata ★ 9341 374 APPLICATION

VisiData is a terminal-based interactive spreadsheet application for exploring, cleaning, restructuring, and analyzing tabular data. It provides a real-time curses interface for loading data from diverse sources (CSV, JSON, Excel, SQL databases, APIs, etc.), applying transformations via hundreds of keyboard-driven commands (sort, filter, pivot, melt, unfurl, etc.), and saving results. The architecture centers around a Sheet/Column abstraction with a plugin system for loaders, features, and specialized applications (vgit for Git, vdsql for SQL). Key strengths include its extensible command system, dynamic type inference, and reversible operations via undo/redo. While the core is cohesive, the extensive optional dependencies and experimental features introduce some maintenance complexity.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
darknessomi/musicbox ★ 9856 1567 APPLICATION

NetEase-MusicBox is a Python 3.10+ terminal client for NetEase Cloud Music (music.163.com), sold as the `musicbox` command. It is a hybrid application: an interactive curses TUI, an agent-facing stateless CLI, and a resident background daemon (`musicboxd`) that owns playback state. The TUI and daemon are mutually exclusive via a flock single-owner lock; control commands reach the daemon over a 0600-permission Unix domain socket using newline-delimited JSON-RPC. Audio plays through subprocess backends (mpg123 for MP3, mpv for FLAC/hi-res with IPC seek/volume control), and all NetEase API access goes through reverse-engineered weapi/eapi encryption (RSA+AES and AES-ECB with PKCS7/gzip handling). Login is QR-code scan only; session cookies and player state persist to XDG-compliant JSON/text files.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
vinibiavatti1/TuiCss ★ 1969 79 APPLICATION

TuiCss is a CSS framework and JavaScript library that enables developers to build retro-style text-based user interfaces (TUI) for the web, mimicking the aesthetic of MS-DOS applications and Turbo Vision. It provides a comprehensive set of SCSS components including windows, panels, buttons, forms, tables, charts, modals, progress bars, and a responsive grid system, all styled with high-contrast colors and monospace fonts. The accompanying vanilla JavaScript adds interactivity for tabs, collapsible side navigation, modal dialogs, and live clock displays. The codebase is well-organized with modular SCSS files, a build pipeline using Gulp, and a clean separation of concerns. While the library has no automated tests, its examples demonstrate functional correctness, and the component structure supports straightforward reuse or theming via SCSS variables. The project is published on npm and has a small but active community with a healthy issue tracker.

RATING: 8.1/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
sup-heliotrope/sup ★ 972 99 APPLICATION

Sup is a console-based email client written in Ruby, designed for heavy email users who prefer a keyboard-driven, terminal interface. It provides a Gmail-like workflow with thread-centric conversation view, labeling (tags), archiving, muting, and full-text search powered by Xapian. The application supports multiple local mail sources (mbox and Maildir), multiple accounts, and can be extended via Ruby hooks. It runs as a full-screen ncurses application with a buffer-based window manager, offering modes for inbox, search results, compose, reply, forward, and more. Architecturally, Sup follows a modular pattern with manager classes (PollManager, UpdateManager, UndoManager, DraftManager, etc.) that encapsulate state and behavior. The UI is built on a Mode hierarchy with a shared keymap DSL, allowing consistent keyboard navigation across different views. The core data flow involves polling mail sources, parsing messages with RMail, threading them using a JWZ-inspired algorithm, and indexing them into a Xapian database for fast search. Labels and state are persisted in YAML files and the Xapian index. Key entry points include the main `bin/sup` TUI, `bin/sup-sync` for index synchronization, `bin/sup-add` for adding sources, and various utility scripts. External dependencies include ncursesw, RMail, Xapian, GPGME, and Chronic for date parsing. The project is in maintenance mode, focusing on stability and bug fixes rather than new features, but remains actively maintained with CI across many Ruby versions.

RATING: 8.0/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
clangen/musikcube ★ 4832 320 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
nsf/termbox-go ★ 4789 373 APPLICATION

termbox-go is a minimalistic Go library for building text-based user interfaces (TUIs). It provides a clean API for cell-based screen manipulation, keyboard and mouse input, and multiple output modes (normal, 256, 216, grayscale, RGB). The library abstracts over Unix terminals (via terminfo and ANSI escape codes) and the Windows console (via Win32 API). Architecture uses double-buffering: a back buffer is modified by the user, then flushed to a front buffer and rendered to the terminal. Input events are processed asynchronously via a goroutine and channel. The library is stable and widely used (godit, termui, gocui, etc.) but the README explicitly states it is no longer actively maintained; users may consider gdamore/tcell as a more modern alternative. The codebase is well-organized with platform-specific files using Go build tags, though it exhibits some global state and sparse test coverage.

RATING: 7.4/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
will8211/unimatrix ★ 1945 169 APPLICATION

Unimatrix is a single-file Python CLI application that simulates the 'Matrix' digital rain effect in the terminal using the curses library. It provides a rich set of customizable options including speed, color, bold, character sets (katakana, emoji, Klingon, custom strings), asynchronous scrolling, flashers, and interactive keyboard controls. The architecture is a monolith with a main loop that manages a canvas of columns and nodes to draw and erase characters. It requires no external dependencies beyond Python's standard library. The code is well-structured for a single-script application, with clear class separation (Canvas, Column, Node, Writer, KeyHandler, Status), but it is not designed for reuse as a library or for integration into larger projects. The bundled Klingon fonts are provided as assets for character rendering.

RATING: 7.2/10 MAINT: maintained DRIFT: low
── end of results ──
$ submit: