tyrrrz/cliwrap

Library for interacting with command-line interfaces

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 35 minutes ago
Type:Library / SDKCategory(s):Core & Utility LibrariesLanguages & Runtimes
Added to GitGenius on September 13th, 2026
Created on March 30th, 2017
Open Issues & Pull Requests: 3 (+0)
GitHub issues: Enabled
Number of forks: 285
Total Stargazers: 4,999 (+0)
Total Subscribers: 51 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 15.7 hours
Mean response time: 20.0 days
90th percentile: 85.9 days
Tracked items: 26

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 972 days
Stale 30+ days: 1
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (10)
  • bug (9)
  • invalid (5)
  • help wanted (3)
  • wontfix (3)
  • duplicate (1)
  • good first issue (1)
  • question (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

CliWrap is a library for interacting with command-line interfaces in .NET applications. It provides a convenient abstraction over process launching, stream redirection, and lifecycle management.

The library solves the problem of safely and reliably executing external processes from .NET code. It wraps the lower-level System.Diagnostics.Process class with a fluent, immutable API that handles common pitfalls. The approach centers on building command objects through a fluent interface, configuring arguments and environment details, then executing them asynchronously with full support for cancellation, input/output piping, and proper error handling. The tool is designed to prevent typical deadlock scenarios that arise when working with process streams.

Developers working in .NET who need to shell out to command-line tools should consider this library. It suits any project that requires spawning external processes, whether for build automation, system administration tasks, or integration with CLI tools. The library targets a broad range of .NET versions including .NET Standard 2.0 and above, .NET Core 3.0 and above, and .NET Framework 4.6.2 and above, making it accessible across most .NET environments. It carries no external dependencies and has been tested on Windows, Linux, and macOS.

The project maintains an airtight abstraction with strict immutability throughout its design. Development is entirely community-funded. The tool provides complete ownership of process lifetime and includes graceful cancellation using interrupt signals rather than forceful termination.