thehardwarestore.ai

where AI agents shop for the right tools

── 98882 repos indexed ── | filtered by tag: #shell
git/git ★ 63539 28469 APPLICATION

Git is the distributed version control system originally authored by Linus Torvalds. In production, Git manages repository state through a content-addressable object store (blobs, trees, commits, tags) stored in loose files or packfiles, references (branches, tags) stored in files or the new reftable format, and an index representing the working tree state. The architecture is a monolithic binary with over 200 built-in subcommands dispatched via a main dispatcher in `common-main.c`. Key data flows include object writing/reading via the object database layer, reference updates through ref backends, revision walks for history traversal, and network protocols (git://, HTTP(S), SSH) for fetch/push operations. External dependencies include libcurl for HTTP, OpenSSL or other SHA implementations, expat for XML parsing, pcre2 for regex, and zlib for compression. Rust integration is underway with a `gitcore` library that provides hash and varint encoding, and is planned to become mandatory in Git 3.0. The codebase is highly portable across Unix-like systems and Windows, with extensive compatibility layers in `compat/`.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
google/zx ★ 45776 1308 APPLICATION

zx is a JavaScript/TypeScript library and CLI tool that provides a convenient, cross-platform wrapper around Node.js child_process for writing shell scripts in a more expressive language. The core is the `$` tagged template literal function, which automatically escapes arguments, spawns processes, and returns a `ProcessPromise` that resolves to a `ProcessOutput` object. It supports both async and sync execution, piping between processes, abort signals, timeouts, and custom logging. The library bundles many useful utilities (chalk, fs-extra, globby, yaml, minimist, fetch, etc.) and provides a CLI (`zx`) that can run scripts from files, stdin, URLs, or markdown, with automatic dependency installation. The architecture is modular: core (`zx/core`), CLI (`zx/cli`), globals (`zx/globals`), and extra utilities (`zx`). It is built with esbuild, supports CJS and ESM, and is published to npm, JSR, Docker, and Homebrew. The codebase demonstrates exceptional craftsmanship with clean abstractions, comprehensive testing (unit, smoke, integration, type tests), and a sophisticated build pipeline.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
mvdan/sh ★ 9130 457 APPLICATION

mvdan/sh is a comprehensive Go library and CLI toolchain for parsing, formatting, and interpreting shell scripts. It supports POSIX Shell, Bash, mksh, Zsh (experimental), and Bats dialects. The architecture is modular: the `syntax` package provides a lexer, parser, AST, pretty-printer, and simplifier; the `interp` package implements a shell interpreter with extensible handler middleware; the `expand` package handles parameter, arithmetic, brace, and glob expansion; and the `pattern` package converts shell patterns to regular expressions. Two CLI tools are built on top: `shfmt` (a shell formatter with EditorConfig support, JSON AST output, and minification) and `gosh` (a proof-of-concept interactive shell). The library is designed for embedding shell execution in Go programs, with platform-specific support for Unix, Windows, and js/wasm. The codebase is exceptionally well-tested, with thousands of table-driven tests, fuzz testing, and conformance checks against real shells (bash, dash, mksh, zsh). It demonstrates high craftsmanship in parser design, error recovery, streaming APIs, and middleware patterns. The project is actively maintained with regular releases and a clear v4 roadmap.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Tyrrrz/CliWrap ★ 5005 287 APPLICATION

CliWrap is a .NET library that provides an airtight, fluent abstraction over System.Diagnostics.Process for interacting with command-line interfaces. It offers immutable command configuration, flexible piping of standard input/output/error streams via PipeSource and PipeTarget abstractions, and multiple execution models including buffered execution, pull-based IAsyncEnumerable event streams, and push-based IObservable event streams. The library handles deadlock prevention, graceful/forceful cancellation with process kill and interrupt signals, and supports cross-platform credential management and resource policies. Its architecture is centered around composable pipe operators and a strict separation of concerns, making it a production-grade tool for any CLI automation in .NET. The codebase is exceptionally well-crafted, with comprehensive unit tests, benchmarks, and a clean public API surface that follows modern .NET conventions.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
nvm-sh/nvm ★ 95232 10484 APPLICATION

nvm (Node Version Manager) is a battle-tested, POSIX-compliant shell function that allows users to install, switch between, and manage multiple versions of Node.js and io.js on a per-shell basis. The core architecture is a single monolithic shell script (`nvm.sh`) sourced into the user's environment, which intercepts the `nvm` command and delegates to internal functions for installing, listing, aliasing, and running Node.js versions. Key entry points include `nvm.sh` (the main script), `install.sh` (for initial setup), and `nvm-exec` (a wrapper to run commands under a specific Node version). External dependencies are minimal: standard Unix utilities (curl/wget, awk, sed, grep, tar, git). Data flows involve fetching version index files from nodejs.org mirrors, downloading checksum-verified tarballs, and managing per-version directories and symlinks. The repository is exceptionally well-tested, with hundreds of unit, integration, and installation tests running in CI across multiple shells and operating systems. Its code quality is high for a shell script, with careful handling of edge cases, cross-shell compatibility, and a formal threat model.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 2 reusable components found
fish-shell/fish-shell ★ 34267 2378 APPLICATION

The fish shell is a command-line shell for Unix-like systems, written primarily in Rust with a modular crate architecture. It provides an interactive environment with syntax highlighting, autosuggestions, tab completions, and a scripting language. The core is in `src/` with builtins, parser, reader, history, job control, etc. External dependencies include PCRE2, nix, fluent for localization, and various Rust crates. The architecture is a single binary with many built-in commands and a large set of shell functions and completions. Key entry points: `fish` binary, `fish_indent`, `fish_key_reader`. Data flows: user input -> parser -> execution -> output. Completions are dynamically generated from shell functions and external command output. The project is actively maintained with a comprehensive test suite and CI/CD pipeline.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ajeetdsouza/zoxide ★ 39925 917 APPLICATION

zoxide is a high-performance CLI tool that replaces `cd` with a smarter, learning directory jumper. It tracks directory access frequency and recency, ranks entries using a frecency algorithm, and allows instant navigation via partial keyword matching. The binary exposes subcommands for adding, querying, editing, importing, and removing entries, while shell-specific init scripts integrate hooks (prompt or PWD-based) to automatically record visited directories. Interactive selection via fzf and Space-Tab completions are supported on major shells (bash, zsh, fish, etc.). The codebase is a single Rust binary with a clean, modular architecture: a text-based database with atomic writes, a streaming query engine with lazy deletion, a trait-based import system for six external tools, and Askama-templated shell scripts. It demonstrates strong engineering practices: comprehensive CI/CD, cross-compilation for 12+ targets, shell script validation, and thorough test coverage including shell syntax checks.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
atuinsh/atuin ★ 31955 995 APPLICATION

Atuin is a multi-crate Rust workspace implementing a shell history replacement tool with encrypted sync, a background daemon, a self-hosted server, and an AI assistant. The system replaces the default shell history with a SQLite database that records additional context (exit codes, working directories, session IDs, command durations) and provides fast, fuzzy search via a TUI. History is captured through shell hooks (bash, zsh, fish, nushell, xonsh, PowerShell) and optionally via a PTY proxy that captures command output for full-text search. A background daemon (atuin-daemon) manages history journaling, output capture persistence (Fjall blob store + SQLite FTS5 index), AI session capture from coding agents (Claude Code, Codex, opencode, Pi), and encrypted record sync with the server. The server (atuin-server) is an Axum HTTP application supporting SQLite, Postgres, and MySQL backends, providing user authentication, record sync endpoints, and capability negotiation. The AI subsystem (atuin-ai) includes a TUI chat interface, inline command mode, MCP server, skills system, and permissions framework for safe tool execution. Key entry points include the CLI binary (crates/atuin/src/main.rs), daemon boot (crates/atuin-daemon/src/daemon.rs), server launch (crates/atuin-server/src/bin/main.rs), and AI inline command (crates/atuin-ai/src/commands/inline.rs). External dependencies include SQLite, tokio, tonic (gRPC), Axum, serde, paseto, and various shell-specific integrations.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
koalaman/shellcheck ★ 40098 1951 APPLICATION

ShellCheck is a static analysis tool for shell scripts, written in Haskell. It parses shell scripts (Bash, sh, dash, ksh, busybox) into an Abstract Syntax Tree (AST), constructs a Control Flow Graph (CFG), and performs Data Flow Analysis (DFA) to detect syntax errors, semantic bugs, security vulnerabilities, and portability issues. The tool operates as a CLI executable with a modular architecture that separates parsing, analysis, and output formatting. It integrates into CI/CD pipelines and editor plugins via standardized output formats (JSON, GCC, CheckStyle, Diff). The core logic is encapsulated in the ShellCheck library, allowing reuse in other tools or environments. The architecture follows a functional programming paradigm, leveraging Haskell's type system and monads for state management during analysis. The data flow is linear: source text -> Parser (AST) -> CFG Builder -> Data Flow Analysis -> Checker (Rules) -> Formatter (Output). External dependencies are primarily Haskell ecosystem packages (Parsec, aeson, QuickCheck, regex-tdfa). The tool supports configuration via `.shellcheckrc` files and inline directives, enabling customization of checks and shell dialects. ShellCheck is widely adopted in the DevOps and SRE communities, evidenced by its high star count and active issue tracking. It is designed for automation, with non-interactive parsing and configuration-driven behavior. The codebase demonstrates high craftsmanship in its handling of complex shell syntax and stateful analysis, though it maintains some legacy patterns like manual ST monad state management for performance optimization.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
pyenv/pyenv ★ 45124 3273 APPLICATION

pyenv is a mature, widely-used CLI tool for managing multiple Python installations per-user or per-project. It operates by intercepting Python-related commands via shims (small wrapper scripts) that redirect execution to the correct Python version based on a `.python-version` file, the `PYENV_VERSION` environment variable, or a global default. The core is implemented in Bash with a plugin architecture: the `python-build` plugin handles compiling Python from source or downloading pre-built binaries (CPython, PyPy, Anaconda, Miniconda, Miniforge, GraalPy, etc.), while `pyenv-binary` (experimental) packages installed versions into relocatable archives. The codebase includes shell completions for Bash, Zsh, Fish, and PowerShell, a hook system for extensibility, and an optional C extension for fast `realpath` resolution. It is actively maintained with frequent releases, extensive CI testing across multiple OS/arch combinations, and a large community (45k+ stars). The repository is primarily an application (CLI tool) but also contains a substantial data-like collection of build definitions and patches for hundreds of Python versions.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 2 reusable components found
PowerShell/PowerShell ★ 55527 8468 APPLICATION

PowerShell 7 (pwsh) is a production-grade cross-platform automation and configuration shell: a scripting language runtime, command engine, and host application. The repository contains the core engine assembly (System.Management.Automation), console host, global tool shim, hundreds of built-in cmdlets, provider infrastructure, remoting, formatting/serialization, and a meta-package SDK for embedding PowerShell in .NET applications. In production it executes scripts and commands, pipelines objects through cmdlets and providers, formats results for console or serialized transport, and supports both local runspaces and remote sessions over WinRM/WSMan and SSH. The primary entry points are ConsoleShell.Start() for the interactive host, the GlobalToolShim for the dotnet tool distribution, and the PowerShell.Create() hosting API used by embedded scenarios.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
bobthecow/psysh ★ 9833 318 APPLICATION

PsySH is a production-grade interactive PHP shell, REPL, and runtime debugger. It accepts PHP input from a terminal, validates and rewrites it through a pipeline of PHP-Parser AST passes, evaluates it inside an isolated execution context, and renders results using a custom VarDumper presenter, formatters, and support for paging, themes, clipboard copy, and OSC 8 hyperlinks. It is distributed both as a Composer library and a self-updating PHAR binary, with primary entry points in src/functions.php (sh(), debug(), info(), bin()) and the bin/psysh launcher. The architecture is modular and interface-driven: a central Shell/Configuration core coordinates commands built on Symfony Console, multiple readline backends (GNU, libedit, userland, and a new experimental interactive readline), a completion engine with typed sources and refiners, legacy tab-completion matchers, execution-loop listeners, manual/documentation loaders, and updater strategies for both the PHP manual and PsySH itself. The main data flow is: terminal input -> readline -> code cleaning/validation -> eval -> output; completion and history are layered on top via AST analysis, fuzzy matching, suggestions, and JSONL-backed history persistence. The codebase is unusually thorough for a developer tool: nearly every subsystem has unit and integration tests, CI spans PHP 7.4 through 8.6 plus 32-bit and downstream consumer tests, and static analysis baselines manage compatibility across php-parser 4-5 and Symfony 3.4-7.x. The main weaknesses are the vendored Hoa terminal library, a wide compatibility surface requiring deprecation baselines and version shims, and the complexity of the experimental interactive readline, which creates maintenance risk. Overall this is a high-craft, actively maintained project with several genuinely reusable components.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
nushell/nushell ★ 40628 2293 APPLICATION

Nushell is a modern, cross-platform shell that treats data as structured (tables, records) rather than raw text streams. It features a pipeline-based architecture where commands process structured data and can be composed using the pipe operator. The shell is built as a modular Rust workspace with distinct crates for the core engine, parsing, command implementation, plugin system, and CLI interface. Nushell emphasizes extensibility through a plugin system where plugins run as separate processes communicating via JSON-RPC, providing isolation and language flexibility. Key features include built-in support for various data formats (JSON, CSV, Excel, Parquet), SQL-like querying capabilities, interactive exploration, and cross-platform compatibility with Windows, macOS, and Linux.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
charmbracelet/gum ★ 24491 556 APPLICATION

Gum is a command-line tool for creating glamorous shell scripts. It provides a collection of highly configurable, ready-to-use utilities for common interactive tasks such as choosing from a list, confirming actions, filtering items, prompting for input, writing multi-line text, displaying spinners, rendering tables, paging through content, styling text, joining text, formatting markdown/code/emoji, logging, and picking files. Each command is a standalone subcommand that reads from stdin and writes to stdout, making it composable in shell pipelines. The architecture is a monolithic Go application using the Kong argument parser to define subcommands. Each subcommand is implemented as a separate package with a model-view-update pattern using the Bubbles library for terminal UI components and Lip Gloss for styling. The main entry point (main.go) parses arguments and dispatches to the appropriate command. Configuration is done via command-line flags and environment variables, allowing deep customization of colors, borders, padding, and keybindings. Gum relies on several Charmbracelet libraries: Bubbles for interactive UI widgets (text input, textarea, spinner, table, viewport, file picker, paginator), Lip Gloss for text styling, Glamour for rendering markdown and code with syntax highlighting, and Log for structured logging. It also uses Kong for argument parsing, fuzzy matching library, and PTY handling for running commands with spinners. The codebase is well-structured, with clear separation of concerns and extensive use of Go's type system.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
hectorm/hblock ★ 1985 117 APPLICATION

hBlock is a POSIX-compliant shell script that downloads multiple ad, tracking, and malware domain blocklists from curated sources, processes them into a unified hosts file (or alternative formats like dnsmasq, unbound, adblock, Windows PowerShell), and installs it to block those domains at the system level. The core architecture is a single self-contained script (hblock) with a custom option parser, robust error handling, and support for parallel downloads, allow/deny lists, template-based output formatting, and subdomain filtering. It is not a reusable library but a complete CLI tool; however, its companion scripts (resource/alt-formats/*.sh) demonstrate a clean plugin pattern for generating multiple output formats, and the stats script (resources/stats/stats.sh) provides a reusable utility for analyzing domain lists against the Public Suffix List. The project is well-maintained, tested across multiple shells and platforms, and follows strict POSIX shell practices.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 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
xwmx/nb ★ 8445 259 APPLICATION

nb is a command-line note-taking, bookmarking, and archiving tool with Git-backed versioning, encryption, full-text search, tagging, pinning, and a built-in web server for browsing. It is implemented primarily as a single portable Bash script, with optional Go, Ksh, and Zsh wrappers. The architecture is a monolith CLI with a plugin system for extending subcommands and themes. Key entry points are the `nb` script and its aliases `bin/notes` and `bin/bookmark`. Data flows involve creating/editing notes in `NB_DIR`, where each notebook is a Git repository; operations create automatic commits, and an `.index` file per folder maintains ordering. The tool supports multiple notebooks, nested folders, encryption (OpenSSL/GPG), bookmark import from browsers, and remote sync via Git. The extensive test suite (2200+ BATS tests) covers all major features and edge cases.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
zfogg/ascii-chat ★ 199 10 APPLICATION

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.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
tw93/Mole ★ 69190 2450 APPLICATION

Mole is a macOS system maintenance CLI tool that provides a unified interface for cleaning caches, uninstalling applications, analyzing disk usage, monitoring system health, and optimizing performance. It combines two Go binaries (cmd/analyze for disk exploration with a Bubble Tea TUI, cmd/status for real-time system metrics) with an extensive shell script library for orchestration and system-level operations. The `mo` command dispatches to subcommands like `clean`, `uninstall`, `analyze`, `status`, `optimize`, `purge`, and `installer`. The architecture is hybrid: Go handles performance-critical tasks (concurrent directory scanning with semaphore-based concurrency, hardlink deduplication, gob-based caching, and interactive TUI rendering) while Bash scripts manage cleanup logic, safety guards (path identity snapshots, whitelists, process guards), Homebrew integration, and sudo session management. Key data flows include disk scanning with progress events and cache invalidation, system metrics collection via gopsutil and macOS commands (system_profiler, ioreg, pmset), and cleanup operations with dry-run previews and bounded timeouts. External dependencies include Homebrew (for cask detection and uninstall), macOS system commands (tmutil, plutil, diskutil, osascript), and Go modules (charmbracelet/bubbletea, lipgloss, gopsutil). The codebase emphasizes safety with fail-closed policies, identity re-verification before deletion, and extensive timeout handling. It supports both interactive TUI and non-interactive JSON output for scripting.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
pi-hole/pi-hole ★ 61141 3320 APPLICATION

Pi-hole is a network-wide ad blocking application that operates as a DNS sinkhole. The repository contains the core shell scripts for installation, configuration, and management of the Pi-hole system. The primary entry points are the `pihole` CLI command and `gravity.sh`, which downloads and compiles blocklists into a SQLite database. The architecture is a collection of bash scripts that orchestrate the FTLDNS daemon (a separate binary) and provide a command-line interface for allow/deny lists, querying, debugging, and updates. The code is well-structured with modular functions, error handling, and extensive test coverage across multiple Linux distributions. It is a mature, actively maintained project with a large community.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 1 reusable components found
$ loading more...
$ submit: