{"id":13419815,"url":"https://github.com/ekzhang/sshx","last_synced_at":"2025-05-14T22:02:37.115Z","repository":{"id":205521912,"uuid":"458663914","full_name":"ekzhang/sshx","owner":"ekzhang","description":"Fast, collaborative live terminal sharing over the web","archived":false,"fork":false,"pushed_at":"2025-02-12T20:40:30.000Z","size":1206,"stargazers_count":6541,"open_issues_count":14,"forks_count":223,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-05-07T21:12:13.030Z","etag":null,"topics":["collaborative","rust","share","ssh","terminal","tty","web"],"latest_commit_sha":null,"homepage":"https://sshx.io","language":"Rust","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/ekzhang.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}},"created_at":"2022-02-12T23:29:33.000Z","updated_at":"2025-05-07T16:25:17.000Z","dependencies_parsed_at":"2024-10-30T13:00:43.269Z","dependency_job_id":"8cf4b20b-f91c-4ad7-a52f-325a7a69a601","html_url":"https://github.com/ekzhang/sshx","commit_stats":{"total_commits":304,"total_committers":3,"mean_commits":"101.33333333333333","dds":0.006578947368421018,"last_synced_commit":"c94590c294f9e3438b53f74fde5cc4ed42a61337"},"previous_names":["ekzhang/sshx"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekzhang%2Fsshx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekzhang%2Fsshx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekzhang%2Fsshx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekzhang%2Fsshx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekzhang","download_url":"https://codeload.github.com/ekzhang/sshx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235685,"owners_count":22036962,"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":["collaborative","rust","share","ssh","terminal","tty","web"],"created_at":"2024-07-30T22:01:21.252Z","updated_at":"2025-05-14T22:02:32.105Z","avatar_url":"https://github.com/ekzhang.png","language":"Rust","readme":"# sshx\n\nA secure web-based, collaborative terminal.\n\n![](https://i.imgur.com/Q3qKAHW.png)\n\n**Features:**\n\n- Run a single command to share your terminal with anyone.\n- Resize, move windows, and freely zoom and pan on an infinite canvas.\n- See other people's cursors moving in real time.\n- Connect to the nearest server in a globally distributed mesh.\n- End-to-end encryption with Argon2 and AES.\n- Automatic reconnection and real-time latency estimates.\n- Predictive echo for faster local editing (à la Mosh).\n\nVisit [sshx.io](https://sshx.io) to learn more.\n\n## Installation\n\nJust run this command to get the `sshx` binary for your platform.\n\n```shell\ncurl -sSf https://sshx.io/get | sh\n```\n\nSupports Linux and MacOS on x86_64 and ARM64 architectures, as well as embedded\nARMv6 and ARMv7-A systems. The Linux binaries are statically linked.\n\nFor Windows, there are binaries for x86_64, x86, and ARM64, linked to MSVC for\nmaximum compatibility.\n\nIf you just want to try it out without installing, use:\n\n```shell\ncurl -sSf https://sshx.io/get | sh -s run\n```\n\nInspect the script for additional options.\n\nYou can also install it with [Homebrew](https://brew.sh/) on macOS.\n\n```shell\nbrew install sshx\n```\n\n### CI/CD\n\nYou can run sshx in continuous integration workflows to help debug tricky\nissues, like in GitHub Actions.\n\n```yaml\nname: CI\non: push\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n\n      # ... other steps ...\n\n      - run: curl -sSf https://sshx.io/get | sh -s run\n      #      ^\n      #      └ This will open a remote terminal session and print the URL. It\n      #        should take under a second.\n```\n\nWe don't have a prepackaged action because it's just a single command. It works\nanywhere: GitLab CI, CircleCI, Buildkite, CI on your Raspberry Pi, etc.\n\nBe careful adding this to a public GitHub repository, as any user can view the\nlogs of a CI job while it is running.\n\n## Development\n\nHere's how to work on the project, if you want to contribute.\n\n### Building from source\n\nTo build the latest version of the client from source, clone this repository and\nrun, with [Rust](https://rust-lang.com/) installed:\n\n```shell\ncargo install --path crates/sshx\n```\n\nThis will compile the `sshx` binary and place it in your `~/.cargo/bin` folder.\n\n### Workflow\n\nFirst, start service containers for development.\n\n```shell\ndocker compose up -d\n```\n\nInstall [Rust 1.70+](https://www.rust-lang.org/),\n[Node v18](https://nodejs.org/), [NPM v9](https://www.npmjs.com/), and\n[mprocs](https://github.com/pvolok/mprocs). Then, run\n\n```shell\nnpm install\nmprocs\n```\n\nThis will compile and start the server, an instance of the client, and the web\nfrontend in parallel on your machine.\n\n## Deployment\n\nI host the application servers on [Fly.io](https://fly.io/) and with\n[Redis Cloud](https://redis.com/).\n\nSelf-hosted deployments are not supported at the moment. If you want to deploy\nsshx, you'll need to properly implement HTTP/TCP reverse proxies, gRPC\nforwarding, TLS termination, private mesh networking, and graceful shutdown.\n\nPlease do not run the development commands in a public setting, as this is\ninsecure.\n","funding_links":[],"categories":["Rust","网络服务","Table of Contents","\u003ca name=\"networking\"\u003e\u003c/a\u003eNetworking"],"sub_categories":["网络服务_其他","Terminal Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekzhang%2Fsshx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekzhang%2Fsshx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekzhang%2Fsshx/lists"}