{"id":13582133,"url":"https://github.com/moul/gotty-client","last_synced_at":"2025-05-16T04:03:40.808Z","repository":{"id":1205711,"uuid":"41314939","full_name":"moul/gotty-client","owner":"moul","description":":wrench: terminal client for GoTTY","archived":false,"fork":false,"pushed_at":"2025-05-05T17:32:21.000Z","size":4520,"stargazers_count":322,"open_issues_count":23,"forks_count":58,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-05T18:48:21.209Z","etag":null,"topics":["cli","gotty","gotty-client","hack","proxy","terminal"],"latest_commit_sha":null,"homepage":"https://manfred.life/gotty-client","language":"Go","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/moul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["moul"],"patreon":"moul","open_collective":"moul","custom":["https://manfred.life/donate"]}},"created_at":"2015-08-24T16:37:56.000Z","updated_at":"2025-04-20T09:53:37.000Z","dependencies_parsed_at":"2023-09-27T03:31:48.570Z","dependency_job_id":"61af5997-c2d8-48dc-9b6d-fcb2eec943d6","html_url":"https://github.com/moul/gotty-client","commit_stats":{"total_commits":188,"total_committers":19,"mean_commits":9.894736842105264,"dds":0.5053191489361701,"last_synced_commit":"6cb838b03adb1cbc0779e42f46d814742440bddc"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fgotty-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fgotty-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fgotty-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fgotty-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moul","download_url":"https://codeload.github.com/moul/gotty-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464891,"owners_count":22075570,"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","gotty","gotty-client","hack","proxy","terminal"],"created_at":"2024-08-01T15:02:26.779Z","updated_at":"2025-05-16T04:03:40.788Z","avatar_url":"https://github.com/moul.png","language":"Go","funding_links":["https://github.com/sponsors/moul","https://patreon.com/moul","https://opencollective.com/moul","https://manfred.life/donate"],"categories":["Go"],"sub_categories":[],"readme":"# gotty-client\n:wrench: Terminal client for [GoTTY](https://github.com/yudai/gotty).\n\n![](https://raw.githubusercontent.com/moul/gotty-client/master/resources/gotty-client.png)\n\n[![Build Status](https://travis-ci.org/moul/gotty-client.svg?branch=master)](https://travis-ci.org/moul/gotty-client)\n[![GoDoc](https://godoc.org/github.com/moul/gotty-client?status.svg)](https://godoc.org/github.com/moul/gotty-client)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoul%2Fgotty-client.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoul%2Fgotty-client?ref=badge_shield)\n[![Sourcegraph](https://sourcegraph.com/github.com/moul/gotty-client/-/badge.svg)](https://sourcegraph.com/github.com/moul/gotty-client?badge)\n\n```ruby\n                                                              +----------------+\n               +--------------+                +---------+---\u003e|   /bin/bash    |\n               |              |                |         |    +----------------+\n           +--\u003e|   Browser    |--+             |         |\n+-------+  |   |              |  |             |         |\n|       |  |   +--------------+  |             |         |    +----------------+\n|  Bob  |--+                     +-websocket--\u003e|  Gotty  |---\u003e| emacs /var/www |\n|       |  |    XXXXXXXXXXXXXX   |             |         |    +----------------+\n+-------+  |   X              X  |             |         |\n           +--\u003eX gotty-client X--+             |         |\n               X              X                |         |    +----------------+\n                XXXXXXXXXXXXXX                 +---------+---\u003e|  tmux attach   |\n                                                              +----------------+\n```\n\n## Example\n\nServer side ([GoTTY](https://github.com/yudai/gotty))\n\n```console\n$ gotty -p 9191 sh -c 'while true; do date; sleep 1; done'\n2015/08/24 18:54:31 Server is starting with command: sh -c while true; do date; sleep 1; done\n2015/08/24 18:54:31 URL: http://[::1]:9191/\n2015/08/24 18:54:34 GET /ws\n2015/08/24 18:54:34 New client connected: 127.0.0.1:61811\n2015/08/24 18:54:34 Command is running for client 127.0.0.1:61811 with PID 64834\n2015/08/24 18:54:39 Command exited for: 127.0.0.1:61811\n2015/08/24 18:54:39 Connection closed: 127.0.0.1:61811\n...\n```\n\n**Client side**\n\n```console\n$ gotty-client http://localhost:9191/\nINFO[0000] New title: GoTTY - sh -c while true; do date; sleep 1; done (jean-michel-van-damme.local)\nWARN[0000] Unhandled protocol message: json pref: 2{}\nMon Aug 24 18:54:34 CEST 2015\nMon Aug 24 18:54:35 CEST 2015\nMon Aug 24 18:54:36 CEST 2015\nMon Aug 24 18:54:37 CEST 2015\nMon Aug 24 18:54:38 CEST 2015\n^C\n```\n\n## Usage\n\n```console\n$ gotty-client -h\nNAME:\n   gotty-client - GoTTY client for your terminal\n\nUSAGE:\n   gotty-client [global options] command [command options] GOTTY_URL\n\nAUTHOR:\n   Manfred Touron \u003chttps://github.com/moul/gotty-client\u003e\n\nCOMMANDS:\n     help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --debug, -D                  Enable debug mode [$GOTTY_CLIENT_DEBUG]\n   --skip-tls-verify            Skip TLS verify [$SKIP_TLS_VERIFY]\n   --use-proxy-from-env         Use Proxy from environment [$USE_PROXY_FROM_ENV]\n   --detach-keys value          Key sequence for detaching gotty-client (default: \"ctrl-p,ctrl-q\")\n   --v2                         For Gotty 2.0 [$GOTTY_CLIENT_GOTTY2]\n   --ws-origin value, -w value  WebSocket Origin URL [$GOTTY_CLIENT_WS_ORIGIN]\n   --help, -h                   show help\n   --version, -v                print the version\n```\n\n## Install\n\nInstall latest version using Golang (recommended):\n\n```bash\ngit clone https://github.com/moul/gotty-client\ncd gotty-client\nmake install # or `go install ./cmd/gotty-client`\n```\n\n_PS: I don't know why, but `go get github.com/moul/gotty-client/cmd/gotty-client` is not stable everywhere_\n\n---\n\nInstall latest version using Homebrew (Mac OS X)\n\n```console\n$ brew install https://raw.githubusercontent.com/moul/gotty-client/master/contrib/homebrew/gotty-client.rb --HEAD\n```\n\nor the latest released version\n\n```console\n$ brew install https://raw.githubusercontent.com/moul/gotty-client/master/contrib/homebrew/gotty-client.rb\n```\n\n## Changelog\n\nSee https://github.com/moul/gotty-client/releases\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoul%2Fgotty-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoul%2Fgotty-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoul%2Fgotty-client/lists"}