{"id":18257950,"url":"https://github.com/linkdd/manyssh","last_synced_at":"2025-04-08T22:46:53.075Z","repository":{"id":27043643,"uuid":"30508803","full_name":"linkdd/manyssh","owner":"linkdd","description":"One command line to control multiple SSH connections.","archived":false,"fork":false,"pushed_at":"2015-11-05T09:15:19.000Z","size":236,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-14T17:57:48.758Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/linkdd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-08T22:44:23.000Z","updated_at":"2015-02-09T09:14:34.000Z","dependencies_parsed_at":"2022-09-01T02:23:48.828Z","dependency_job_id":null,"html_url":"https://github.com/linkdd/manyssh","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkdd%2Fmanyssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkdd%2Fmanyssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkdd%2Fmanyssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkdd%2Fmanyssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linkdd","download_url":"https://codeload.github.com/linkdd/manyssh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247941719,"owners_count":21022037,"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":[],"created_at":"2024-11-05T10:28:19.988Z","updated_at":"2025-04-08T22:46:53.060Z","avatar_url":"https://github.com/linkdd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ManySSH\n\n\u003ca href=\"https://travis-ci.org/linkdd/manyssh\"\u003e\n    \u003cimg src=\"https://travis-ci.org/linkdd/manyssh.svg\"/\u003e\n\u003c/a\u003e\n\nOne command line to control multiple SSH connections.\n\n## Installation\n\n    # apt-get install gir1.2-gtk-3.0 gir1.2-vte-2.90 python-gi python-gobject python-gobject-2 python-gobject-dev\n    $ git clone https://github.com/linkdd/manyssh.git\n    $ cd manyssh\n    $ pip install -r requirements.txt\n    $ python setup.py install\n\n## Usage\n\n*ManySSH* reads the following configuration files, if found:\n\n * /etc/xdg/manyssh/clusters.conf\n * ~/.config/manyssh/clusters.conf\n * ./clusters.conf\n\nThe ``clusters.conf`` file contains clusters definition as JSON:\n\n    {\n        \"mycluster0\": [\n            \"root@myhost0\",\n            \"root@myhost1\",\n            \"root@myhost2\"\n        ],\n        \"mycluster1\": [\n            \"user@myhost0\",\n            \"user@myhost1\",\n            \"user@myhost2\"\n        ],\n        \"mytunnel0\": [\n            \"root@myhost0 -L8001:localhost:8000\",\n            \"root@myhost1 -L8002:localhost:8000\",\n            \"root@myhost2 -L8003:localhost:8000\"\n        ]\n    }\n\nYou're now able to open your cluster with:\n\n    $ manyssh mycluster0\n\n## User Interface\n\n![Main Window](https://raw.githubusercontent.com/linkdd/manyssh/master/doc/ui.png)\n\nHere, your in **INSERT** mode, everything you type will be sent through all activated connections.\n\nUsing ``\u003cControl\u003e+Escape``, you will switch to the **COMMAND** mode, allowing you to type commands (instead of clicking).\nUse ``\u003cControl\u003e+Insert`` to switch back to the **INSERT** mode.\n\nA connection can be activated or disabled via:\n\n * the checkbox in its tab ;\n * the command ``t``.\n\nYou can also toggle the state of all connections with:\n\n * the *convert* button (first one of the toolbar) ;\n * the command ``ta``.\n\nA connection can be refreshed, it will eventually kill the current process and start a new one.\n\nYou an do this via:\n\n * the refresh button in its tab ;\n * the command ``r`` ;\n * the refresh button in the toolbar, to refresh all ;\n * the command ``ra``, to refresh all.\n\nYou have two more commands, to navigate into tabs:\n\n * ``p`` : go to previous page ;\n * ``n`` : go to last page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinkdd%2Fmanyssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinkdd%2Fmanyssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinkdd%2Fmanyssh/lists"}