{"id":16989995,"url":"https://github.com/matzefriedrich/command-line-api-extensions","last_synced_at":"2026-04-13T12:31:42.991Z","repository":{"id":45478834,"uuid":"266070016","full_name":"matzefriedrich/command-line-api-extensions","owner":"matzefriedrich","description":"Utilities for System.CommandLine","archived":false,"fork":false,"pushed_at":"2026-02-06T23:36:16.000Z","size":48,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-07T08:29:07.689Z","etag":null,"topics":["command-line","commandlineparser","dotnet-core","dotnet-standard","net80","system-commandline","terminal"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matzefriedrich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-22T09:21:29.000Z","updated_at":"2026-02-06T23:36:17.000Z","dependencies_parsed_at":"2023-01-23T07:45:50.600Z","dependency_job_id":null,"html_url":"https://github.com/matzefriedrich/command-line-api-extensions","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/matzefriedrich/command-line-api-extensions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matzefriedrich%2Fcommand-line-api-extensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matzefriedrich%2Fcommand-line-api-extensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matzefriedrich%2Fcommand-line-api-extensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matzefriedrich%2Fcommand-line-api-extensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matzefriedrich","download_url":"https://codeload.github.com/matzefriedrich/command-line-api-extensions/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matzefriedrich%2Fcommand-line-api-extensions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","commandlineparser","dotnet-core","dotnet-standard","net80","system-commandline","terminal"],"created_at":"2024-10-14T03:08:41.562Z","updated_at":"2026-04-13T12:31:42.955Z","avatar_url":"https://github.com/matzefriedrich.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![.NET 8](https://github.com/matzefriedrich/command-line-api-extensions/actions/workflows/dotnet.yml/badge.svg)\n![GitHub License](https://img.shields.io/github/license/matzefriedrich/command-line-api-extensions)\n![GitHub Release](https://img.shields.io/github/v/release/matzefriedrich/command-line-api-extensions?include_prereleases\u0026display_name=tag)\n\n# System.CommandLine.Extensions\n\nThe new `System.CommandLine` API offers for sure more advanced command configuration and execution than the retired `Microsoft.Extensions.CommandLineUtils` API. But the broader set of functionality comes with the burden of more complex boilerplate code required to let the cow fly. The `System.CommandLine.Extensions` API adds a thin application layer to `System.CommandLine` which is similar to the retired API, cuts down functionality and thus brings back the simplicity.\n\n## Greeting Example\n\n````csharp\nprivate static int Main(string[] args)\n{\n    var app = new CommandlineApplication();\n\n    app.Command(\"greeting\", \"Greets the specified person.\", greeting =\u003e\n    {\n        greeting.Option\u003cstring\u003e(\"--name\", \"The person´s name.\", ArgumentArity.ExactlyOne)\n            .Option\u003cbool\u003e(\"--polite\")\n            .OnExecute(async (string name, bool polite) =\u003e\n            {\n                if (polite) Console.WriteLine($\"Good day {name}\");\n                else Console.WriteLine($\"Hello {name}\");\n                return await Task.FromResult(0);\n            });\n    });\n\n    return app.Execute(args);\n}\n````\n\n### Usage\n\n````bash\n$ demo greeting --name Jon --polite\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatzefriedrich%2Fcommand-line-api-extensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatzefriedrich%2Fcommand-line-api-extensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatzefriedrich%2Fcommand-line-api-extensions/lists"}