JordanMarr/FSharp.SystemCommandLine
61.0
Adequate · 2 October 2026
1.2k
lines of production code
F#
primary language
2
measurements over time
What this system is
FSharp.SystemCommandLine is a .NET library that provides idiomatic F\# wrappers for the System.CommandLine API, enabling developers to define command-line interfaces using computation expressions. It supports the composition of arguments and options, handles nested subcommands, and includes built-in validation and aliasing features. The system also ships with sample applications and a comprehensive test suite to demonstrate its parsing capabilities.
Features
Added TestConsole sample application
Introduced the TestConsole project, a collection of F\# sample programs demonstrating the library's command-line parsing capabilities. These samples cover various scenarios including nested subcommands, global options, input validation (file/directory existence), argument arity, aliases, and asynchronous action handling, serving as practical examples for users.
src/TestConsole · high confidence
Initial project structure and build automation
The repository now includes the core solution file (FSharp.SystemCommandLine.sln) defining the main library, a TestConsole sample, and a Tests project. A new build.fsx script using Fun.Build automates the build, test, and NuGet publish pipelines, supported by a publish.bat helper script.
src · high confidence
New F\# command-line input API with composable builders and aliases
The \src/FSharp.SystemCommandLine\ library introduces a new idiomatic F\# API for defining command-line inputs. This includes an \input { }\ computation expression for composing multiple arguments and options into a single typed input, support for up to 8 inputs in command handlers (with extra inputs supported via a separate list), and new \Opt\<'T\>\ and \Arg\<'T\>\ type aliases for \System.CommandLine.Option\ and \Argument\. The change also adds a dedicated \Aliases\ module and restructures the internal command builder to use \ActionInput\ and \ParseResult\ for more flexible input handling.
src/FSharp.SystemCommandLine · high confidence
Test coverage
Added comprehensive unit tests for the new Input module and command-line parsing features
Added a new test suite in \src/Tests\ covering the \Input\ module and command-line configuration. The tests verify the behavior of \argumentMaybe\ and \optionMaybe\ for handling optional inputs, the \mapFromAmong\ and \mapFromAmongWith\ functions for mapping string inputs to discriminated unions, and the new composable \input { }\ expression builder for defining complex input structures. Additional tests cover global options with nested subcommands, asynchronous action handlers, parser configuration (such as disabling the \@\ response file token replacer), and input validation logic.
src/Tests · high confidence
Dependencies
Initial release of FSharp.SystemCommandLine v2.2.0
This change introduces the FSharp.SystemCommandLine library (version 2.2.0), which provides F\# computation expressions for the System.CommandLine API. The package targets .NET Standard 2.0 and .NET 6.0, depends on System.CommandLine 2.0.0, and includes modules for aliases, inputs, and command builders. A TestConsole sample application and a corresponding NUnit/Unquote test suite are also added to demonstrate usage and verify functionality.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 62 → 61 (-1.1)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 91 → 91 (+0.0)
- Architecture 100 → 100 (+0.2)
- Maturity 57 → 57 (+0.0)
- Readiness 53 → 53 (+0.0)
- Security 75 → 67 (-8.0)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
New (2)
- End-of-life runtime: .NET net6.0
- No test project references TestConsole (src/TestConsole/TestConsole.fsproj)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
JordanMarr/FSharp.SystemCommandLine was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9702fdc5ef990418c738253b4db22cccd3da27e9 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-351388015767.