{"id":33014598,"url":"https://github.com/alberti42/tmux-ssh-syncing","last_synced_at":"2026-01-23T10:14:23.584Z","repository":{"id":269634198,"uuid":"907792332","full_name":"alberti42/tmux-ssh-syncing","owner":"alberti42","description":"A zsh plugin to sync tmux window names with ssh sessions","archived":false,"fork":false,"pushed_at":"2025-09-07T18:50:38.000Z","size":3745,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-07T20:20:50.454Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","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/alberti42.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-24T11:57:20.000Z","updated_at":"2025-09-07T18:50:42.000Z","dependencies_parsed_at":"2024-12-25T03:16:36.924Z","dependency_job_id":"cede7e24-072c-4b71-a3d7-fac057c5b571","html_url":"https://github.com/alberti42/tmux-ssh-syncing","commit_stats":null,"previous_names":["alberti42/tmux-ssh-syncing"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/alberti42/tmux-ssh-syncing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberti42%2Ftmux-ssh-syncing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberti42%2Ftmux-ssh-syncing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberti42%2Ftmux-ssh-syncing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberti42%2Ftmux-ssh-syncing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alberti42","download_url":"https://codeload.github.com/alberti42/tmux-ssh-syncing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberti42%2Ftmux-ssh-syncing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28687416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-11-13T18:00:20.532Z","updated_at":"2026-01-23T10:14:23.576Z","avatar_url":"https://github.com/alberti42.png","language":"Shell","readme":"# tmux-ssh-syncing Plugin for Zsh Shell\n\nSynchronize your `tmux` window names with active `ssh` sessions. This plugin dynamically updates the `tmux` window name to reflect the remote hosts of active `ssh` sessions in the same window. It also restores the original window name when all `ssh` sessions are closed.\n\n## Features\n\n- Dynamically updates `tmux` window names to show connected remote hosts.\n- Ensures unique and clean concatenation of remote hostnames.\n- Automatically restores the original `tmux` window name when no `ssh` sessions remain.\n- Automatically restores the original cursor style after an `ssh` session\n- Works seamlessly with `oh-my-zsh` and `zinit` plugin managers.\n\n\u003chttps://github.com/user-attachments/assets/25f5c846-5093-4307-a77d-17f2598cdf44\u003e\n\n---\n\n## Installation\n\n### Using [oh-my-zsh](https://ohmyz.sh)\n\n1. Clone the repository into the `custom/plugins` directory:\n   ```\n   git clone https://github.com/alberti42/tmux-ssh-syncing.git $ZSH_CUSTOM/plugins/tmux-ssh-syncing\n   ```\n\n2. Add the plugin to your `.zshrc`:\n   ```\n   plugins=(... tmux-ssh-syncing)\n   ```\n\n3. Restart your terminal or reload your shell:\n   ```\n   source ~/.zshrc\n   ```\n\n### Using [zinit](https://github.com/zdharma-continuum/zinit)\n\n1. Add the following to your `.zshrc`:\n   ```\n   zinit ice lucid wait\n   zinit light alberti42/tmux-ssh-syncing\n   ```\n\n2. Restart your terminal or reload your shell:\n   ```\n   source ~/.zshrc\n   ```\n\n---\n\n## How It Works\n\n- When you start an `ssh` session inside `tmux`, the plugin:\n  - Captures the remote hostname of the session.\n  - Appends the hostname to the current `tmux` window name.\n  - Ensures unique hostnames in the window name.\n- When the `ssh` session ends:\n  - The plugin removes the hostname from the `tmux` window name.\n  - If no active `ssh` sessions remain, it restores the original window name.\n\n---\n\n## Example\n\n1. Open a `tmux` session.\n2. Start an `ssh` session:\n   ```\n   ssh user@remote-host\n   ```\n   The `tmux` window name updates to:\n   ```\n   remote-host\n   ```\n\n3. Open another pane and start a new `ssh` session:\n   ```\n   ssh user@another-host\n   ```\n   The `tmux` window name updates to:\n   ```\n   remote-host+another-host\n   ```\n\n4. Exit one or both `ssh` sessions, and the window name dynamically adjusts or restores to its original name.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":["Plugins"],"sub_categories":["ZSH on Windows"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falberti42%2Ftmux-ssh-syncing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falberti42%2Ftmux-ssh-syncing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falberti42%2Ftmux-ssh-syncing/lists"}