Serie is a TUI application that renders rich git commit graphs in the terminal using image display protocols (iTerm2, Kitty, Kitty Unicode). It calculates the graph topology from git log output, generates PNG images per row, and displays them inline in the terminal. The application features a configurable commit list view, commit detail view, refs tree, search, and custom user commands. Built with Rust and ratatui, it demonstrates high-quality code with strong separation of concerns, extensive test coverage, and a novel approach to terminal graphics.
Herdr is a terminal workspace manager designed for AI coding agents. It features a client-server architecture where a persistent background server manages terminal panes, workspaces, and tabs, while thin clients (TUI and CLI) connect via Unix sockets/named pipes. The system enables detaching and reattaching sessions without losing agent state, provides agent-native control through CLI/socket API for spawning and managing AI agents (Claude, Codex, Copilot, etc.), and maintains session persistence across restarts and network disruptions. It includes a plugin system for extensibility, comprehensive AI agent integrations, and a rich terminal interface built with Ratatui.
Qwen Code (formerly Gemini CLI) is an open-source, multi-platform AI coding assistant designed to operate in the terminal, web shell, desktop (Tauri), VS Code, JetBrains, and chat channels (DingTalk, WeChat, Slack, etc.). The architecture is a monorepo with ~30+ packages centered around a core library (`packages/core`) that provides agent runtime, tool orchestration, memory, MCP support, and telemetry. The primary entry points are the CLI (`packages/cli` with an Ink-based TUI), the web shell (`packages/web-shell`), and a daemon server (`packages/cli/src/serve/`) that exposes REST/SSE endpoints for session management, file editing, and sandboxed shell execution. The system supports multiple LLM providers (OpenAI, Anthropic, Gemini, DeepSeek, etc.) and features sub-agents, goal-oriented workflows, approval modes, browser automation (CUA driver in Rust), and a Java managed-agent server for enterprise deployments. Data flows are user-to-agent: user input enters via a client (CLI, web, IDE), is processed by the core agent loop, which invokes tools (shell, file system, LSP, MCP servers) and streams responses back. External dependencies include Node.js v22+, pnpm, and platform-specific native binaries (Rust CUA driver, Electron desktop). The codebase is actively maintained with daily commits, extensive integration tests, and CI/CD pipelines. While it is a software application, it includes telemetry modules and a few Python scripts for benchmark analysis, but no research-grade data pipelines or ML training code.
htop is a cross-platform interactive process viewer and system monitor written in C on ncurses. It enumerates and displays processes by reading OS kernel interfaces — primarily /proc on Linux, sysctl/kvm/kstat on the BSDs and Solaris, libproc/mach on macOS, and PCP (Performance Co-Pilot) metrics for the pcp-htop variant — and renders a scrollable process table alongside a header of pluggable meters (CPU, memory, swap, disk I/O, network I/O, ZFS ARC, GPU utilization, pressure stall, battery, sensors, and more). Beyond display, it supports process management actions: kill, renice, set CPU affinity, scheduling and I/O priority, spawning strace/lsof child processes, plus tree view, sorting, filtering, incremental search, and persistent configuration in htoprc. Architecturally this is a monolithic C application with emulated object orientation: an Object base class with vtable-style Class function tables, generic containers (Hashtable with Robin Hood open addressing, Vector with ownership semantics), a RichString wide-character rendering layer, reusable Panel/Meter widget classes, and a ScreenManager event loop. Each supported OS lives in a backend directory (linux/, darwin/, freebsd/, openbsd/, netbsd/, dragonflybsd/, solaris/, pcp/, unsupported/) that implements the Platform/Machine/ProcessTable/Process contract. Entry points are htop.c and pcp-htop.c, which route through CommandLine_run() into ScreenManager_run(). The build uses GNU autotools with optional features (hwloc, libsensors, libnl, libcap, libunwind, PCP), and CI runs the binary headlessly under sanitizers plus a Lua/rote terminal-emulation test suite. Maintenance is genuinely active: recent commits, a CodeQL workflow, address/UB sanitizer jobs, valgrind suppressions, and a ChangeLog showing security fixes (CVE-2024-37676) and steady feature work through 3.6.0-dev. The honest caveats are platform fragility: Solaris and OpenBSD have TODO stubs for disk/network I/O, NetBSD uses deprecated proplib compatibility aliases, /proc and DRM fdinfo parsers are sensitive to kernel format changes, and there is visible copy-paste divergence across BSD backend field arrays. The core Linux path is current and well-maintained; the tail platforms lag, which keeps overall technical drift at medium rather than low.
Hyper is a cross-platform terminal emulator built on Electron, React, Redux, xterm.js, and node-pty. It provides a fast, extensible terminal experience with a plugin system that allows users to customize the UI, keymaps, menus, and behavior via npm-installed plugins. The application architecture follows a classic Electron main/renderer split: the main process handles window management, shell sessions, auto-updates, and configuration, while the renderer runs a React/Redux UI with xterm.js for terminal rendering. Communication between processes is done through a typed RPC layer. The codebase demonstrates strong engineering practices including a Redux effects middleware for side effects, a data batching mechanism to reduce IPC overhead from PTY output, and a plugin decoration pattern that wraps React components with higher-order components. The repository also includes a CLI tool for plugin management and build scripts for packaging and notarization. While the code is well-structured and professionally maintained, it carries some technical debt from deprecated dependencies like @electron/remote and seamless-immutable, and the plugin API introduces coupling risks.
Yazi is a blazing-fast terminal file manager written in Rust, built on async I/O and a modular crate architecture. It provides a full-featured TUI with file operations (copy, move, delete, rename, trash), multi-tab support, visual mode, and extensive plugin system via Lua scripting. The architecture is event-driven with an actor model, a generic task scheduler for background operations, and a virtual filesystem abstraction supporting local, SFTP, and custom Lua backends. It includes image preview via multiple protocols (Kitty, Sixel, Chafa, etc.), clipboard integration, and a distributed data service for cross-instance communication. The codebase is highly modular with over 30 internal crates, each with a single responsibility, and demonstrates strong engineering practices including custom serialization (Wire protocol), cross-platform abstractions, and lock-free data structures. It is actively maintained with frequent commits, comprehensive CI/CD, and a detailed coding style guide (AGENTS.md).
Fastfetch is a high-performance, cross-platform system information fetcher designed for the command line. It detects and displays hardware (CPU, GPU, memory, disks, battery, displays, network, Bluetooth, etc.) and software (OS, kernel, desktop environment, window manager, packages, processes, etc.) with extensive customization options including ASCII art logos, images, and JSON output. The architecture is monolithic with a modular detection system: each subsystem (e.g., GPU, battery) has a platform-agnostic header and multiple platform-specific implementation files (Linux, macOS, Windows, BSDs, Haiku, Solaris, Android). The core common library provides dynamic string buffers (FFstrbuf), generic lists (FFlist), dynamic library loading helpers, file I/O, configuration parsing, and formatting utilities. Build configuration is CMake-based with optional dependencies (ImageMagick, libva, Lua, etc.). The codebase is written in modern C (C23) and demonstrates strong engineering practices with consistent patterns for module initialization, option parsing, JSON config generation, and error handling. It is actively maintained with frequent releases and broad platform support.
inshellisense is a terminal-native runtime that provides IDE-style autocomplete for shells. It integrates with shells via OSC sequences to display real-time suggestions as users type, drawing from the autocomplete project's database of 600+ command line tools. The architecture consists of a CLI entry point, runtime components for parsing and generating suggestions, UI components for rendering and managing suggestions, and shell integration scripts for various shells (bash, zsh, fish, powershell, etc.). Key features include keybindings for navigation (tab, up/down, esc), shell-specific configuration generation, and performance monitoring.
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.
Click-spinner is a minimal Python library that provides a terminal spinner interface for indicating progress during long-running operations where the duration is unknown. The core functionality resides in the Spinner class, which runs a background thread to animate a sequence of characters (spinner frames) while the main thread executes work. The spinner automatically detects whether output is redirected and respects terminal capabilities, with options to force display, disable the spinner, or emit a beep upon completion. Designed as a context manager, it integrates seamlessly with Click-based CLI applications but has no framework dependencies, relying solely on Python's standard library. The project includes comprehensive test coverage verifying behavior under various conditions like output redirection, disabling, and exception handling, supported by CI workflows testing across Python 3.8-3.14.
Baleia.nvim is a Neovim plugin that colorizes text with ANSI escape sequences (8, 16, 256 or TrueColor). It processes buffers containing ANSI codes, strips them from the text while applying appropriate syntax highlighting, and supports both manual and automatic colorization modes. The architecture features modular Lua components handling ANSI parsing (ansi.lua), lexical analysis (lexer.py), asynchronous processing (scheduler.lua), and Neovim highlight rendering (renderer.lua). The plugin integrates with Neovim's buffer system through autocommands and API functions, efficiently handling large files via chunked processing.
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).
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.
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`.
ascii-chat is a production-grade terminal-based video conferencing application that converts live video and audio streams into real-time ASCII art rendered in the terminal. It operates in multiple modes: server (multi-client host), client (connect to server), mirror (local preview), discovery (peer-to-peer session participant), and discovery-service (session registry and NAT traversal relay). The system uses a custom binary protocol (ACIP) over TCP/WebSocket/WebRTC, with end-to-end encryption (Ed25519 + X25519 + XSalsa20-Poly1305) and support for SSH/GPG key authentication. A companion web client compiled via WebAssembly mirrors functionality in the browser. The codebase includes a standalone reusable C library (libasciichat) with a comprehensive platform abstraction layer (POSIX/Windows/WASM), a declarative options registry that auto-generates man pages and shell completions, SIMD-accelerated ASCII rendering (AVX2, NEON, SVE, SSE2), lock-free data structures, and a sophisticated logging system with crash-safe mmap output. The architecture is modular and cross-platform, with extensive unit, integration, and E2E test coverage across Linux, macOS, Windows, and WebAssembly targets.
Glances is a cross-platform, real-time system monitoring tool written in Python. It collects system metrics (CPU, memory, disk, network, processes, sensors, containers, GPU, NPU, etc.) via the `psutil` library and optional hardware-specific backends, and renders them through multiple interfaces: a curses-based terminal UI, a web UI (Vue.js + FastAPI REST API), a pure JSON/CSV stdout mode, a Model Context Protocol (MCP) server for AI assistant integration, and exports to 20+ time-series databases and message brokers (InfluxDB, Prometheus, Kafka, Elasticsearch, etc.). The architecture is modular and plugin-based: each metric domain is a self-contained plugin inheriting from a common base class, and each export target is a separate module. Glances can run standalone (local monitoring), in client/server mode (XML-RPC or REST), or as a central browser that discovers and displays multiple Glances instances via Zeroconf. The project is production-grade, with extensive test coverage, CI/CD across multiple OSes, Docker images, and active security maintenance. Its primary use case is real-time monitoring of single or distributed systems, with optional historical data export for long-term analysis.
Micro is a terminal-based text editor written in Go, designed to be intuitive and feature-rich. It provides a full editing experience with multiple cursors, tabs, splits, syntax highlighting, undo/redo, search/replace, autocomplete, and a built-in command bar. The architecture follows a modular design with clear separation of concerns: the `internal/action` package handles keybindings and event dispatching via a trie-based key tree; `internal/buffer` manages text buffers using an efficient line array and an event-driven undo stack; `internal/display` renders the editor UI through a window abstraction that supports soft wrapping and status lines; and `internal/screen` wraps the tcell library for terminal I/O. The editor supports Lua-based plugins that hook into lifecycle events and expose Go standard library packages, enabling extensibility without recompilation. External dependencies include tcell (terminal control), gopher-lua (scripting), go-diff (diff computation), and several forked libraries for JSON5 parsing and shell quoting. The main entry point is `cmd/micro/micro.go`, which parses CLI flags, initializes configuration, loads plugins, and runs the event loop. Data flows primarily involve file I/O (reading/writing buffers), terminal input events (keyboard/mouse), and plugin callbacks. The codebase is well-tested with unit tests, generated buffer tests from VSCode model tests, and CI pipelines across platforms.
WezTerm is a GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust. It supports Linux, macOS, and Windows with native windowing (X11, Wayland, macOS, Win32) and rendering via OpenGL and WebGPU. The architecture is a large Cargo workspace comprising many small crates, each handling a specific concern: terminal state machine (term, vtparse, wezterm-escape-parser), surface and cell model (wezterm-surface, wezterm-cell), multiplexer client/server (mux, wezterm-client, wezterm-mux-server-impl), SSH client (wezterm-ssh), font loading and shaping (wezterm-font), and a reusable terminal UI toolkit (termwiz). The application is configured via Lua scripts, with a dynamic config system built on the wezterm-dynamic crate. It includes a built-in multiplexer with TLS and SSH support, inline image protocols (Kitty, iTerm2, Sixel), bidirectional text, and extensive Unicode/emoji handling. The codebase demonstrates high craftsmanship with clean abstractions, thorough testing (including integration tests for SSH and bidi conformance), and well-separated platform-specific code. Notable reusable components include the filedescriptor crate (portable I/O abstraction), termwiz (terminal UI toolkit), and wezterm-dynamic (no_std dynamic value system with derive macros). Maintenance is active, though some vendored C dependencies and generated data files introduce moderate technical drift.
This repository is a curated collection of over 300 terminal color schemes (themes) and a comprehensive conversion toolchain that transforms a single source of truth (YAML + iTerm2 plist files) into configuration files for more than 20 terminal emulators, including Alacritty, Kitty, Windows Terminal, Xresources, Konsole, and many others. The core converter `tools/gen.py` reads source color data, applies WCAG contrast adjustments, and uses Jinja2 templates to generate output files. The repository also includes a terminal-based theme previewer, automated screenshot generation, and WCAG accessibility checks. It is a hybrid project: primarily a data collection with an ETL pipeline for multi-format export, but also contains application-level tools for preview and quality assurance. The codebase is well-organized, with reusable color science utilities (sRGB/P3 conversion, luminance, contrast ratio) and a template-driven generation architecture that can be adapted for other multi-format rendering tasks.
DashBeam is a peer-to-peer encrypted file transfer application that operates without a central server. Built on the Iroh networking stack (QUIC, BLAKE3, relays), it enables direct device-to-device transfers with end-to-end encryption, NAT traversal via relays, and local LAN discovery via mDNS. The application is cross-platform, targeting desktop (Windows, macOS, Linux via Tauri), Android, and web (via a Rust WASM bridge). Its architecture cleanly separates a core protocol crate (P2P wire format, pairing, identity) from platform-specific I/O crates (native disk I/O for desktop/mobile, in-memory for web), all wrapped by a unified engine facade. The frontend is a modern React/TypeScript SPA with Zustand state management, a comprehensive UI component library built on Base UI, and 20+ locale translations. The system supports one-time share tickets, permanent device pairing, broadcast mode, transfer progress with resume, and self-hosted infrastructure. No telemetry or accounts are required, and the AGPL-3.0 license ensures openness.