{"id":29553010,"url":"https://github.com/bosonware-technologies/bosonware.terminalapp","last_synced_at":"2026-05-19T10:37:20.610Z","repository":{"id":304363401,"uuid":"1018612399","full_name":"BosonWare-Technologies/BosonWare.TerminalApp","owner":"BosonWare-Technologies","description":"BosonWare.TerminalApp is a modern, extensible .NET terminal application framework designed to simplify the creation of interactive command-line tools. It provides a robust command registry, built-in commands, command history, and flexible parsing utilities, making it ideal for building rich terminal experiences.","archived":false,"fork":false,"pushed_at":"2025-07-12T16:35:45.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-12T16:51:33.094Z","etag":null,"topics":["cli","console-app","console-application","csharp","csharp-console","csharp-library","dotnet"],"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/BosonWare-Technologies.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-12T16:33:02.000Z","updated_at":"2025-07-12T16:36:33.000Z","dependencies_parsed_at":"2025-07-12T16:51:36.928Z","dependency_job_id":"cac72a2b-513e-4269-bbd5-81e9e44ea6bd","html_url":"https://github.com/BosonWare-Technologies/BosonWare.TerminalApp","commit_stats":null,"previous_names":["bosonware-technologies/bosonware.terminalapp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/BosonWare-Technologies/BosonWare.TerminalApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BosonWare-Technologies%2FBosonWare.TerminalApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BosonWare-Technologies%2FBosonWare.TerminalApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BosonWare-Technologies%2FBosonWare.TerminalApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BosonWare-Technologies%2FBosonWare.TerminalApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BosonWare-Technologies","download_url":"https://codeload.github.com/BosonWare-Technologies/BosonWare.TerminalApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BosonWare-Technologies%2FBosonWare.TerminalApp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265707843,"owners_count":23814879,"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","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":["cli","console-app","console-application","csharp","csharp-console","csharp-library","dotnet"],"created_at":"2025-07-18T06:01:30.202Z","updated_at":"2026-05-19T10:37:20.605Z","avatar_url":"https://github.com/BosonWare-Technologies.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BosonWare.TerminalApp\n\nBosonWare.TerminalApp is a modern, extensible .NET terminal application framework designed to simplify the creation of\ninteractive command-line tools. It provides a robust command registry, built-in commands, command history, and flexible\nparsing utilities, making it ideal for building rich terminal experiences.\n\n## Features\n\n- **Command Registry**: Easily register and manage commands with attributes and aliases.\n- **Built-in Commands**: Includes common commands like `help`, `clear`, `exit`, `version`, and `time`.\n- **Command History**: Persistent command history with disk storage.\n- **Command Parsing**: Advanced command-line parsing with support for quoted arguments.\n- **Extensibility**: Add custom commands by implementing the `ICommand` interface or deriving from `Command\u003cTOptions\u003e`.\n- **Colorful Output**: Integrates with BosonWare.TUI for styled console output.\n\n## Getting Started\n\n### Prerequisites\n\n- [.NET 8.0](https://dotnet.microsoft.com/download/dotnet/8.0) or later\n\n### Installation\n\nAdd the NuGet package to your project:\n\n```sh\ndotnet add package BosonWare.TerminalApp\n```\n\n### Example Usage\n\nCreate a simple terminal app:\n\n```csharp\nusing BosonWare.TerminalApp;\nusing BosonWare.TerminalApp.BuiltIn;\n\nCommandRegistry.LoadCommands\u003cProgram\u003e(typeof(IBuiltInAssemblyMarker));\n\nvar app = new ConsoleApplication() {\n    Prompt = \"[Crimson]Boson Terminal[/] \u003e \",\n    History = CommandHistory.CreateAsync(\"command_history.json\").GetAwaiter().GetResult()\n};\n\nawait app.RunAsync();\n```\n\n### Registering Commands\n\nCommands are registered using the `[Command]` attribute:\n\n```csharp\n[Command(\"greet\", Aliases = [\"hello\"], Description = \"Greets the user.\")]\npublic sealed class GreetCommand : ICommand\n{\n    public Task Execute(string arguments)\n    {\n        Console.WriteLine($\"Hello, {arguments}!\");\n        return Task.CompletedTask;\n    }\n}\n```\n\nOr use options parsing:\n\n```csharp\npublic class EchoOptions\n{\n    [Option('u', \"upper\", HelpText = \"Uppercase output.\")]\n    public bool Upper { get; set; }\n}\n\n[Command(\"echo\", Description = \"Echoes input.\")]\npublic sealed class EchoCommand : Command\u003cEchoOptions\u003e\n{\n    public override Task Execute(EchoOptions options)\n    {\n        // Implementation here\n        return Task.CompletedTask;\n    }\n}\n```\n\n### Built-in Commands\n\n- `help` / `info` / `-h` / `?` — Displays help\n- `clear` / `cls` — Clears the terminal\n- `exit` / `shutdown` — Exits the application\n- `version` / `ver` — Shows version info\n- `time` — Shows current time (`--utc` for UTC)\n\n## Command History\n\nCommand history is persisted to disk and loaded on startup. The default limit is 1000 entries.\n\n## License\n\nMIT License. See [LICENSE](./LICENSE) for details.\n\n## Contributing\n\nContributions are welcome! Please submit issues or pull requests\nvia [GitHub](https://github.com/BosonWare-Technologies/BosonWare.TerminalApp).\n\n## Links\n\n- [BosonWare.TerminalApp on GitHub](https://github.com/BosonWare-Technologies/BosonWare.TerminalApp)\n- [BosonWare.Runtime](https://www.nuget.org/packages/BosonWare.Runtime)\n- [CommandLineParser](https://www.nuget.org/packages/CommandLineParser)\n\n## Release Notes:\nThe following changes have been implemented: \nan ExitHandler has been added, the capability to run multiple nested applications has been removed, and improvements have been made to the CommandGroup and CommandRegistry.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbosonware-technologies%2Fbosonware.terminalapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbosonware-technologies%2Fbosonware.terminalapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbosonware-technologies%2Fbosonware.terminalapp/lists"}