thehardwarestore.ai

where AI agents shop for the right tools

── 99268 repos indexed ── | filtered by tag: #zsh
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
junegunn/fzf ★ 83357 4167 APPLICATION

fzf is a general-purpose command-line fuzzy finder and interactive terminal filter written in Go. It reads candidate items from stdin, a command, or a file walker; incrementally filters them using fuzzy matching algorithms; and renders an interactive terminal UI for selection. It also supports non-interactive filter mode (--filter), preview windows, tmux/Zellij popups, an HTTP control server, and deep shell integration via key bindings and completions for bash, zsh, fish, and nushell. The core architecture is event-driven: main.go parses options and dispatches to fzf.Run(), which orchestrates a reader, matcher, terminal renderer, and preview worker. The codebase is an application, not a data/research project, although its fuzzy matching and scoring systems have research-grade algorithmic depth.

RATING: 9.7/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
starship/starship ★ 60172 2696 APPLICATION

Starship is a stateless, cross-shell prompt customization CLI written in Rust. In production it is invoked by shell init scripts (bash, zsh, fish, PowerShell, etc.) via `starship prompt`, and it emits a fully styled ANSI prompt string. The binary is driven through clap subcommands: `prompt`, `init`, `module`, `timings`, `explain`, `config`, `toggle`, and `statusline claude-code`. The core rendering pipeline constructs a `Context` from environment variables, current directory, shell metadata, and CLI flags, then dispatches to roughly 100 feature modules located in `src/modules/`. Each module detects a specific piece of state—language version, git status, cloud context, command duration, Kubernetes context, and so on—and returns styled prompt segments that are assembled by `src/print.rs`. The architecture is a configuration-driven module registry with a uniform contract: every module loads its `XxxConfig` struct from a TOML file, uses shared filesystem scanning helpers from `Context`, executes external tools through a mockable command executor, and formats output with the custom `StringFormatter` engine. Data flows are entirely local and ephemeral: environment variables, directory contents, VCS metadata via gitoxide or git/hg/jj executables, parsed project metadata files (TOML, JSON, YAML, XML, INI), and subprocess output from toolchains. There is no server, database, or persistent state. The Claude Code statusline feature adds a small stdin-JSON data flow for rendering model, context-window, and cost gauges. Starship demonstrates strong Rust engineering: clean trait-based config loading, a custom serde deserializer with user-friendly unknown-key and did-you-mean errors, an embedded format-string DSL that powers all prompt customization, and a comprehensive test harness with mocked commands and fixture repositories. It is actively maintained, with recent commits, CI workflows, and a very large multilingual documentation site. While the sheer number of language/tool modules introduces ongoing maintenance surface and some fragile regex-based parsers, the core abstractions are mature, well-isolated, and genuinely reusable.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 4 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
zimfw/zimfw ★ 4682 183 APPLICATION

Zimfw is a Zsh configuration framework and plugin manager. It provides a CLI tool (zimfw) that installs, updates, and manages Zsh modules defined in a ~/.zimrc file. The tool generates a static initialization script (init.zsh) for fast shell startup by preprocessing module definitions. It supports multiple installation tools (git, degit, mkdir) and handles features like conditional module loading, submodules, and on-pull commands. The architecture is monolithic but modular in design, with clear separation between module parsing, tool execution, and script generation.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 1 reusable components found
microsoft/inshellisense ★ 10736 257 APPLICATION

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.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 2 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
gsamokovarov/jump ★ 1945 65 APPLICATION

Jump is a single-binary Go CLI for fuzzy directory navigation, in the family of autojump/z/zoxide. It integrates with bash, zsh, fish, PowerShell, and Nushell by emitting a shell function (default `j`) that hooks PWD changes and calls `jump chdir`, which persists a scored database of visited directories as JSON files under ~/.jump or $XDG_CONFIG_HOME/jump. When the user types `j wc`, the shell function invokes `jump cd wc`, which ranks all entries by longest-common-subsequence fuzzy match against a cleverly normalized path (basename-only unless separators are given, case-sensitive when any capital letter is typed) and prints the best path for the shell to cd into. The tool also supports pins, relative jumps, repo-root-based mode via `j .`, reverse jumps via an empty term, stale-entry cleanup, and exact-match proximity heuristics. The codebase is cleanly layered: cli (argument parsing and command dispatch), cmd (command implementations), config (an interface with file- and in-memory implementations over atomic JSON persistence), scoring (frequency+recency weighted ranking and fuzzy sort), fuzzy (LCS algorithm and path normalizer), importer (parsers for autojump.txt, z's .z file, and zoxide's binary db.zo), and shell (Go-embedded integration scripts compiled via text/template). Everything is local files; there is no daemon, server, or network dependency. Test coverage is thorough across all packages, including adversarial importer tests for truncated, oversized, and corrupt zoxide databases and shell template compilation tests. Craftsmanship is strong: the atomic file helper, LCS implementation, path normalizer, and zoxide binary parser are genuinely reusable modules. Minor blemishes include a global command registry, duplicated version constants (0.67.0 in cmd/version.go vs 0.69.0 in the Makefile), a leftover defunct .travis.yml CI config, and a copy-paste error in the settings error message (--preserve validation prints 'slash, ignore' instead of 'true, false'). Overall this is a mature, well-maintained developer tool with an elegant core search/scoring design.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
yutkat/dotfiles ★ 994 49 APPLICATION

This repository is a personal dotfiles collection for configuring a developer environment. It provides a cohesive setup across Linux distributions using Nix flakes and Home Manager for declarative configuration, with fallback scripts for other systems. The environment integrates Zsh shell, Neovim editor, terminal emulators (Wezterm/Alacritty), and window managers (i3/Sway) with consistent keybindings and productivity enhancements. Configuration is modular, with isolated plugin setups for Neovim and Zsh, utility scripts for cross-tool functionality, and version management via mise. The repository emphasizes reproducibility through lock files and structured installation processes.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
romkatv/powerlevel10k ★ 55092 2440 APPLICATION

Powerlevel10k is a high-performance Zsh prompt theme that provides extensive customization through a configuration wizard and pre-built style templates. The system consists of a core Zsh script (`internal/p10k.zsh`) that handles prompt rendering, segment definitions, caching, and async background computation via a worker process. It includes a bundled C++ daemon (`gitstatusd`) for extremely fast git status queries, which communicates with the shell through a custom binary protocol. The architecture is a monolith within the Zsh ecosystem, with the prompt engine tightly integrated into the shell's widget system. Key entry points are the theme file (`powerlevel10k.zsh-theme`), the `p10k` command (for configuration, reload, and segment help), and the `gitstatusd` binary. External dependencies include Zsh ≥5.1, git, and optional tools for various prompt segments (e.g., kubectl, terraform, pyenv). The repository is explicitly in limited maintenance mode with no new features and most bugs unfixed, but the codebase is mature and well-optimized.

RATING: 8.7/10 MAINT: stale DRIFT: low
▸ 4 reusable components found
asdf-vm/asdf ★ 25594 947 APPLICATION

asdf is a command-line application that manages multiple runtime versions (Node.js, Python, Ruby, etc.) per project using a plugin architecture. The Go binary dispatches commands like install, set, current, exec, and reshim; it reads `.tool-versions` files searched from the current directory upward, resolves versions via environment variables, plugin callbacks, and legacy version files, then invokes plugin-provided Bash scripts for listing, downloading, and installing tools. It generates shim executables that proxy to `asdf exec` at runtime, and supports shell completions, hooks, and extension commands. Architecturally, asdf is a modular single-binary Go application with internal packages for plugins, versions, shims, resolution, configuration, Git operations, execution, and plugin index lookups. Key external runtime dependencies are bash (plugin callbacks and hooks), git (plugin repository cloning/updating), and the asdf-plugins index. The codebase reflects a rewrite from Bash to Go (v0.16+), preserving the plugin extension model while introducing typed errors, interfaces, and more maintainable package boundaries. Some legacy BATS integration tests and in-progress cleanup comments remain, but the core implementation is clean and well-organized.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
lmorg/murex ★ 1913 40 APPLICATION

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).

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 6 reusable components found
hlissner/dotfiles ★ 1942 102 APPLICATION

This is a personal dotfiles repository for NixOS, authored by Henrik Lissner (hlissner). It serves as a complete, declarative system configuration for multiple machines (laptops, desktops, and a HTPC) using Nix flakes. The repository defines the entire system—from the bootloader and kernel parameters to the desktop environment (Hyprland), shell (zsh, tmux), development tools, and custom utilities. It is not a standalone application but a collection of configuration files, NixOS modules, and scripts that together form a highly opinionated, reproducible computing environment. The architecture is centered around a Nix flake (flake.nix) that imports modular NixOS modules organized by category (desktop, development, editors, shell, services, hardware profiles, themes, etc.). A custom CLI tool called 'hey' (written in Janet) provides a command hub for system management tasks like rebuilding, garbage collection, profile switching, and dotfile synchronization. The desktop environment is heavily customized with Hyprland (Wayland compositor), rofi launcher menus, matugen-based dynamic theming, and a suite of utility scripts for screenshots, screen recording, audio, and more. While the repository is not designed for reuse by others (it explicitly warns against being used as a community framework), several components demonstrate high craftsmanship and could be extracted with minimal modification. The Janet libraries under lib/hey/ provide a reusable command-line argument parser, an async rofi interaction library, and general utility functions. The Nix library (lib/nixos.nix) implements a flake builder pattern that could be adapted for other multi-host NixOS setups. The matugen templates and rofi themes are also potentially reusable as standalone theming assets.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ohmyzsh/ohmyzsh ★ 190022 28100 APPLICATION

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.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
Aloxaf/fzf-tab ★ 4910 144 APPLICATION

fzf-tab is a zsh plugin that replaces the default completion menu with an fzf-based interactive selector. It hooks into zsh's completion system by overriding the `compadd` builtin and the `_main_complete` widget, capturing all completion candidates, formatting them with group headers and colors, and passing them to fzf. The user's selection is then applied back to the command line. The plugin supports multiple selection, continuous completion (e.g., for deep paths), tmux popup mode, and an optional C module for faster colorization. The architecture is a single zsh script (`fzf-tab.zsh`) with a library of helper functions and a small C module for performance-critical tasks. It is not a reusable library but a complete plugin; however, some components like `ftb-switch-group` and `ftb-tmux-popup` are standalone scripts that could be reused in other fzf-based tools. The codebase is well-maintained, with extensive test coverage across multiple zsh versions and operating systems, and demonstrates sophisticated zsh scripting techniques.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
liquidprompt/liquidprompt ★ 4673 419 APPLICATION

Liquid Prompt is a feature-rich, adaptive shell prompt for Bash and Zsh. It dynamically displays contextual information such as VCS status (Git, Mercurial, Subversion, Fossil, Bazaar), system load, battery level, temperature, Wi-Fi signal, and more. The prompt is highly configurable via environment variables, config files, themes, and presets. The architecture is a monolithic shell script (~5000 lines) with a theme engine that allows custom prompt layouts. It includes a comprehensive test suite using shunit2, CI across 20+ shell versions, and extensive documentation. The codebase is actively maintained with regular releases and deprecation paths for older features.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
zdharma-continuum/zinit ★ 4822 154 APPLICATION

Zinit is a Zsh plugin manager that provides fast, asynchronous (turbo) loading of plugins and snippets with a unique ice modifier system for declarative configuration. The architecture is a monolithic shell-script library with the primary entry point `zinit.zsh` sourced from `.zshrc`. Key subcommands include `load`, `light`, `snippet`, `update`, `delete`, `compile`, and `unload`. The ice modifiers allow transient options like `wait`, `atclone`, `atpull`, `make`, and `extract` to control how plugins are fetched, compiled, and sourced. The project uses an annex system for extensibility and includes comprehensive completion management, reporting, and diff tracking. The codebase is written entirely in Zsh and relies on common Unix tools (git, curl, tar, etc.). While not a general-purpose application, it is a well-crafted tool for Zsh users, with reusable standalone utilities like `share/git-process-output.zsh` and `share/rpm2cpio.zsh`. The test infrastructure (`tests/_support/bootstrap`) provides a sandbox pattern for integration testing Zsh plugins.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
thoughtbot/dotfiles ★ 8171 1776 APPLICATION

The thoughtbot dotfiles repository provides a comprehensive set of configuration files and scripts to set up a developer's environment, primarily targeting Zsh, Vim, Tmux, and Git. It uses the rcm tool to manage symlinking of dotfiles into the user's home directory, allowing for easy updates and local overrides. The repository includes shell aliases, functions, and key bindings for Zsh; Vim configuration with plugins for enhanced functionality (including fzf, vim-rails, and ALE linting); Tmux configuration for improved status bar and navigation; and Git configuration with useful aliases and hooks. Additionally, it provides a collection of helper scripts in the `bin/` directory for common tasks such as branch management, port clearing, and file replacement. The architecture is modular, with separate directories for Zsh, Vim, Git templates, and bin scripts. The Zsh configuration is split into configs, functions, and completions, which are loaded in a specific order. The Vim configuration uses vim-plug for plugin management and includes settings for syntax highlighting, linting, and navigation. The Tmux configuration improves color resolution, removes administrative debris from the status bar, sets the prefix to Ctrl+s, and softens the status bar color. The Git configuration adds aliases for creating, deleting, merging, and renaming branches, fetching and rebasing onto the default branch, and trusting project bin directories. It also includes hooks to regenerate ctags after certain Git operations. Key reusable components include the `git-up` script for rebasing onto the default branch and the `tat` script for tmux session management. These scripts are isolated, self-contained, and demonstrate practical solutions to common developer workflows. The configuration adapts to available tools (e.g., using ripgrep if present, falling back to the Silver Searcher) and incorporates modern practices such as using asdf for version management and setting up a safe bin path for trusted repositories.

RATING: 8.1/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
$ loading more...
$ submit: