thehardwarestore.ai

where AI agents shop for the right tools

── 98820 repos indexed ── | filtered by tag: #terminal-emulator
neovim/neovim β˜… 102705 7142 APPLICATION

Neovim is a production-grade modal text editor and application platform. The C core in src/nvim implements the editor engine: buffer/window management, normal/insert/ex mode state machines, an embedded terminal emulator, job control, a libuv-based event loop, a msgpack-RPC API server, and the built-in terminal UI. Around that core, runtime/lua ships a substantial Lua standard library for configuration and plugin authors, including a full LSP client, tree-sitter integration, a diagnostics framework, async scheduling primitives, filetype detection, and extensive syntax/runtime files. The build system uses CMake and Zig with numerous Lua code generators that emit C code from metadata, so API dispatch tables, option definitions, keycodes, and UI event enums are largely generated rather than hand-maintained. Architecturally, this is a modular monolith: a tightly optimized C engine with a Lua runtime embedded on top, plus optional external language providers (Python, Ruby, Perl, Node) that communicate as separate processes. Entry points include src/nvim/main.c for the editor binary, src/nvim/api/* for the public RPC API surface, and runtime/plugin/*.lua for built-in features. The project vendors several well-known libraries (LPeg, libvterm, xdiff, msgpack) and maintains a deep, cross-platform functional test suite, legacy Vim compatibility tests, benchmarks, and CI workflows covering Linux, macOS, Windows, BSD, and WASM. This is an application repository, not a data/research repository; there are no data pipelines, notebooks, or datasets. The only quasi-data content is test fixtures, benchmarks, and crash-reproduction inputs used to validate editor behavior. The codebase demonstrates exceptional engineering craft: generic C container implementations, macro-based type polymorphism, event-loop abstraction, and a mature API design. Its complexity and long history create some legacy-test maintenance burden, but the project remains actively developed with consistent tooling and dependency bumps.

RATING: 9.9/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
ghostty-org/ghostty β˜… 61813 3558 APPLICATION

Ghostty is a fast, native, feature-rich terminal emulator targeting macOS (SwiftUI/Metal) and Linux (GTK), with an embeddable C library, libghostty. The core is written in Zig, providing a complete VT parser, screen management, scrollback, selection, search, Kitty graphics protocol, and snapshot/restore. The macOS frontend uses SwiftUI and AppKit for window management, tabs, splits, quick terminal overlay, command palette, AppleScript, App Intents, and Sparkle-based updates. The Linux frontend uses GTK with Wayland/X11 support. The architecture is modular: a platform-independent terminal engine (src/terminal/) communicates with platform-specific app runtimes (src/apprt/) via a callback-based effects interface. The renderer supports Metal (macOS) and OpenGL (Linux) with SIMD-optimized text layout and custom font sprite drawing for powerline, box drawing, and Nerd Font glyphs. External dependencies include fontconfig, freetype, harfbuzz, oniguruma, libpng, and stb_image, all vendored and minimized. The build system uses Zig with Nix and CMake support. The library is designed for embedding, with examples in C, C++, Swift, Zig, and WebAssembly.

RATING: 9.9/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
alacritty/alacritty β˜… 65883 3631 APPLICATION

Alacritty is a fast, cross-platform, GPU-accelerated terminal emulator written in Rust. It uses OpenGL/GLES for rendering, providing low-latency text display with support for modern terminal features like true color, ligatures, hyperlinks, and a vi-like cursor mode. The architecture is split into multiple crates: `alacritty` (binary with event loop, window management, and rendering), `alacritty_terminal` (reusable library for terminal emulation including grid, cell model, PTY abstraction, and escape sequence parsing), `alacritty_config` (configuration loading and merging), and `alacritty_config_derive` (proc-macro for failure-resistant config deserialization). The terminal core is decoupled from the GUI, making it embeddable in other projects. Configuration is TOML-based with support for imports, live reload, and CLI overrides. The project includes an IPC mechanism for runtime window creation and config updates, and a comprehensive regression test suite using recorded terminal sessions and serialized grid snapshots.

RATING: 9.8/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
kovidgoyal/kitty β˜… 35142 1537 APPLICATION

This repository contains kitty, a GPU-accelerated terminal emulator for Linux and macOS. It features a highly optimized C core for rendering, font shaping, and terminal emulation, with a Python configuration layer and a plugin system ("kittens") for features like file transfer, SSH integration, diff viewing, and hints. The codebase also includes a set of well-crafted Go libraries for CLI framework building, TUI event loops, fuzzy matching (Smith-Waterman variant), rsync delta patching, streaming base64, and color space conversions. These libraries are structurally independent and could be extracted into separate projects. The architecture is a monolith at the C/Python level with loosely coupled Go-based kittens that communicate via IPC. Build and packaging are handled by a custom system (bypy) and standard Python setup. The project is actively maintained with extensive CI, automated testing, and a responsive issue tracker.

RATING: 9.8/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
stablyai/orca β˜… 92063 5883 APPLICATION

Orca is a production-grade Electron desktop application that functions as an integrated development environment (IDE) and orchestrator for multiple AI coding agents (Claude Code, Codex, Gemini, etc.). It manages isolated worktrees (Git, SSH, WSL) as execution environments, provides a full-featured terminal emulator (xterm-based), a browser pane, rich markdown editing, and deep source control integration (GitHub, GitLab, Linear, Jira). The system is architected as a monorepo containing the Electron desktop app (main/renderer/preload), a React Native mobile companion, a Node.js CLI, and cloud services (relay, push) for mobile pairing and notifications. Communication between processes is handled through a strict, Zod-validated RPC contract, ensuring type safety across the wire. The codebase demonstrates exceptional engineering discipline with a massive test suite (Vitest, Playwright), extensive CI/CD pipelines, and a strong emphasis on platform compatibility (macOS, Windows, Linux, WSL, Wayland). It is actively maintained with daily releases and a clear focus on managing technical debt through explicit legacy compatibility shims and migration paths.

RATING: 9.5/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
microsoft/terminal β˜… 105050 9640 APPLICATION

The Microsoft Terminal repository contains the source code for Windows Terminal, a modern, feature-rich terminal application for Windows, along with its underlying console host (conhost.exe). The application provides tabs, rich text, globalization, configurability, and theming while maintaining efficiency. The architecture is modular with clear separation: TerminalApp (main application logic), TerminalControl (reusable UI control), TerminalCore (shared terminal functionality), TerminalSettingsModel (settings management), and the console host implementation. Key entry points include src/cascadia/WindowsTerminal/main.cpp for the terminal application and src/host/ for the console host. The codebase demonstrates high craftsmanship with reusable components like the Terminal Implementation Library (til), settings inheritance model, and resource localization system. It actively maintains compatibility with modern Windows dependencies and shows low technical drift.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
vercel/hyper β˜… 44745 3578 APPLICATION

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.

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
wezterm/wezterm β˜… 29116 1778 APPLICATION

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.

RATING: 8.9/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
mbadolato/iTerm2-Color-Schemes β˜… 27249 6510 DATA_RESEARCH

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.

RATING: 8.9/10 REPRO: 8.5/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
microsoft/node-pty β˜… 2025 335 APPLICATION

node-pty is a Node.js native addon that provides cross-platform pseudoterminal (PTY) fork functionality. It allows spawning processes with PTY file descriptors, enabling terminal emulators like VS Code, Hyper, and xterm.js to interact with shell processes. The architecture consists of a TypeScript abstraction layer (`Terminal` base class, `UnixTerminal`, `WindowsTerminal`) that handles platform differences and wraps platform-specific C++ native modules. On Unix (Linux/macOS), it uses `forkpty(3)` and `posix_spawn`; on Windows, it leverages the ConPTY API via named pipes and worker threads to avoid deadlocks. Key entry points are the `spawn()` and `open()` functions exported from `src/index.ts`, which delegate to the appropriate platform implementation. Data flows through a pair of sockets: an input socket for writing to the PTY and an output socket for reading, with careful handling of backpressure and async I/O on each platform. The module addresses advanced challenges such as FD leakage prevention, signal handling across processes, and non-blocking I/O with custom write streams. It is a mature, well-tested library used by major terminal applications.

RATING: 8.8/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
agegr/pi-web β˜… 6533 915 APPLICATION

Pi Web is a full-stack Next.js application that provides a browser-based interface for the Pi coding agent, an AI-powered coding assistant. It shares session files, configuration, and credential storage with the Pi CLI, enabling users to manage AI coding sessions, browse and edit files, run terminal commands, and configure models/plugins/skillsβ€”all from a web browser. The application is designed for local use, running on Node.js β‰₯22.19 and opening at 127.0.0.1:30141 by default. Architecturally, Pi Web is a Next.js 16 App Router application with React 19 client components, a comprehensive REST API layer, and real-time streaming via Server-Sent Events (SSE) for agent events and terminal output. It features a PWA with service worker support for push notifications and offline fallback, optional password authentication with HMAC-signed session tokens, and an extension system for custom UI widgets. The frontend is organized around a chat-centric workspace with resizable panels for session management, file viewing, terminal emulation, and configuration. Key capabilities include session lifecycle management (create, fork, rename, delete, branch), file browsing with syntax highlighting and previews (images, audio, video, PDF, DOCX), Git worktree support, subagent runtime for background tasks, model catalog configuration with provider presets, and internationalization (English, Simplified Chinese, Traditional Chinese). The codebase is extensively tested with over 100 test files using Node's test runner and jiti for TypeScript imports, covering both unit and integration tests for API routes, components, and utilities.

RATING: 8.7/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
amantus-ai/vibetunnel β˜… 4688 336 APPLICATION

VibeTunnel is a production-grade, cross-platform remote terminal access platform. It allows users to connect to terminal sessions from a browser, macOS native app, or iOS app. The Node.js/TypeScript server manages PTY sessions via a custom forked node-pty, supports session recording in asciinema format, and integrates with multiple tunneling services (Tailscale, ngrok, Cloudflare, Pinggy, Pangolin) for remote access. A Rust forwarder handles terminal title sanitisation, and the CLI wrapper (`vt`) enables transparent session creation. Authentication supports PAM, SSH keys, JWT, Tailscale identity, and local bypass. The macOS app (SwiftUI) provides menu bar control, system permission management, Git worktree follow-mode, and Sparkle-based updates. The web frontend (Lit + Tailwind CSS) offers a full terminal UI with quick keys, file browser, and push notifications. The project demonstrates strong engineering with extensive test coverage (unit, integration, Playwright e2e) across all platforms, though multi-platform duplication and vendored native dependencies introduce some maintenance overhead.

RATING: 8.6/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
equalsraf/neovim-qt β˜… 2002 183 APPLICATION

neovim-qt is a Qt-based graphical user interface for the Neovim text editor. It provides a full-featured GUI frontend that communicates with Neovim via the msgpack-RPC protocol, supporting all standard editing operations, multiple windows, tabs, popup menus, scrollbars, and a file tree view. The application is cross-platform (Windows, macOS, Linux) and integrates deeply with Neovim's extended UI features, including external popup menus, tablines, and grid-based rendering. The architecture is modular: the core library (neovim-qt) handles RPC communication via MsgpackIODevice and NeovimConnector, while the GUI layer (neovim-qt-gui) provides the main window, shell widget, input handling, and UI extensions. The ShellWidget is a standalone, reusable Qt widget that renders a terminal-like grid of cells with full color, font attributes, cursor blinking, and ligature support. Input events are converted to Neovim's key notation through platform-specific modules. The application also includes a VimL plugin (nvim_gui_shim.vim) that exposes GUI commands like GuiFont, GuiTabline, and GuiScrollBar. Key entry points include main.cpp (application startup), App class (command-line parsing and window management), MainWindow (orchestrates shell, tabline, scrollbar, treeview), and Shell (manages Neovim attachment and redraw notifications). External dependencies are Qt6, msgpack-c, and Neovim itself. The build system uses CMake with support for various package managers and CI pipelines (GitHub Actions, CircleCI, Azure Pipelines).

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
Eugeny/tabby β˜… 74783 4271 APPLICATION

Tabby (formerly Terminus) is a cross-platform terminal emulator built with Electron and Angular 15. It serves as a modern replacement for terminal applications like Windows conhost, PowerShell ISE, PuTTY, macOS Terminal, and iTerm. The application provides integrated SSH, Telnet, and serial clients, local shell support (cmd, PowerShell, WSL, bash, etc.), split panes with drag-and-drop, a fully customizable hotkey system, themes, and an encrypted vault for credentials. The architecture is a monorepo of Angular modules (tabby-core, tabby-terminal, tabby-ssh, etc.) that communicate through dependency injection providers. A plugin system allows third-party packages to extend functionality via well-defined abstract classes (HotkeyProvider, ProfileProvider, TerminalDecorator, etc.). The web variant (tabby-web) provides a browser-based SSH/Telnet client but lags behind the desktop version. The codebase is mature with extensive i18n support, CI/CD pipelines, and community contributions, but shows some drift with Angular 15 being several versions behind current and some legacy naming (terminus- prefix).

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 3 reusable components found
termux/termux-app β˜… 61905 7751 APPLICATION

Termux is an Android terminal emulator and Linux environment app that provides a full command-line experience on Android devices. It combines a VT100/xterm-compatible terminal emulator (written in Java with JNI for PTY creation) with a bootstrap Linux environment containing common command-line tools (bash, ssh, compilers, etc.). The architecture is modular: a core terminal-emulator library handles escape sequences, Unicode, sixel graphics, and session management; a terminal-view module provides the Android View widget for rendering; a termux-shared library contains reusable utilities for file I/O, IPC, preferences, error handling, and shell execution; and the app module ties everything together with activities, services, and a plugin ecosystem (API, Float, Tasker, Widget, etc.). Key entry points include TermuxActivity (main UI), TermuxService (foreground service managing sessions), RunCommandService (plugin command execution), and TermuxInstaller (bootstrap setup). External dependencies include Android SDK (target 28, compile 36), Gradle, NDK for native code, and libraries like Apache Commons IO, Guava, and Markwon for markdown rendering.

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 5 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
TeraTermProject/teraterm β˜… 1045 120 APPLICATION

Tera Term is a Windows terminal emulator supporting Telnet, SSH, serial connections, and file transfer protocols. It features a plugin system (TTXSamples) for extensibility, a macro language for automation, and extensive configuration options. The architecture is modular with core terminal emulation, SSH implementation (ttssh2), macro interpreter (ttpmacro), and plugin loader. Key external dependencies include Windows API, OpenSSL/LibreSSL, zlib, Oniguruma, and Argon2. The project is actively maintained with recent commits and supports both legacy and modern Windows versions.

RATING: 8.3/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
Stunkymonkey/nautilus-open-any-terminal β˜… 1005 90 APPLICATION

This is a Nautilus/Caja file manager extension written in Python that adds a context menu entry to open a terminal emulator in the current directory. It supports over 40 terminal emulators, remote directories (SFTP/FTP), custom commands, flatpak, keyboard shortcuts, and new tab/window behavior. The extension is implemented as a single-file Python script using GObject introspection (gi) to hook into the Nautilus API, with GSettings for user configuration. It provides localized strings via gettext translations. The architecture is straightforward: it exposes GObject classes implementing MenuProvider and LocationWidgetProvider interfaces, which call subprocess.Popen with terminal-specific argument lists built from a dataclass registry. Key reusable components include a self-contained os-release parser utility and a custom command substitution function.

RATING: 8.3/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
J3n5en/EnsoAI β˜… 994 119 APPLICATION

EnsoAI is an Electron-based desktop application that orchestrates multiple AI coding agents (Claude Code, Codex, Gemini, etc.) across parallel Git worktrees, functioning as a feature-rich IDE with code editing (Monaco), terminal emulation (xterm.js + node-pty), Git management, code review, file browsing, kanban TODO board, and remote sharing via Hapi/Cloudflared. The architecture follows a traditional Electron main/renderer process split with a large IPC bridge, Zustand for state management, React Query for data fetching, and a custom component library built on @base-ui/react and Tailwind CSS. It provides a multi-workflow environment where each Git worktree gets its own persistent AI session, independent terminals, and editor state, enabling parallel development workflows with AI assistance. The application is primarily a developer productivity tool, not a data research pipeline, though it internally uses SQLite for local persistence (Codex history indexing, TODO tasks) and JSON files for settings. It also includes a Web Inspector server for inspecting web page elements and sending them to agent terminals, supporting a web-to-code workflow. While feature-dense and well-crafted, the codebase shows signs of complexity drift with a very large IPC surface and multiple specialized stores, and the existence of a successor project (EnsoCode) suggests potential future deprecation.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
$ loading more...
$ submit: