{"id":24585449,"url":"https://github.com/vandycknick/webtty","last_synced_at":"2025-10-23T22:33:09.824Z","repository":{"id":45014320,"uuid":"190807565","full_name":"vandycknick/webtty","owner":"vandycknick","description":"🔌 A simple command-line tool for sharing a terminal over the web.","archived":false,"fork":false,"pushed_at":"2023-06-06T12:31:01.000Z","size":2813,"stargazers_count":41,"open_issues_count":10,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-24T14:19:50.814Z","etag":null,"topics":["csharp","dotnet","typescript","websocket"],"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/vandycknick.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-07T20:53:32.000Z","updated_at":"2024-03-07T05:32:27.000Z","dependencies_parsed_at":"2025-01-24T05:12:15.804Z","dependency_job_id":"ddd8da69-ab9c-4d63-80d7-916245c9e3da","html_url":"https://github.com/vandycknick/webtty","commit_stats":null,"previous_names":["nickvdyck/webtty"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vandycknick%2Fwebtty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vandycknick%2Fwebtty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vandycknick%2Fwebtty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vandycknick%2Fwebtty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vandycknick","download_url":"https://codeload.github.com/vandycknick/webtty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311147,"owners_count":21569001,"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":["csharp","dotnet","typescript","websocket"],"created_at":"2025-01-24T05:12:08.732Z","updated_at":"2025-10-23T22:33:09.739Z","avatar_url":"https://github.com/vandycknick.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebTty\n\n[![Build status][ci-badge]][ci-url]\n[![NuGet][nuget-package-badge]][nuget-package-url]\n[![feedz.io][feedz-package-badge]][feedz-package-url]\n[![coverage][coverage-badge]][coverage-url]\n\n\u003e A TeleTYpewriter for the web.\n\n![screencast](assets/screencast.gif)\n\n\n## Introduction\nWebTty is a simple command-line tool that's inspired by GoTTY, mostly a learning experience about how terminals work internally. Built with ASP.NET and XTerm.js the tool allows turning any CLI tool into a web application. In short a TeleTYpewriter for the web that runs on any modern browser or platform.\n\n## Installation\n\n### Dotnet tool\nDownload [.NET Core 3.1](https://dotnet.microsoft.com/download) or newer. Once installed, run this command:\n\n```sh\ndotnet tool install -g webtty\n```\n\n### Native\n```sh\ncurl -L -o webtty{.exe} https://github.com/nickvdyck/webtty/releases/download/{VERSION}/webtty.{PLATFORM}\n```\nYou can replace the version portion by one of the releases found on GitHub.\nThe platform can be replaced with a supported [dotnet RID](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog), this represents the platform you want the tool to run on. The following ones are supported:\n- osx-x64\n- linux-x64\n- linux-musl-x64 (alpine)\n- win-x64\n\n#### Ubuntu dependencies\n```sh\napt update\napt install libicu60 libssl1.0.0\n```\n\n### Local build (Unix)\n```sh\nmake setup\nmake\nmake install\n```\n\n## Usage\n\n```sh\nλ webtty --help\n\nwebtty:\n  🔌 Simple command-line tool for sharing a terminal over the web.\n\nUsage:\n  webtty [options] [[--] \u003cadditional arguments\u003e...]]\n\nOptions:\n  -a, --address \u003caddress\u003e         IP address to use [localhost]. Use any to listen to any available address. Ex (0.0.0.0, any, 192.168.2.3, ...).\n  -s, --unix-socket \u003cfilepath\u003e    Use the given Unix domain socket path for the server to listen to\n  -p, --port \u003cport\u003e               Port to use [5000]. Use 0 for a dynamic port.\n  --path \u003cpath\u003e                   Path to use, defaults to /pty\n  --theme \u003ctheme\u003e                 Theme to use, uses a simple black theme by default\n  -c, --config \u003cconfigFile\u003e       Path to a json config file, cli arguments always take precedence\n  --version                       Show version information\n  -?, -h, --help                  Show help and usage information\n\nAdditional Arguments:\n  Arguments passed to the application that is being run.\n```\n\n## Development\n\n### Prerequisites\n- [.NET Core SDK](https://dotnet.microsoft.com/download) \u003e= 3.1.101\n- [Node.js](https://nodejs.org/en/) 14.x\n- [Yarn](https://classic.yarnpkg.com/en/docs/install) \u003e= 1.22.0\n\n### Setup\nBefore you can kick off a build you will need to run the following command. This will restore the project's dependencies and generate the required JSON schema messages.\n(This is necessary because not everything is fully integrated into MSBuild yet.)\n\n#### Unix (Linux/MacOs)\n```sh\nmake setup\n```\n\n#### Windows\n```sh\n./setup.ps1\n```\n\u003e This command/script needs to run after any change to the schema.\n\n### Dev\nYou should be able to open the project in your favourite editor and use any integrated build flows from within the editor (eg Visual Studio, VS for Mac, Rider, ...)\n\nIf you prefer using the CLI then the following commands will come in handy. These commands are Unix only, on windows you should be able to just use the dotnet cli tool. The `Makefile` in essence is just a wrapper around the `dotnet` cli to save you some keystrokes.\n\n#### Start server and watch for changes\n```sh\nmake dev\n```\nThis will start the webtty host in watch mode. And it will spin up the client with `webpack-dev-server`, allowing for a quick dev -\u003e validate cycle.\n\n### Package\n```sh\nmake package # Package as a nuget global tool\n\nmake package-native # Publish self-contained binary tool for linux\nmake package-native RUNTIME=osx-x64 # Publish self-contained binary tool for osx\n```\n\n### Installation\n```sh\nmake install # Globally install a local build of the tool\nmake uninstall # Uninstall any globally installed webtty tool\n```\n\n[ci-url]: https://github.com/nickvdyck/webtty\n[ci-badge]: https://github.com/nickvdyck/webtty/workflows/CI/badge.svg\n\n[nuget-package-url]: https://www.nuget.org/packages/webtty/\n[nuget-package-badge]: https://img.shields.io/nuget/v/webtty.svg?style=flat-square\u0026label=nuget\n\n[feedz-package-url]: https://f.feedz.io/nvd/webtty/packages/webtty/latest/download\n[feedz-package-badge]: https://img.shields.io/badge/endpoint.svg?url=https%3A%2F%2Ff.feedz.io%2Fnvd%2Fwebtty%2Fshield%2Fwebtty%2Flatest\u0026label=webtty\n\n[coverage-url]: https://codecov.io/gh/nickvdyck/webtty\n[coverage-badge]: https://codecov.io/gh/nickvdyck/webtty/branch/master/graph/badge.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvandycknick%2Fwebtty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvandycknick%2Fwebtty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvandycknick%2Fwebtty/lists"}