thehardwarestore.ai

where AI agents shop for the right tools

── 99717 repos indexed ── | filtered by tag: developer-tools
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
yamadashy/repomix β˜… 28790 1579 APPLICATION

Repomix is a multi-interface tool that packs code repositories into a single AI-optimized file for consumption by large language models (LLMs) like ChatGPT, Claude, and Gemini. It operates as a CLI tool, a library, an MCP (Model Context Protocol) server, a GitHub Action, a browser extension, and a web service. The core pipeline discovers files respecting ignore patterns, reads them with binary and encoding detection, optionally compresses code via tree-sitter (removing implementation details while preserving signatures), scans for secrets with Secretlint, and generates output in XML, Markdown, JSON, or plain text formats. It also provides token counting with configurable encodings and disk-backed caching, git integration (diffs, logs, change-frequency sorting), and skill generation for Claude Agent. Architecturally, the project is modular with a clear separation between the core library (src/core/), CLI interface (src/cli/), MCP server (src/mcp/), website (website/), and browser extension (browser/). The core uses dependency injection for testability, worker threads (tinypool) for parallel file processing and metrics, and a strategy pattern for language-specific tree-sitter parsing. Configuration is loaded from JSON/JS/TS files and merged with CLI options. The codebase demonstrates strong engineering practices including comprehensive test coverage, security hardening (SSRF protection, git command sanitization, sandboxed MCP tools), and performance optimizations (token count cache, bounded concurrency, fast binary detection). The project is actively maintained with frequent releases, a large community (28k+ stars), and extensive documentation in 15 languages. While the core is well-architected, the multiple distribution channels and large dependency surface introduce maintenance overhead. Some duplication exists between the website and CLI validation logic, and the tree-sitter WASM management is fragile. Overall, it is a high-quality, production-ready tool with several reusable components.

RATING: 9.4/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
OthmanAdi/planning-with-files β˜… 27396 2270 APPLICATION

planning-with-files is a persistent, file-based task-planning system for AI coding agents. It maintains task_plan.md, findings.md, and progress.md on disk and wires into agent lifecycle hooks (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Stop) across Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, Pi, Hermes, and a dozen other assistants, re-injecting plan context into the model's context window on every turn. Plans survive context loss, /clear, compaction, and crashes; a session-catchup mechanism recovers prior transcripts. A v3 gated mode can block the agent from stopping until plan phases complete, backed by an append-only JSONL run ledger, stall detection, and SHA-256 plan attestation that makes hooks refuse to inject tampered content. Architecturally it is a distribution hub rather than a single application: a canonical skill under skills/planning-with-files is mirrored byte-identical into 15+ IDE-specific directories, with native TypeScript plugins (OpenCode, Pi, DSH), a Python plugin (Hermes), and shell/PowerShell hook dispatchers. Plan resolution is a fail-closed chain (PLAN_ID env β†’ .active_plan pointer β†’ newest plan dir β†’ legacy root) guarded by slug validation, containment checks, symlink/junction rejection, and strict PWF_PLAN_ROOT pinning. The engineering is unusually rigorous for an agent-skill repo: 400+ pytest tests, byte-parity tests between shell/PowerShell/Python/TypeScript twins, a PATH-stub BSD userland simulation to catch GNU-only flags that silently fail on macOS, and heavy Windows PowerShell 5.1 / Git Bash portability hardening. Non-obvious patterns include KV-cache-stable injection output (no timestamps or free text in summaries, wall-clock normalization to T00:00:00Z) and an mtime-keyed attestation cache for performance. The repository is a developer tool, not a data/research project; although it ships benchmark and eval documentation (assertion pass rates, recovery-turn comparisons), those are verification evidence for the skill, not analysis artifacts. It is actively maintained at v3.24.0 with recent commits, 4 open issues, and 100+ releases; technical drift is low, with the main maintainability risk being deliberate duplication across 20+ canonical mirrors, mitigated by sync-ide-folders.py and parity tests but still a possible source of silent drift.

RATING: 9.4/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
Gentleman-Programming/gentle-ai β˜… 7801 845 APPLICATION

Gentle-AI is a CLI-driven application that manages AI coding agents through installation, configuration, and review workflows. It provides a deterministic engineering environment with features like persistent memory (Engramβ„’), receipt-driven development (RDD) for verifiable code reviews, and telemetry collection. The architecture is modular, separating concerns into CLI commands, agent adapters, components (like Skills and Context7), review transaction logic, state management, and a text-based user interface. The system interacts with external AI agents (Claude Code, OpenCode, Cursor, etc.) via adapter patterns, manages state in $HOME/.gentle-ai, and supports cross-platform operation (Linux, macOS, Windows). Key entry points include the gentle-ai CLI command and TUI screens for interactive workflows.

RATING: 9.4/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
garrytan/gstack β˜… 134711 20061 APPLICATION

Gstack is a production-grade AI agent skill framework and headless browser automation toolchain designed for Claude Code, Codex, Cursor, and other coding agents. It provides a structured skill system (50+ slash-command skills like `/ship`, `/review`, `/plan-ceo-review`) with a resolver pipeline that generates per-host `SKILL.md` templates from TypeScript sources. The repo also contains a fully functional headless browser daemon (`browse/`) with anti-bot stealth, multi-layer prompt injection defense (canary tokens, ML classifiers, URL blocklist, envelope sentinel), CDP escape hatch, SOCKS5 proxy bridge, and secure file I/O. Additional subsystems include markdown-to-PDF generation (`make-pdf/`), iOS QA automation (`ios-qa/`), design mockup generation (`design/`), a secret redaction engine, and a cross-session knowledge base (gbrain). The codebase is unusually well-tested with extensive unit, integration, and periodic paid E2E tests against real LLM APIs. While primarily an application, it includes data pipeline components like telemetry aggregation, eval result stores, and a brain cache specification with TTL-based entities and calibration weights, making it a hybrid with strong data engineering discipline.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
Yeachan-Heo/oh-my-claudecode β˜… 39528 3534 APPLICATION

Oh-My-ClaudeCode (OMC) is a multi-agent orchestration layer for Claude Code, Anthropic's AI coding assistant. It extends Claude Code with a plugin system, custom MCP tools, a team collaboration engine, a real-time HUD, and a rich hook system. The system is implemented in TypeScript and runs as a CLI tool (`omc`), an npm package (`oh-my-claude-sisyphus`), and a Claude Code plugin. It manages autonomous coding pipelines (autopilot, ralph), multi-worker team sessions via tmux, skill learning and injection, and provides extensive tooling including LSP integration, AST analysis, Python REPL, and git-based checkpoints. Architecturally, OMC is a modular monolith with clear separation: a CLI entry point (Commander-based), a hook registry with ~20+ lifecycle hooks (session-end, pre-tool-use, persistent-mode, etc.), a team subsystem with state machines and tmux-based worker management, a HUD rendering engine, and a standalone MCP server exposing 33+ tools. The system integrates with multiple AI providers (Claude, Codex, Gemini, Grok, Cursor) and git hosting providers (GitHub, GitLab, Azure DevOps, Bitbucket, Gitea). External dependencies include `@anthropic-ai/claude-agent-sdk`, `@modelcontextprotocol/sdk`, `better-sqlite3`, `zod`, and `commander`. Key data flows include: user input β†’ CLI or Claude Code hook β†’ hook dispatcher β†’ feature modules (autopilot, team, skills) β†’ tool execution β†’ state persistence (filesystem, SQLite). The system maintains extensive state on disk (`.omc/state/`, session transcripts, team events, skill files) and uses file-based locking for concurrency safety. The JEV shadow judgment system provides non-blocking evaluation of heuristic decisions against an external API for quality monitoring. The codebase demonstrates strong engineering practices: extensive test coverage (~3000+ tests), modular architecture with clear interfaces, atomic file operations, and security-conscious utilities (SSRF guard, token redaction, path traversal prevention). It is actively maintained with frequent releases and responsive issue triage.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
FalkorDB/FalkorDB β˜… 10455 577 APPLICATION

FalkorDB is a graph database implemented as a Redis module, written in Rust. It supports the Cypher query language and uses sparse matrices and GraphBLAS/LAGraph for efficient graph operations. The system features MVCC for concurrency control, a batch-oriented query execution engine, and pluggable indexing (including native FalkorDB index for range, full-text, and vector search). Key architectural layers include the Redis module interface, query parser/planner, runtime operators, and storage backend. The codebase demonstrates strong modularity and includes several reusable patterns such as copy-on-write for MVCC, a storage backend seam, thread-local string interning, batched result emission, and a pipeline of query optimization passes.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
jazzband/django-silk β˜… 4995 379 APPLICATION

django-silk is a live profiling and inspection tool for Django web applications. In production, it integrates as middleware to intercept every HTTP request/response, capturing request/response bodies, headers, database queries (via monkey-patching SQLCompiler.execute_sql), and code profiling data (via a decorator, context manager, or dynamic injection). It stores this data in Django ORM models (Request, Response, SQLQuery, Profile) with optional file-based storage for binary profiler results, and provides a comprehensive web UI with filtering, sorting, SQL analysis (including EXPLAIN), code generation (curl/Django test client), and graph visualization (using gprof2dot). The architecture centers on a singleton DataCollector that accumulates data during request processing and persists it upon response completion, with configurable retention policies via management commands and model-level garbage collection.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
pgcentralfoundation/pgrx β˜… 4802 337 APPLICATION

pgrx is a comprehensive Rust framework for building PostgreSQL extensions. It provides a runtime library (pgrx) with safe wrappers around PostgreSQL internals (memory contexts, SPI, datum types, triggers, aggregates, background workers, etc.), a set of procedural macros (pgrx-macros) that automatically generate SQL DDL from Rust code at compile time, and a CLI tool (cargo-pgrx) that manages the full extension lifecycle: project creation, building, testing, installation, and schema generation. The framework supports PostgreSQL versions 13 through 19 with version-specific FFI bindings generated by pgrx-bindgen. The architecture is a multi-crate workspace. The core library is linked into extensions at runtime, while the macros and SQL entity graph (pgrx-sql-entity-graph) operate at compile time to generate wrapper functions and embed SQL metadata into the extension binary. The cargo-pgrx tool orchestrates building, installing, and testing extensions against live PostgreSQL instances. It can download and compile PostgreSQL automatically for development environments. Key entry points for developers include `cargo pgrx init` to scaffold a new extension, `cargo pgrx run` to start a PostgreSQL instance with the extension loaded, `cargo pgrx test` to run tests, and `cargo pgrx install` to deploy the extension. The runtime entry point is the extension's shared library, which uses the `pg_module_magic!` macro for initialization and `#[pg_extern]` for defining SQL-callable functions. External dependencies include PostgreSQL (required at runtime), the Rust toolchain, libclang (for bindgen during development), and various system libraries. The framework is designed to be cross-platform (Linux, macOS, Windows) and supports cross-compilation for different PostgreSQL targets.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
Graphify-Labs/graphify β˜… 123305 11883 APPLICATION

Graphify is a CLI tool and library that extracts structural and semantic knowledge graphs from source code across 36+ programming languages. It parses files using tree-sitter grammars, builds a graph of nodes (functions, classes, modules, etc.) and edges (calls, imports, inheritance, etc.), performs community detection via Leiden/Louvain, and generates reports, wikis, and exports to formats like Obsidian, Neo4j, and FalkorDB. The system integrates with AI coding assistants through an MCP server (stdio/HTTP), skill files (SKILL.md, CLAUDE.md), and git hooks for automatic graph updates. Key entry points include `graphify extract`, `graphify query`, `graphify serve`, and `graphify install`. External dependencies include tree-sitter grammars, LLM APIs (OpenAI, Anthropic, Gemini, Ollama), and optional databases. The architecture is modular: per-language extractors in `graphify/extractors/`, graph assembly in `build.py`, clustering in `cluster.py`, and export in `export.py`. The codebase demonstrates strong engineering practices with extensive tests, atomic file writes, security validation (SSRF, path traversal), and cross-platform support.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
rtk-ai/rtk β˜… 81928 5198 APPLICATION

rtk is a Rust CLI proxy and hook system designed to minimize LLM token consumption for AI coding agents by filtering and compressing the output of shell commands. It operates as a command wrapper that intercepts commands like git status, pytest, or cargo test before they reach an agent's context window, runs the real tool, and emits a compact, token-optimized summary while preserving diagnostic value. The tool includes a sophisticated architecture: a core runner with a 'never-worse' guard that ensures filtered output never exceeds raw output in size, tiered parsing (JSON β†’ regex β†’ passthrough) for dozens of ecosystems, a declarative TOML filter DSL compiled into the binary, and a SQLite-based recall store for content-addressed output retrieval. It also features a permission model for hooks that can allow, deny, or ask on command rewrites, and integrates with 18+ AI agents (Claude Code, Copilot, Cursor, etc.) via custom hook formats. The repo is a single Rust binary with subcommands for execution, analytics (rtk gain), and session discovery (rtk discover), supported by an extensive test suite with fixture-based golden tests. While not a data research project, it incorporates data-driven elements like token savings accounting and telemetry, but its dominant character is a high-craft CLI application.

RATING: 9.2/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
hoppscotch/hoppscotch β˜… 80561 6143 APPLICATION

Hoppscotch is an open-source, multi-platform API development ecosystem that serves as a full-featured alternative to Postman. It supports REST, GraphQL, WebSocket, SSE, Socket.IO, and MQTT protocols, with advanced features like pre-request and test scripting (sandboxed), environment variables, team collaboration, mock servers, published documentation, AI assistant, and extensive import/export (Postman, Insomnia, OpenAPI, HAR, cURL). The monorepo is organized into packages: a Vue 3 frontend (hoppscotch-common), a NestJS/GraphQL/Prisma backend (hoppscotch-backend), a Tauri desktop app (hoppscotch-desktop), a Node.js CLI (hoppscotch-cli), a Tauri agent for interceptor (hoppscotch-agent), a shared kernel abstraction layer (hoppscotch-kernel), versioned data schemas (hoppscotch-data), a JavaScript sandbox engine (hoppscotch-js-sandbox), and self-hosted web/admin panels. The architecture emphasizes functional programming with fp-ts, reactive state management via RxJS DispatchingStores, dependency injection with dioc, and a kernel/relay pattern that abstracts HTTP execution across platforms. The codebase is actively maintained with extensive test coverage and demonstrates high craftsmanship in areas like versioned data migration, sandboxed script execution, and cross-platform kernel design.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
Aider-AI/aider β˜… 49213 4999 APPLICATION

Aider is a mature, well-architected CLI application that enables AI pair programming in the terminal. It integrates with 100+ LLMs via LiteLLM to help developers edit code in local git repositories. The system is built around a sophisticated coder abstraction that supports multiple edit formats (whole file, diff, search/replace blocks, unified diffs) to accommodate different LLM capabilities. The architecture is plugin-based with a clear separation between the main CLI loop, coder implementations, model management, and repository mapping. Aider automatically commits changes with sensible commit messages, provides linting/testing integration, and supports advanced features like prompt caching, voice input, and a browser-based GUI. The codebase demonstrates strong engineering practices with comprehensive testing, CI/CD pipelines, and careful dependency management. The repo map feature using tree-sitter for code analysis is particularly notable, providing intelligent context about codebases to LLMs. The project maintains high quality through extensive test coverage, pre-commit hooks, and automated benchmarking against coding tasks.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
herdrdev/herdr β˜… 44188 3502 APPLICATION

Herdr is a terminal workspace manager designed for AI coding agents. It features a client-server architecture where a persistent background server manages terminal panes, workspaces, and tabs, while thin clients (TUI and CLI) connect via Unix sockets/named pipes. The system enables detaching and reattaching sessions without losing agent state, provides agent-native control through CLI/socket API for spawning and managing AI agents (Claude, Codex, Copilot, etc.), and maintains session persistence across restarts and network disruptions. It includes a plugin system for extensibility, comprehensive AI agent integrations, and a rich terminal interface built with Ratatui.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
ComposioHQ/composio β˜… 30480 4846 APPLICATION

Composio is a production-grade, dual-language SDK monorepo that connects AI agents to external services (Gmail, GitHub, Slack, Notion, Salesforce, and hundreds more) through a unified tool abstraction. In production it operates as the client layer of the Composio platform: applications create a Composio session bound to a user_id, discover toolkits, manage OAuth auth-configs and connected accounts, and execute tool calls either remotely or via a session-scoped Tool Router that also exposes hosted MCP endpoints. The repository ships a TypeScript SDK (@composio/core), a Python SDK (composio), a standalone Effect-TS-based CLI, 15+ framework provider adapters (OpenAI, Anthropic, LangChain, LlamaIndex, CrewAI, AutoGen, Mastra, Vercel AI, Google/ADK, etc.), and a Next.js documentation site. It is unambiguously an application/developer-platform repo rather than data research, although it contains data-adjacent engineering assets: a cross-SDK JSON Schema conversion corpus, OpenAPI dereferencing tooling, a knowledge-base hybrid-search index, and telemetry redaction utilities.

RATING: 9.2/10 MAINT: active DRIFT: medium
β–Έ 6 reusable components found
reflex-dev/reflex β˜… 28943 1792 APPLICATION

Reflex is a full-stack Python web framework that compiles Python code into a React frontend, enabling developers to build interactive web applications entirely in Python. In production, it serves as a stateful, event-driven framework with a component system, reactive state management, and a compiler that generates JavaScript/React from Python. The architecture is a multi-package monorepo: core types and compiler (reflex-base), UI component libraries (reflex-components-* wrapping Radix UI, Recharts, Plotly, etc.), a build SDK for cloud deployment (reflex-build-sdk), a hosting CLI (reflex-hosting-cli), a durable workflow engine (reflex-workflow), observability via OpenTelemetry (reflex-otel), documentation generation (reflex-docgen), and benchmarking infrastructure (reflex-bench). Key entry points include the CLI (reflex run, reflex deploy), the Python API (rx.App, rx.State, rx.Component), and the compiler that transforms Python component trees into React code. Data flows involve user-defined state classes with computed vars and event handlers, which the compiler serializes into JavaScript state management; the server uses Starlette with Socket.IO for real-time event propagation, and state can be persisted in memory, disk, or Redis. External dependencies include Node.js, Bun, React, Radix UI, Recharts, Plotly, SQLAlchemy, Redis, Postgres, and numerous npm packages. The framework is actively maintained with extensive unit, integration, and performance tests, and it dogfoods its own documentation site.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
QwenLM/qwen-code β˜… 28307 3162 APPLICATION

Qwen Code (formerly Gemini CLI) is an open-source, multi-platform AI coding assistant designed to operate in the terminal, web shell, desktop (Tauri), VS Code, JetBrains, and chat channels (DingTalk, WeChat, Slack, etc.). The architecture is a monorepo with ~30+ packages centered around a core library (`packages/core`) that provides agent runtime, tool orchestration, memory, MCP support, and telemetry. The primary entry points are the CLI (`packages/cli` with an Ink-based TUI), the web shell (`packages/web-shell`), and a daemon server (`packages/cli/src/serve/`) that exposes REST/SSE endpoints for session management, file editing, and sandboxed shell execution. The system supports multiple LLM providers (OpenAI, Anthropic, Gemini, DeepSeek, etc.) and features sub-agents, goal-oriented workflows, approval modes, browser automation (CUA driver in Rust), and a Java managed-agent server for enterprise deployments. Data flows are user-to-agent: user input enters via a client (CLI, web, IDE), is processed by the core agent loop, which invokes tools (shell, file system, LSP, MCP servers) and streams responses back. External dependencies include Node.js v22+, pnpm, and platform-specific native binaries (Rust CUA driver, Electron desktop). The codebase is actively maintained with daily commits, extensive integration tests, and CI/CD pipelines. While it is a software application, it includes telemetry modules and a few Python scripts for benchmark analysis, but no research-grade data pipelines or ML training code.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
getpaseo/paseo β˜… 20783 2448 APPLICATION

Paseo is a full-stack, multi-platform development environment for orchestrating AI coding agents (Claude Code, Codex, OpenCode, Pi, etc.) from a unified interface. It consists of a daemon server that manages agent sessions, workspaces, terminals, and git operations; a cross-platform client built with React Native/Expo (iOS, Android, web, Electron desktop); a CLI tool; and a plugin ecosystem. The architecture is provider-agnostic, supporting multiple AI backends through a common protocol layer. The codebase demonstrates high engineering craftsmanship with extensive test coverage, clean separation of concerns, and reusable patterns like the plugin SDK, protocol schemas, and platform abstraction layers. It is actively maintained with rapid release cycles and a large community.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
gruntwork-io/terragrunt β˜… 9877 1238 APPLICATION

Terragrunt is a mature, production-grade Infrastructure as Code orchestration CLI tool that wraps OpenTofu and Terraform. Its core function is to manage the lifecycle of IaC modules across environments: it parses HCL configuration (`terragrunt.hcl`, stacks), discovers units and stacks in a file tree, resolves inter-module dependencies, executes OpenTofu/Terraform commands with automatic remote state backend management (S3, GCS, Azure), and caches provider downloads and module sources via a content-addressable store (CAS). The architecture is a monolith with a rich CLI surface (over 20 subcommands including `run`, `catalog`, `browse`, `scaffold`, `find`, `list`, `render`, `hcl fmt`, `dag graph`, etc.) and a custom implementation of the CLI framework (`internal/clihelper`). It features a Bubbletea-based TUI for catalog browsing and an extensible filter engine for selecting units by path, attributes, or git changes. The codebase is heavily test-covered (unit, integration, fuzz) and actively maintained by Gruntwork. Key reusable patterns include virtual abstractions for filesystem, execution, and HTTP; a generic concurrent cache; a strict controls system for deprecation gating; and a content-addressable git store for deduplicating source downloads.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 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
$ loading more...
$ submit: