{"id":31845116,"url":"https://github.com/emptyflow/flowcommandline","last_synced_at":"2026-01-20T17:55:05.227Z","repository":{"id":279836007,"uuid":"940156158","full_name":"EmptyFlow/FlowCommandLine","owner":"EmptyFlow","description":"Command line parser and processor","archived":false,"fork":false,"pushed_at":"2025-09-09T14:46:17.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T16:36:51.340Z","etag":null,"topics":["command-line","commandline","parser"],"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/EmptyFlow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"trueromanus","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-02-27T17:49:16.000Z","updated_at":"2025-09-09T14:46:20.000Z","dependencies_parsed_at":"2025-02-28T01:19:45.520Z","dependency_job_id":"d3064814-9a8b-4daf-865e-3c7e15ab0f4e","html_url":"https://github.com/EmptyFlow/FlowCommandLine","commit_stats":null,"previous_names":["emptyflow/commandline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EmptyFlow/FlowCommandLine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmptyFlow%2FFlowCommandLine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmptyFlow%2FFlowCommandLine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmptyFlow%2FFlowCommandLine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmptyFlow%2FFlowCommandLine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmptyFlow","download_url":"https://codeload.github.com/EmptyFlow/FlowCommandLine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmptyFlow%2FFlowCommandLine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010671,"owners_count":26084785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","commandline","parser"],"created_at":"2025-10-12T07:57:07.697Z","updated_at":"2025-10-12T07:57:22.480Z","avatar_url":"https://github.com/EmptyFlow.png","language":"C#","funding_links":["https://ko-fi.com/trueromanus"],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/EmptyFlow/FlowCommandLine/actions/workflows/cipackage.yml/badge.svg)](https://github.com/EmptyFlow/FlowCommandLine/actions/workflows/cipackage.yml) [![nugeticon](https://img.shields.io/badge/nuget-available-blue)](https://www.nuget.org/packages/FlowCommandLine)\n\n# FlowCommandLine\nFlowCommandLine is a C# library available on Nuget that is a fast and simple command line parser that works in two modes: command-based (e.g. `git commit ...`) or parameters-only. Parsing can be happened to any model class or record with parameterless constructor.\nIt support modern dotnet core runtimes (net8+), compilation in NativeAot. It supported auto documentation for commands and parameters.\nLot of types of properties [is supported](https://github.com/EmptyFlow/FlowCommandLine/wiki/Supported-mappings-types).\nBy default, the output will be to the system console, but can be redefined to any of your case - instead `CommandLine.Console ()` you can use `new CommandLine (new MyConsoleCommandLineProvider())` where `MyConsoleCommandLineProvider` it is you class which is implement `ICommandLineProvider` interface.\n\n## Command-based mode\n\nExample command line:  \n`myconapp runapp --param1=stringvalue --param2=120`\n\n```csharp\npublic class Test {\n    public string Param1 { get; set; } = \"\";\n    public int Param2 { get; set; }\n}\n\nCommandLine.Console ()\n    // setup console application description version and so on\n    .Application ( \"My Console App\", \"1.0.0\", \"full description.\", \"Copyright My Super Corporation\", \"myconapp\" ) \n    .AddCommand ( // add console command\n        \"runapp\", // command name\n        ( Test parameters ) =\u003e { // command delegate handler for class Test\n            ...\n        },\n        \"Command description\", // command description :)\n        new List\u003cFlowCommandParameter\u003e { // adjust command parameters\n            FlowCommandParameter.CreateRequired(\"p1\", \"param1\", \"parameter 1 description\"), // use factory methods for required parameter\n            FlowCommandParameter.CreateRequired(\"p3\", \"param3\", \"parameter 3 description\"), \n            FlowCommandParameter.Create(\"p4\", \"param4\", \"parameter description\"), // use factory method for non required parameter\n            FlowCommandParameter.Create(\"p2\", \"param2\", \"parameter2 description\")\n        }\n    )\n    .RunCommand ();\n```\n\n## Parameters-only mode\n\nExample command line:  \n`myconapp --param1=stringvalue --param2=120`\n\n```csharp\nvar options = CommandLine.Console ()\n    .Application ( \"My Console App\", \"1.0.0\", \"full description.\", \"Copyright My Super Corporation\", \"myconapp\" )\n    .AddOption ( \"p1\", \"param1\", \"parameter 1 description\", required: true )\n    .AddOption ( \"p2\", \"param2\", \"parameter 2 description\", required: false )\n    .RunOptions\u003cTest\u003e (); // run options parse and \n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femptyflow%2Fflowcommandline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femptyflow%2Fflowcommandline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femptyflow%2Fflowcommandline/lists"}