thehardwarestore.ai

where AI agents shop for the right tools

── 98870 repos indexed ── | filtered by tag: #scripting
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
babashka/babashka ★ 4603 278 APPLICATION

Babashka is a native Clojure interpreter for scripting, compiled with GraalVM native-image to produce a self-contained, fast-starting binary (`bb`). In production, it serves as a replacement for bash or Python scripting in Clojure, offering a REPL, task runner, nREPL server, HTTP client/server, process spawning, file I/O, database access via JDBC, and foreign function interface (FFI) to C libraries. The architecture is a monolith with modular feature flags: environment variables such as `BABASHKA_FEATURE_CSV` or `BABASHKA_FEATURE_JDBC` control which optional libraries (XML, YAML, CSV, Transit, http-kit, spec, logging, etc.) are compiled into the binary. The core interpreter is SCI (Small Clojure Interpreter), extended with a rich set of built-in namespaces that wrap popular Clojure libraries. Build scripts and CI pipelines automate testing on Linux, macOS, and Windows, and the project maintains an extensive library compatibility test suite with over 100 third-party Clojure libraries pinned to specific git SHAs. The codebase demonstrates exceptional craftsmanship: the JLine-based REPL with inline autosuggestion and eldoc, the FFI trampoline dispatch, the custom GraalVM features for binary size optimization, and the deftype map interface support are all non-obvious solutions to real problems in building a scripting runtime on the JVM. While primarily an application, the repository also contains a valuable data asset in `test-resources/lib_tests/bb-tested-libs.edn`, a curated registry of library compatibility that could support research on Clojure library portability.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
SanderMertens/flecs ★ 8748 626 APPLICATION

Flecs is a high-performance Entity Component System (ECS) framework for games and simulations, written in C99 with a C++17 wrapper. It provides a data-oriented storage model where entities are stored in archetype tables with component columns, enabling cache-efficient iteration. The framework includes a powerful query language with support for relationships, inheritance, traversal, grouping, and sorting. It features an extensive addon system covering systems (pipelines), observers, prefabs, reflection/meta, JSON serialization, an embedded scripting language (Flecs Script) with async/await, a REST API with an HTTP server, statistics/metrics, alerts, and more. Flecs has zero external dependencies and is designed for lockless multi-core scheduling. It is used in commercial games and has a large ecosystem of examples and community bindings. Architecture: The library is modular with a core C API and optional addons compiled via preprocessor flags. The C++ API provides a fluent builder pattern for constructing entities, systems, queries, and observers. Key entry points include ecs_init/flecs::world for world creation, ecs_progress for running the game loop, ecs_insert for entity creation, ecs_system for defining systems, ecs_query for cached queries, and ecs_script for running Flecs Script files. Data flows involve creating entities with components, which are stored in tables; systems iterate over matching entities each frame; observers react to component changes; and the script engine allows runtime entity manipulation. External dependencies: None. Flecs is self-contained and uses only standard C library functions.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 7 reusable components found
mozilla/rhino ★ 4624 928 APPLICATION

Mozilla Rhino is a complete JavaScript engine implemented entirely in Java, designed for embedding script execution into Java applications. It provides a full ECMAScript runtime, including ES6+ features (BigInt, Promises, typed arrays, classes, modules), E4X (XML) support, LiveConnect (Java-JS interop), and a JSR-223 ScriptEngine implementation. The architecture is modular, with separate modules for the core engine, tools (shell, debugger, compiler), XML support, and Kotlin integration. The engine supports multiple execution modes: an interpreted bytecode (interpreter v1 and v2), a just-in-time compiler via the optimizer (using jdk.dynalink), and a classfile-based compiler. Key entry points include the `Context` class for script execution, `RhinoScriptEngine` for Java scripting API, and the `Main` shell tool. The project is well-tested with thousands of regression tests, test262 conformance, and JMH benchmarks. It is actively maintained, with recent releases and CI pipelines for Gradle and Bazel, targeting Java 17+ and Android.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
actions/github-script ★ 5038 587 APPLICATION

actions/github-script is a GitHub Action that allows users to run JavaScript/TypeScript scripts in their workflows with access to a pre-authenticated GitHub API client and other GitHub Action toolkit packages. The action executes user-provided scripts as asynchronous functions within a context that includes github, context, core, glob, io, exec, getOctokit, and require objects. Scripts can make GitHub API calls, perform file operations, and return values that become action outputs. The architecture follows standard GitHub Action patterns with TypeScript source code compiled and bundled via ncc into a single distributable file. Key components include async-function.ts for safely executing user scripts, create-configured-getoctokit.ts for creating secondary authenticated clients with inherited configuration, and wrap-require.ts for handling module resolution. The action integrates with GitHub's retry and request-logging plugins and supports configurable retries, user-agent, base URL, and result encoding.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
openclaw/remindctl ★ 383 81 APPLICATION

remindctl is a macOS command-line interface for Apple Reminders, built with Swift and Apple's EventKit framework. It provides a comprehensive set of commands to create, edit, complete, delete, and search reminders, manage lists, set due dates, alarms, recurrence, location triggers, and URLs. The application is structured as a modular library (RemindCore) containing the core EventKit interaction and business logic, and a CLI executable (remindctl) that uses the Commander library for command routing and argument parsing. The CLI supports multiple output formats (JSON, plain, table, quiet) and includes advanced features like fuzzy list name resolution, stable numeric indexing across reordered fetches, and a custom async timeout pattern for system operations. The codebase demonstrates strong Swift concurrency practices (async/await, actors), comprehensive unit tests, and a well-documented release pipeline with signed notarized binaries and Homebrew distribution.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
kellyjonbrazil/jc ★ 8694 264 APPLICATION

jc (JSON Convert) is a mature Python library and CLI tool that converts the output of over 150 command-line tools, system files, and common data formats into structured JSON. It operates both as a piped command-line utility (`jc <command>`) and as a programmable Python module (`jc.parse('parser_name', data)`), enabling seamless integration with jq, scripting, and automation pipelines. The architecture follows a consistent parser pattern: each parser module defines an `info` metadata class and a `parse(data, raw, quiet)` function, with optional `_process()` for type coercion. Streaming parsers (suffixed `_s`) use generator-based patterns for real-time output. The library includes vendored dependencies for ASN.1, plist, EDID, and TOML parsing, and supports cross-platform execution across Linux, macOS, FreeBSD, and Windows. The primary data flow is stdin or file input → parser module → structured dict/list output (JSON or YAML). Key entry points include the CLI (`jc/cli.py`), the library API (`jc/lib.py`), and individual parser modules under `jc/parsers/`. The project maintains an extensive test suite with fixtures captured from multiple OS versions, ensuring robustness against command output variations. It also provides shell completions, a plugin system for custom parsers, and documentation generation scripts. While the codebase is well-engineered with clean abstractions, the sheer number of parsers and reliance on vendored libraries introduce moderate maintenance surface area.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 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
NevermindNilas/TheAnimeScripter ★ 327 12 APPLICATION

TheAnimeScripter (TAS) is a production-grade AI video enhancement toolkit specialized for anime content. It performs frame interpolation (RIFE 4.15-4.25 variants, GMFSS, DistilDRBA), super-resolution (30+ architectures via a vendored spandrel fork), restoration, frame deduplication, monocular depth estimation (Depth Anything V2/V3, Video Depth Anything, Limbo), scene-change detection, stabilization, segmentation, and object detection. It ships as a CLI tool (main.py), an Adobe After Effects plugin (src/server/aeComms.py via Socket.IO), and a standalone desktop build (build.py + tools/build_support/). The pipeline is: decode video via FFmpeg or the custom nelux library, stream frames through a FrameWindow sliding buffer, apply dedup → restore → upscale → interpolate stages, then re-encode with configurable codecs, bit depths, and BT.709/BT.2020 color spaces.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
mxcl/swift-sh ★ 1892 63 APPLICATION

swift-sh is a CLI tool that enables Swift scripts to declare and fetch third-party dependencies via special comments in import statements. It parses a script's imports (e.g., `import Foo // @mxcl ~> 1.0`), generates a Swift Package Manager project with those dependencies, builds it, and runs the resulting executable. The architecture is modular with separate targets for script parsing (Script), command handling (Command), and utility functions (Utility). The tool supports both file-based and stdin scripts, local dependencies, and provides subcommands for ejecting to a full package and editing in Xcode (macOS only). It is a pragmatic solution that bridges the gap between ad-hoc scripting and SwiftPM's package structure.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
roswell/roswell ★ 1903 131 APPLICATION

Roswell is a command-line tool for managing Common Lisp implementations, scripting, and building executables. It provides a unified interface to install, switch between, and run multiple Lisp implementations (SBCL, CCL, Clasp, ECL, ABCL, etc.), and supports shebang-style scripts with a `ros` interpreter. The architecture is a hybrid: a C binary handles low-level system operations (download, extraction, process management, configuration), while Lisp scripts implement higher-level logic (installation recipes, version detection, image dumping, Quicklisp integration). Key entry points are `src/main.c` (C) and `lisp/init.lisp` (Lisp, invoked by the C binary). External dependencies include curl/libcurl, git, make, and patch. The codebase is well-structured with cross-platform abstractions (Unix/Windows), a custom cons-cell type for dynamic data, and a consistent command dispatch pattern. It is actively maintained with CI across Linux, macOS, and Windows, but relies on web scraping for version detection and uses autotools for build, which introduces some fragility.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
MeVisLab/pythonqt ★ 293 109 APPLICATION

PythonQt is a dynamic Python binding library for the Qt framework, focused on embedding CPython into C++ Qt applications. The runtime in src/ exposes Qt objects to Python through custom Python type objects, signal/slot bridging, automatic type conversion, property access, and ownership transfer. Key entry points are PythonQt::init(), the PythonQt_QtAll extension, PythonQtObjectPtr, and the PythonQtScriptingConsole widget. The project is a library and code-generation toolchain rather than a standalone application; it contains no data pipelines or research components. The repository also ships a complete binding generator under generator/, which parses Qt C++ headers with a custom lexer/parser/simplecpp preprocessor pipeline, applies type-system XML rules, and emits wrapper code. Pre-generated bindings for Qt 5.15 are checked in under generated_cpp_515/, following a consistent Shell/PublicPromoter/Wrapper pattern that enables Python subclassing of Qt classes and exposure of protected methods. The project includes numerous examples and a functional test suite, and CI workflows exercise builds against multiple Qt versions including Qt 6.x. The codebase is professionally maintained but carries significant legacy from the Nokia Qt Script Generator lineage. The custom C++ parser has known limitations, the generated code is voluminous and tied to specific Qt versions, and many modules use extensive #if QT_VERSION branches. Overall it is a competent, specialized binding framework with a few genuinely reusable building blocks, but it is not a modern, lightweight codebase.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
katahiromz/RisohEditor ★ 521 62 APPLICATION

RisohEditor is a mature Win32 desktop application for editing, creating, and translating Windows PE resources (.exe, .dll, .rc, .res files). It supports all standard resource types including icons, cursors, bitmaps, dialogs, menus, accelerators, string tables, version info, message tables, toolbars, manifests, HTML, and custom binary data. The application provides a visual dialog editor (RADical) with drag-and-drop control placement, a tree-view resource browser, a hex viewer, and a code editor for RC text. It integrates with external tools like windres, mcpp (preprocessor), UPX (compression), and includes an embedded scripting language (EGA) for batch automation. Architecture follows the Win32 SDK pattern with custom MFC-like wrappers (MZC4 library) for window subclassing, property sheets, splitters, and utility classes. Resource parsing and serialization is done per-type via dedicated classes (e.g., IconRes, MenuRes, DialogRes) that implement LoadFromStream/SaveToStream. The application maintains a global resource database (g_res) and constants database (g_db) for ID resolution. It supports 17+ UI languages and can encrypt resources via WonRes submodule. Entry points include MMainWnd (main window) and the command-line interface for batch processing.

RATING: 7.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
FunkinCrew/polymod ★ 212 100 APPLICATION

Polymod is a Haxe library that enables modding for games and applications by intercepting asset loading and providing a runtime scripting system. It supports multiple game engines (OpenFL, Lime, HEAPS, NME, Flixel, and custom backends) through a clean abstraction layer of backends and file systems. The core API (Polymod.init, scan, loadMod) allows developers to define mod root directories, load mod metadata, and apply asset replacements, text merges (XML, JSON, CSV, TSV), and script modifications. A notable feature is the integrated HScript interpreter (a fork of the language) that allows mods to define classes, override methods, and extend game logic at runtime. The codebase is well-structured with clear separations of concerns (backends, file systems, format parsers, utilities) and includes extensive sample projects demonstrating integration with various frameworks. However, it lacks a formal test suite, contains some debugging artifacts (trace calls), and relies on heavy macro metaprogramming for scripted class generation, which increases maintenance risk across Haxe compiler versions. The dependency on Lime/OpenFL internals and platform-specific conditionals makes the code somewhat brittle, though the core abstractions remain reusable.

RATING: 6.5/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: