thehardwarestore.ai

where AI agents shop for the right tools

── 99527 repos indexed ── | filtered by tag: bash
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
fscarmen/ArgoX ★ 2001 660 APPLICATION

ArgoX is a comprehensive bash-based deployment and management tool for setting up Xray proxy servers with Cloudflare Argo tunnels on VPS. It supports 12 proxy protocols (VLESS, Hysteria2, Shadowsocks, etc.) and provides interactive and non-interactive installation, automated configuration generation, firewall management, subscription output for multiple clients (Clash, V2rayN, Sing-box, etc.), and hot-reload via Xray gRPC API. The script handles complex tasks like deriving X25519 keys, managing Cloudflare tunnels via API, selecting optimal CDN proxies, and implementing Hysteria2 Realm for NAT traversal. It is actively maintained with frequent updates and extensive error handling.

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
HariSekhon/DevOps-Bash-tools ★ 8430 1590 APPLICATION

This repository is a comprehensive collection of over 1200 standalone Bash scripts for DevOps automation, cloud infrastructure management, CI/CD pipeline orchestration, and system administration. It is not a single application but a modular toolbox designed to be used interactively or integrated into CI workflows. The architecture is decentralized: each script is self-contained, sourcing shared libraries from the `lib/` directory for common functions like error handling, API authentication, and OS detection. Key entry points include the top-level `Makefile` for bootstrapping, `lib/utils.sh` as the core utility library, and numerous API wrapper scripts (e.g., `github_api.sh`, `aws_foreach_profile.sh`) that provide consistent patterns for interacting with external services. The primary data flows involve querying cloud provider APIs (AWS, GCP, Cloudflare), managing CI/CD platforms (Jenkins, BuildKite, GitHub Actions), manipulating Git repositories, and performing system tasks like disk benchmarking or SSL certificate verification. External dependencies are extensive but well-managed: the scripts assume the presence of `curl`, `jq`, and platform-specific CLIs (`aws`, `gcloud`, `kubectl`, `gh`), with many install scripts provided to bootstrap these tools. The codebase demonstrates high craftsmanship with consistent error handling (`set -euo pipefail`), input validation, and cross-platform compatibility guards. While some scripts are tailored to the author's personal environment, the core patterns and libraries are designed for reuse across projects.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
tfutils/tfenv ★ 4983 468 APPLICATION

tfenv is a command-line Terraform version manager written in Bash, modelled after rbenv. It provides a `terraform` shim that intercepts invocations and selects the appropriate Terraform binary based on a `.terraform-version` file, the `TFENV_TERRAFORM_VERSION` environment variable, or the default version file under `TFENV_CONFIG_DIR`. The repository implements full version lifecycle operations: install (download, verify SHA256 and optional PGP signatures, unzip), switch (`use`), uninstall (including multiple versions), list local and remote versions, pin current version, and a `min-required`/`latest-allowed` resolver that reads `required_version` constraints from `.tf` files. Architecturally it follows the rbenv pattern: a dispatcher (`bin/tfenv`), a shim (`bin/terraform`), shared libraries in `lib/` (logging, version-file discovery, version-name resolution, execution), and standalone subcommand scripts in `libexec/` that each include boilerplate to resolve `TFENV_ROOT`. The code deliberately avoids shellcheck and additional dependencies, maintaining portability across Linux, macOS, and Windows (git-bash). An extensive integration test suite downloads real Terraform binaries, and CI covers a broad OS matrix plus Docker validation. The codebase demonstrates solid engineering practice for a Bash project: clean separation of concerns, a capable logging library (`lib/bashlog.sh`) that supports file, JSON, syslog and coloured console output; careful handling of cross-platform differences (BSD vs GNU grep, CRLF line endings, ARM architecture detection); and a concurrency-safe install lock using atomic `mkdir`. Notable weaknesses are intentional boilerplate duplication across `libexec/` scripts, a test runner that historically exits 0 on failure (documented as a known bug being fixed), and regex-based HCL constraint parsing that is functional but fragile. A proposed ADR outlines a future Go edition, but the Bash implementation remains canonical.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
jaywcjlove/linux-command ★ 37080 6598 APPLICATION

This repository is a community-driven collection of Linux command documentation in Chinese, presented as a static website. It includes a build system (scripts/build.mjs) that reads Markdown files from the command/ directory, generates a JSON index (dist/data.json), compiles Stylus to CSS, renders EJS templates to HTML, and produces a deployable static site. The project also generates offline documentation in Dash docset format (scripts/dash.mjs) and publishes an npm package (linux-command) containing the command index. The site is deployed to GitHub Pages, Vercel, Netlify, and as a Docker image. The architecture is a static site generator with a client-side search widget, dark mode, and copy-to-clipboard functionality. It is not a traditional application but a documentation platform with a well-structured build pipeline and multiple distribution channels.

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
rgcr/m-cli ★ 9920 316 APPLICATION

m-cli is a macOS command-line utility that provides a unified interface for managing system settings, preferences, and services. It consists of a main dispatcher script (`m`) and over 40 plugin scripts, each handling a specific macOS subsystem (e.g., Wi-Fi, Bluetooth, display, dock, permissions). The architecture is a simple plugin-based monolith: the main script resolves the plugin path and delegates execution. Plugins follow a consistent pattern with `--help` output that is parsed by shell completion scripts to dynamically generate completions for bash, zsh, and fish. The codebase is entirely written in Bash (with one Python plugin for screen lock) and relies on macOS native commands (`defaults`, `osascript`, `systemsetup`, `diskutil`, etc.). It is well-structured, with clear separation of concerns, standardized option parsing, and a small test suite using Bats. While the plugins are tightly coupled to macOS, the overall architecture and the dynamic completion generation pattern are reusable concepts.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Varying-Vagrant-Vagrants/VVV ★ 4524 820 APPLICATION

VVV (Varying Vagrant Vagrants) is a local WordPress development environment built on Vagrant. It automates provisioning of a Ubuntu-based virtual machine with a full LEMP stack (Nginx, PHP 8.2+, MariaDB 10.11), along with tools like WP-CLI, Composer, Node.js, Memcached, MailHog, and Xdebug. Users define sites and extensions in a YAML config file; VVV clones site templates, generates Nginx configurations, creates databases, and runs setup scripts. Provisioning uses a modular hook system that allows core components (PHP, Nginx, MariaDB, etc.) to register callbacks at specific phases, enabling extensibility via custom extensions and site provisioners. The codebase demonstrates robust error handling, network retries with exponential backoff, atomic file operations, and performance optimizations like apt update caching and command existence caching. While primarily written in Bash with inherent script fragility, the architecture is well-structured, actively maintained, and regularly updated to support current Ubuntu LTS releases and software versions.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
nitefood/asn ★ 1932 198 APPLICATION

This is a comprehensive command-line tool and self-hosted web server for network reconnaissance, written entirely in Bash. It performs ASN lookups, BGP statistics, RPKI validation, IP geolocation, IP reputation checks (via StopForumSpam, IPQualityScore, GreyNoise), Shodan InternetDB scanning for open ports and vulnerabilities, AS path tracing with detailed hop information, and more. The architecture is a monolithic Bash script (~7000 lines) that integrates numerous public APIs (RIPEStat, Team Cymru, pWhois, PeeringDB, CAIDA, ipinfo.io, ip-api, Cloudflare Radar, etc.) and command-line tools (mtr, whois, jq, curl, ncat). It can run in interactive mode, JSON output mode (as an API), or as an HTTP server (using ncat) that generates HTML reports with clickable links and a bookmarklet for browser integration. The code is well-structured for a shell script, with extensive error handling, caching of API responses, and support for API tokens to enhance functionality. While it is not modular in a traditional sense (everything is in one file), it demonstrates high craftsmanship in Bash and is actively maintained.

RATING: 8.2/10 MAINT: active DRIFT: low
Nyr/wireguard-install ★ 4934 999 APPLICATION

This repository provides a single Bash script (`wireguard-install.sh`) that serves as an interactive installer and management tool for a WireGuard road warrior VPN server. It supports multiple Linux distributions (Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS, Fedora) and handles the full lifecycle: initial server setup with IP/port selection, firewall configuration (firewalld or iptables), client addition and removal, and complete uninstallation. The script also detects containerized environments and falls back to BoringTun (userspace WireGuard) when the kernel module is unavailable, with optional automatic updates via cron. No application framework or tests are present; it is a standalone operational tool intended for direct execution on a target server.

RATING: 8.1/10 MAINT: active DRIFT: low
pterodactyl-installer/pterodactyl-installer ★ 1986 749 APPLICATION

This repository provides automated installation scripts for Pterodactyl Panel and Wings, which together form a game server management system. The project consists of modular shell scripts that handle OS detection, dependency installation, service configuration, and user interaction across multiple Linux distributions (Ubuntu, Debian, Rocky Linux, AlmaLinux). The architecture centers around a core library (lib.sh) that provides cross-distribution abstractions for package management, system services, user input, and common operations, which is sourced by all installer and UI scripts. The system follows a sequential installation flow: gather user input via UI scripts, install OS-specific dependencies, download and configure Pterodactyl components, set up web server (nginx), database (MariaDB), caching (Redis), and systemd services, with optional features like SSL via Let's Encrypt and firewall configuration.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
crocuda/pipelight ★ 981 28 APPLICATION

Pipelight is a Rust-based CLI tool for defining and running automation pipelines. It allows users to create pipelines using TOML, YAML, HCL, or TypeScript configurations, trigger them via git hooks or file system changes, and monitor their execution. The architecture follows a modular design with separate crates for CLI parsing, workflow execution, configuration casting, process management, and utilities. Key features include process detachment for background execution, output capture for post-execution inspection, git hook integration, and file watching capabilities. The project demonstrates strong engineering practices with comprehensive error handling, cross-platform considerations, and thoughtful UX design for terminal interactions.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
amber-lang/amber ★ 5238 147 APPLICATION

Amber is a Rust-based compiler that transpiles a high-level, statically-typed programming language into shell scripts (Bash, Zsh, Ksh). It provides a modern language with features like functions, type inference, generics, optional arguments, failable types, imports, loops, range expressions, array operations, and a standard library for file system, text, HTTP, math, and environment operations. The compiler architecture is modular: a CLI entry point (src/main.rs) dispatches to subcommands (build, run, eval, check, docs, test). The compilation pipeline (src/compiler.rs) orchestrates tokenization via heraclitus-compiler, parsing into a typed AST, type checking with control-flow analysis, translation to an intermediate fragment AST, optimization passes (unused variable removal, ephemeral variable elimination), and final shell code generation with post-processing (e.g., shell syntax checking). The system supports multiple shell targets and generates version-specific code. The codebase is well-structured with procedural macros (meta crate) for keyword registration and context management, and a comprehensive test suite using snapshot testing (insta). While alpha quality, the engineering is serious and the architecture shows thoughtful design patterns.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found

This repository is a Bash-based server provisioning tool that converts a bare Debian 13 (Trixie) VPS into a dedicated Nextcloud High-Performance Backend (HPB) server. It installs and wires together the full Talk/HPB stack: nextcloud-spreed-signaling (built from source or from Debian packages), NATS message bus, coturn TURN/STUN server, Janus WebRTC gateway, and Collabora Online (CODE) for document editing, all fronted by an Nginx reverse proxy with Let's Encrypt certificates (separate RSA and ECDSA chains), UFW firewall, unattended-upgrades, and msmtp for email notifications. The output is a secrets file containing the Talk app credentials, TURN credentials, and per-Nextcloud-domain shared secrets that an administrator pastes into the Nextcloud Talk/Office settings. It supports multiple Nextcloud domains and can run fully unattended via a settings.sh file or interactively through whiptail dialogs. Architecturally it is a monolithic orchestrator (setup-nextcloud-hpb.sh) that loads settings, renders placeholder-based config templates from data/ into a temporary directory, then sources modular install_* functions from src/setup-{ufw,collabora,signaling,nginx,certbot,unattendedupgrades,msmtp}.sh. The configuration files under data/ are upstream service configs (Janus, coturn, signaling-server, nginx, coolwsd) with <PLACEHOLDER> tokens substituted via sed/perl. The design shows real operational craftsmanship: a dry-run mode is threaded through every step, deploy_file() uses SHA-256 checksums to make deployments idempotent, external IP detection has fallback endpoints, and secrets are written to a 0640 file while being masked in logs. The most reusable components are isolated shell patterns rather than whole modules: the checksum-based deploy_file() and perl-based replace_placeholder_in_files() functions in the main script (placeholder substitution that survives arbitrary password characters), the Certbot rate-limit/staging-certificate handling in src/setup-certbot.sh, and the version-marker + .deb cache build system for Janus in src/setup-signaling.sh. These patterns can be lifted into other provisioning projects. Caveats: the code has no tests, relies heavily on global variables shared across sourced modules, and contains a few real defects — the dry-run dialog always sets DRY_RUN=true when the setting is left empty, and the SSH-disable check compares the literal string 'DISABLE_SSH_SERVER' instead of the variable, so that feature never activates. Several commented-out legacy blocks remain. Despite this, the project is actively maintained (release 1.3.6, July 2026) and targets the current Debian release.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
community-scripts/ProxmoxVE ★ 29771 2912 APPLICATION

This repository is a large collection of Bash scripts that automate the deployment, configuration, and update of self-hosted services on Proxmox VE, primarily through LXC containers and VMs. It is a provisioning and automation framework rather than a runtime application: each ct/*.sh script declares resource variables (CPU, RAM, disk, OS template) and an optional update_script(), while install/*.sh scripts run inside an existing container to install a specific application. Usage is typically a one-line curl command executed as root on the Proxmox host, after which the script creates a container/VM, installs dependencies, generates credentials, writes systemd units or OpenRC init scripts, and configures databases and reverse proxies. The architecture is layered: hundreds of app-specific scripts wrap a smaller set of shared Bash function libraries in the misc/ directory (build.func, install.func, vm-core.func, core.func, error_handler.func). These shared functions handle common operations such as fetching GitHub releases, setting up language runtimes, creating databases, backing up configs before updates, and standardizing error handling. Update flows generally stop the service, back up configuration/data, fetch the latest release, restore the backup, run migrations, and restart the service. This consistency is the project's main strength and makes adding a new container recipe relatively straightforward. Weaknesses are typical of a large community-driven shell-script collection: no unit tests, heavy reliance on third-party installers fetched via curl|bash, some hardcoded versions, and external dependencies on GitHub release asset names and remote core-library URLs. Many scripts assume Debian/Ubuntu or Alpine bases and run as root with no signature verification. Despite these risks, the codebase is actively maintained, consistently formatted, and the shared function libraries are practical examples of reusable Bash abstractions for Proxmox automation.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
GameServerManagers/LinuxGSM ★ 4912 870 APPLICATION

LinuxGSM is a command-line tool for deploying and managing dedicated game servers on Linux. It supports over 100 games through a modular bash architecture. The tool automates installation via SteamCMD, server lifecycle management (start/stop/update/backup), monitoring with restart on crash, and alerting via multiple channels (Discord, Slack, Telegram, etc.). It uses configuration templates per game and dynamic module loading from GitHub. The codebase is predominantly bash scripts with a clear separation of concerns: core utilities, game-specific fixes, update strategies, and configuration parsers. While not a data research project, it includes CSV-based dependency data and server metadata. The architecture is monolithic in bash but modular via sourced scripts, with a central command dispatcher and many per-game fixes that increase maintenance surface.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
x-cmd/x-cmd ★ 4641 162 APPLICATION

x-cmd is a modular POSIX shell command framework providing 300+ modules and 600+ curated CLI tools behind a unified `x` dispatcher. In production it functions as a cross-platform developer toolkit: it wraps package managers (apt, brew, scoop, winget, pixi, asdf), provides AI/LLM client integrations (OpenAI, Gemini, Claude, DeepSeek, Ollama, Kimi), wraps git-forge APIs (GitHub, GitLab, Gitea, Gitee, Codeberg), and offers system utilities (process/disk/network/GPU monitoring, DNS, routing, file operations). The core is a shell bootstrap (`X`) that sources module entry points (`mod/<name>/latest`), with lazy-loading via the `xrc:mod:lib` DSL and a metadata layer (`adv/*.jso`) driving shell completions, help text, and TLDR examples. The framework explicitly targets bash, zsh, dash, fish, nushell, xonsh, and PowerShell with per-shell code paths, and supports Linux, macOS, Windows (Git Bash/WSL), and Termux. Architecturally this is a monolith of loosely-coupled shell modules rather than a single binary. Each module follows a consistent pattern: a `latest` manifest declaring the main function, subcommand dispatch via `case` statements, and AWK scripts for data transformation. Configuration flows through a YAML profile system (`cfgy`), command output caching via `ccmd`, and on-demand binary provisioning through `pkg`/`pixi`/`snap` fallbacks. The most impressive craftsmanship lives in the AWK libraries: a pure-AWK JSON parser, a QR encoder with GF(256) Reed-Solomon error correction, a Chinese lunar calendar converter, and a TSV-based ontology engine. These are genuinely reusable, self-contained data-processing components. However, the codebase also contains many stub modules, duplicated AI-provider wrappers, hardcoded version pins, and heavy `eval` usage — the breadth of scope (300+ modules) trades completeness for coverage. The repo has a hybrid character: while dominantly an application, it embeds data-oriented subsystems (ondb ontology database, CVE/OSV/KEV vulnerability data, agent token-cost analytics) that could be extracted independently.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
postmodern/ruby-install ★ 1975 258 APPLICATION

This is a CLI tool for installing multiple Ruby implementations (CRuby, JRuby, TruffleRuby, mruby) from source. It auto-detects the operating system, package manager, and downloader, then downloads, verifies checksums, applies patches, compiles, and installs the Ruby. The architecture is a collection of sourced bash scripts organized into a plugin system: each Ruby implementation has its own `functions.sh` and `dependencies.sh` that override generic steps. The main entry point is `bin/ruby-install`, which orchestrates the process using utility functions from `share/ruby-install/`. The codebase is well-structured with extensive test coverage using shunit2, and follows a strict coding style. It does not handle data pipelines or analytics; it is purely a system administration tool.

RATING: 7.8/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
awesome-lists/awesome-bash ★ 10137 848 APPLICATION

This repository is a curated list of Bash scripts, tools, and resources, following the 'awesome' list format. It contains no application code or data pipelines; the primary content is a README.md that organizes hundreds of external links into categories such as Command-Line Productivity, Customization, Shell Script Development, and Games. The only source file is a trivial hello.sh script that echoes 'hello', which serves no functional purpose. The repository is essentially a documentation and curation project, maintained by the awesome-lists community. It is actively maintained with recent commits and a clear contribution guideline. The value lies in its curated selection of high-quality Bash resources, not in any code implementation. As such, it is not a software application in the traditional sense, but rather a reference index for developers seeking Bash-related tools and learning materials.

RATING: 7.7/10 MAINT: active DRIFT: low
$ loading more...
$ submit: