presenterm is a Rust-based CLI application that renders Markdown presentations directly in the terminal. It parses Markdown into a structured intermediate representation via comrak, then builds slides as sequences of render operations. The rendering engine supports rich text, images, code highlighting through bat/syntect, column layouts, themes, slide transitions, footers, speaker notes, and interactive keyboard-driven navigation. It also includes PDF/HTML export backends and hot-reload for live presentation development.
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.
slacrawl is a local-first Slack archiving CLI tool written in Go. It ingests messages, files, users, and channels from multiple sources—Slack API (bot/user tokens), Slack Desktop local cache (LevelDB + IndexedDB), MCP (Model Context Protocol) adapters, and external provider subprocesses—and stores them in a local SQLite database with full-text search (FTS5). The tool provides a rich command surface including sync, search, TUI browsing, analytics reports (digest, trends, quiet channels), retention purging, and Git-based archive sharing (publish/subscribe). It is designed for privacy-conscious users who want offline access to their Slack history without cloud dependency. The architecture follows a clean internal package separation: `cmd/slacrawl` is the entry point, `internal/cli` handles command routing via Kong, `internal/store` provides the SQLite persistence layer with schema migrations and batch writes, `internal/syncer` orchestrates multi-source synchronization, and `internal/slackapi`, `internal/slackdesktop`, `internal/slackmcp`, and `internal/provider` implement source-specific adapters. The codebase is well-tested with extensive Go tests, CI/CD via GitHub Actions, and cross-platform releases (Linux, macOS, Docker). While primarily an application, slacrawl exhibits data pipeline characteristics: it ingests raw Slack data, transforms it into a normalized relational schema with FTS indexing, and exposes analytical outputs (reports, digests). The embedding_jobs table hints at future ML integration. The Git archive sharing module is a novel pattern for distributed data replication. Overall, the codebase demonstrates strong engineering practices with reusable components like the generic MCP client, platform-specific file locking, and the external provider protocol.
grex is a regular expression generator that creates regex patterns from user-provided test cases. It implements DFA construction, Hopcroft's minimization algorithm, and Brzozowski's algebraic method to produce Perl-compatible regexes. The system serves dual purposes as a command-line utility and a library with bindings for Rust, Python, and WebAssembly. Key features include Unicode grapheme handling, configurable character class conversions (digits/whitespace/word), case insensitivity, repetition detection, and syntax highlighting. The architecture separates core regex building logic from CLI, Python, and WASM extension points, enabling reuse across multiple contexts.
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.
tmuxp is a CLI tool and Python library for managing tmux sessions declaratively. It loads, freezes, converts, and imports workspace configurations in YAML or JSON formats, enabling reproducible tmux environments. The architecture follows a layered design: configuration files are parsed by a custom config reader, expanded with environment variables and shorthand forms, then processed through a `trickle` function that propagates defaults across session/window/pane hierarchy. A workspace builder (default is `ClassicWorkspaceBuilder`) translates the expanded config into tmux commands via the libtmux library, creating sessions, windows, panes, and executing shell commands. A plugin system allows custom workspace builders and lifecycle hooks (`before_workspace_builder`, `on_window_create`, `after_window_finished`, `before_script`, `reattach`). The CLI supports subcommands (load, freeze, convert, import, edit, ls, search, shell, debug-info) with structured output modes (human, JSON, NDJSON), semantic color support, and a thread-based progress spinner. External dependencies are minimal: Python ≥3.10, tmux ≥3.2, and libtmux ≈0.61.0. The codebase demonstrates strong engineering practices with extensive integration tests against multiple tmux versions, Sphinx documentation, and a well-defined plugin contract.
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.
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.
This repository is an OpenCode plugin that provides interactive pseudo-terminal (PTY) management for AI coding agents. It allows agents to spawn, write to, read from, and kill multiple background terminal sessions, enabling long-running processes like dev servers, watch modes, and interactive programs. The plugin exposes five tools (pty_spawn, pty_write, pty_read, pty_list, pty_kill) and two slash commands for opening a web UI. The architecture is modular: a core PTYManager orchestrates session lifecycle, output buffering (via a RingBuffer), and exit notifications, while adapters decouple the plugin from OpenCode V1 and V2 APIs. A Bun-based web server serves a React frontend with real-time WebSocket streaming and a REST API for session management. The codebase demonstrates strong TypeScript patterns, clean abstractions, and comprehensive testing (unit, integration, and Playwright E2E).
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.
ov is a feature-rich terminal pager written in Go, designed as a modern replacement for less/more. It supports large files via chunked reading with memory limits, ANSI escape sequence rendering, column alignment, word wrapping, search (case-insensitive, regex), follow/watch modes, multiple documents, sidebar panels (help, marks, doc list, sections, styles), mouse support, and extensive keybinding customization. The architecture is a single binary with a core `oviewer` package handling document management, screen drawing, event processing, and input modes. It uses `tcell` for terminal UI, `cobra` for CLI, `viper` for configuration, and supports compressed files (gzip, bzip2, zstd, lz4, xz). The codebase is well-tested with over 100 test files and demonstrates solid engineering practices including reusable patterns for bidirectional maps, ordered maps, converters, and input handling.
Murex is a cross-platform shell and scripting language designed as a more readable, safe, and type-aware alternative to Bash. In production it works as both an interactive REPL (with autocomplete, hint text, preview panes, spellchecking, and job control) and a scripting interpreter with a custom expression language, typed pipelines, exception handling (try/catch/trypipe), multi-scope variables, a built-in unit test framework, event hooks (onPrompt, onKeyPress, onFileSystemChange, onSignalReceived), an HTTP client, and a package/module manager. The defining architectural feature is that data in pipelines carries type metadata: JSON, YAML, CSV, TOML, XML, S-expressions, HCL and more are first-class structured objects with registered Marshal/Unmarshal/ReadArray/ReadMap/ReadIndex hooks, so builtins like alter, tabulate, count, and jsplit operate on structured data rather than raw text. The implementation is Go (with a JS/WASM interpreter variant), organized around lang/ (parser, expression engine, process lifecycle), shell/ (interactive terminal layer), builtins/ (roughly 200 commands, data type adapters, pipes, and event handlers), config/ (profile-driven runtime configuration), and utils/ (standalone helper libraries).
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.
cli-chess is a terminal-based chess application that supports playing online via Lichess.org and offline against the Fairy-Stockfish engine. It features a modular MVP (Model-View-Presenter) architecture with clear separation of concerns across core game logic, reusable UI components (board, move list, chat, clock), menu systems, and API integration. The application supports all Lichess chess variants, includes features like premoves, takebacks, draw offers, chat, blindfold mode, unicode pieces, custom theming, and PGN export. Entry point is src/cli_chess/__main__.py, with gameplay driven by user input flowing through presenters to models, which update views via an event system. External dependencies include python-chess for board logic, berserk for Lichess API, and prompt-toolkit for the terminal UI.
kotofetch is a Rust-based CLI tool that displays Japanese quotes in the terminal with extensive customization options. It features built-in quote collections (anime, proverbs, haiku, lyrics, and yojijukugo) and supports importing Anki decks via AnkiConnect. The tool offers various display modes including furigana (ruby text) rendering, animations (typewriter, scramble, slide), and flexible text styling. The application architecture is modular, with separate modules for command-line parsing, configuration management, quote importing, and display rendering. The display module handles complex text layout, including inline furigana annotations, Unicode-aware wrapping, and terminal boxing with optional animations. Key reusable components include the furigana parsing and formatting logic (which handles conversion between Anki's [reading] syntax and kotofetch's (reading) syntax and renders ruby text with proper alignment) and the AnkiConnect client (which provides a robust interface for fetching and converting Anki notes into kotofetch-compatible quote files).
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).
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.
Oh My Zsh is a community-driven framework for managing Zsh shell configuration. It consists of a core library (lib/), over 200 plugins providing aliases, functions, and completions for development tools and workflows, and over 100 prompt themes. The system is loaded by sourcing oh-my-zsh.sh, which initializes libraries, plugins, custom configurations, and the chosen theme. Plugins follow a consistent structure and many generate completions asynchronously. The repository also includes install/update/uninstall tooling and CI automation for dependency updates. While the vast majority of files are simple aliases or READMEs, several components exhibit high craftsmanship—notably the emoji definitions (auto-generated from Unicode data), the git prompt library (lib/git.zsh) with async support and security patches, the Zsh Navigation Tools (plugins/zsh-navigation-tools) providing full-screen interactive widgets, and the dependency updater script. Some content is stale (outdated completions for rustc, scala, yarn v1, docker-compose v1) and there is a long tail of low-effort plugins, but the core framework is well-maintained and actively developed.
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.
vimhjkl is a Vim technique trainer that drills advanced Vim skills (dot command, text objects, registers, macros, Ex commands) using real vim/nvim as a subprocess. It features a CLI with interactive menu (j/k navigation, vim-style counts) and four practice modes: Learn, Blind, Practice, Grind, and Review. The application uses a spaced repetition system (Leitner boxes) to schedule skill reviews based on keystroke efficiency. It includes 66 skills across 230 challenges, with a curriculum defined in JSON and generated by a separate build system. The codebase is pure Python stdlib with zero third-party dependencies, and supports internationalization (Chinese shipped) with an AI translation pipeline. The architecture is modular: CLI entry point, engine for session logic, grader for vim subprocess management, store for progress persistence, and TUI for terminal rendering. The repository also contains build scripts for curriculum generation and packaging (Homebrew, AUR).