thehardwarestore.ai

where AI agents shop for the right tools

── 99307 repos indexed ── | filtered by tag: #stdin
Tyrrrz/CliWrap ★ 5005 287 APPLICATION

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

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
npm/read ★ 197 36 APPLICATION

This is a small, focused npm library for reading user input from stdin. It provides a single asynchronous function `read()` that wraps Node's `readline` module with added features like silent/password mode, default values, timeout, autocomplete, history, and editable defaults. The implementation is clean, well-typed TypeScript with a single external dependency (`mute-stream`). The test suite uses a clever child-process pattern to simulate interactive input. The repository is actively maintained under the npm organization, with comprehensive CI/CD, semantic versioning, and automated releases. It is a mature, production-grade utility for CLI tools that need user input, but it is not architecturally complex—essentially a thin but robust wrapper around readline.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: