{"id":30071243,"url":"https://github.com/elliotnash/musht","last_synced_at":"2025-08-08T12:25:35.470Z","repository":{"id":54038682,"uuid":"344966495","full_name":"elliotnash/musht","owner":"elliotnash","description":"a mosh client wrapper written in rust with support for domain port records.","archived":false,"fork":false,"pushed_at":"2021-03-20T22:23:05.000Z","size":104,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-03T22:24:42.601Z","etag":null,"topics":["linux","macos","mosh","mosh-client","rust","srv","srv-records","ssh","ssh-client","txt","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elliotnash.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}},"created_at":"2021-03-06T00:12:11.000Z","updated_at":"2022-12-05T04:11:55.000Z","dependencies_parsed_at":"2022-08-13T06:10:55.937Z","dependency_job_id":null,"html_url":"https://github.com/elliotnash/musht","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/elliotnash/musht","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotnash%2Fmusht","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotnash%2Fmusht/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotnash%2Fmusht/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotnash%2Fmusht/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elliotnash","download_url":"https://codeload.github.com/elliotnash/musht/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotnash%2Fmusht/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269420482,"owners_count":24414062,"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-08-08T02:00:09.200Z","response_time":72,"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":["linux","macos","mosh","mosh-client","rust","srv","srv-records","ssh","ssh-client","txt","wrapper"],"created_at":"2025-08-08T12:25:30.247Z","updated_at":"2025-08-08T12:25:35.460Z","avatar_url":"https://github.com/elliotnash.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Musht\n\n## About\n\nMusht is a simple wrapper for the mosh client written in rust.\nIts main goal is to provide support for loading port information from dns records, but also features a few other tweaks. Musht does not need to be installed on the server, and will work just fine with a standard mosh install, but to take full advantage of it's features you will need a domain and the ability to configure dns records.\n\n## Features\n\n### Current\n\n- Resolve ports from txt records, allowing both ssh ports and mosh ports to be stored in the domain\n\n- allow ssh ports to be passed with [user]@host:[port] syntax instead of requiring ssh ports to be passed as an ssh argument\n\n### Planned\n\n- fallback to ssh if server doesn't have/can't start mosh\n\n- if tmux is installed and configured, automatically enable support for scrolling / history\n\n## Installation\n\nAt this time, no prebuilt binaries are published, so you'll need to compile them yourself.\n\nFirst, make sure you have rust installed. The recommended way to this is through [rustup](https://rustup.rs/), but there are alternate ways if you would like better integration with your package manager.\n\nYou will also need to make sure you've added $HOME/.cargo/bin to your path.\n\nMusht also requires [mosh](https://mosh.org/) to run, so make sure you have it installed.\n\nFrom here there are two installation methods. If you're not sure which one to pick, follow the install script method.\n\n### Install Script\n\n1. clone the repository `git clone https://github.com/elliotnash/musht.git`\n\n2. enter musht directory `cd musht`\n\n3. make install script executable `chmod 777 *install.sh`\n\n4. run install `./install.sh`\n\n### Manual Install\n\nthe install script edits your .bashrc or .zshrc, so if you would like complete control over the installation, follow this\n\n1. clone the repository `git clone https://github.com/elliotnash/musht.git`\n\n2. enter musht directory `cd musht`\n\n3. build and install binary to ~/.cargo/bin `cargo install --force --path .`\n\n4. to enable completions, setup `complete -C __musht_completions musht` to be run each time your shell starts (etc in your .bashrc or .zshrc)\n\n## Dns Setup\n\nTo take adventage of musht's dns resolving, you'll need to have a record like an a, aaaa, or cname pointing to your servers ip, and you'll also need a txt record with the same name with a value like this, replacing the ports with the ports you want mosh to use.\n```json\n{\"ssh_port\": \"22\", \"mosh_ports\": \"60000:61000\"}\n```\nssh_port must be a single port, wheras mosh_ports should be a port range. mosh_ports *can* be set to a single port, but it is highly discouraged as each mosh connection runs on a seperate port, and a single port would only allow one simultaneous connection\n\n## Uninstallation\n\nrun `./uninstall.sh` from the git directory\n\n## License\n\nMusht is licensed under GPL-3.0, see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felliotnash%2Fmusht","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felliotnash%2Fmusht","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felliotnash%2Fmusht/lists"}