{"id":30272116,"url":"https://github.com/tecuceanugabriel/tsman","last_synced_at":"2026-01-20T17:54:16.465Z","repository":{"id":302706409,"uuid":"998534318","full_name":"TecuceanuGabriel/tsman","owner":"TecuceanuGabriel","description":"A lightweight tmux session manager with fuzzy-finding","archived":false,"fork":false,"pushed_at":"2025-08-09T19:02:17.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-09T19:23:18.178Z","etag":null,"topics":["cli","fuzzy-finding","rust","session-manager","tmux","tui"],"latest_commit_sha":null,"homepage":"","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/TecuceanuGabriel.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}},"created_at":"2025-06-08T20:13:48.000Z","updated_at":"2025-08-09T19:02:15.000Z","dependencies_parsed_at":"2025-08-02T12:14:44.621Z","dependency_job_id":"b3c54d26-8696-4ad5-9b5a-105674c91d25","html_url":"https://github.com/TecuceanuGabriel/tsman","commit_stats":null,"previous_names":["tecuceanugabriel/tsman"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/TecuceanuGabriel/tsman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TecuceanuGabriel%2Ftsman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TecuceanuGabriel%2Ftsman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TecuceanuGabriel%2Ftsman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TecuceanuGabriel%2Ftsman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TecuceanuGabriel","download_url":"https://codeload.github.com/TecuceanuGabriel/tsman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TecuceanuGabriel%2Ftsman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270670063,"owners_count":24625444,"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-16T02:00:11.002Z","response_time":91,"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":["cli","fuzzy-finding","rust","session-manager","tmux","tui"],"created_at":"2025-08-16T05:13:42.743Z","updated_at":"2026-01-20T17:54:16.447Z","avatar_url":"https://github.com/TecuceanuGabriel.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# tsman\n\nA lightweight session manager for tmux\n\n[![CI](https://img.shields.io/github/actions/workflow/status/TecuceanuGabriel/tsman/build.yml?label=CI)](https://github.com/TecuceanuGabriel/tsman/actions)\n[![Crates.io](https://img.shields.io/crates/v/tsman?logo=rust)](https://crates.io/crates/tsman)\n[![Downloads](https://img.shields.io/crates/d/tsman?color=blue)](https://crates.io/crates/tsman)\n[![Tmux](https://img.shields.io/badge/tmux-%3E%3Dv3.2-1BB91F?logo=tmux)](https://github.com/tmux/tmux)\n[![License](https://img.shields.io/badge/License-MIT-orange)](LICENSE)\n\n[Features](#features) • [Installation](#installation) • [Usage](#usage) •\n[Configuration](#configuration)\n\n![Navigation](./assets/Navigation.gif)\n_Navigation_\n\n![Edit](./assets/Edit.gif)\n_Edit_\n\n![DeleteSave](./assets/DeleteSave.gif)\n_Delete/Save_\n\n\u003c/div\u003e\n\n## ✨Features\n\n- Quickly save/restore/delete tmux sessions.\n- Manually tweak session config files for better control.\n- Manage sessions from the interactive TUI menu:\n    - Use the keybindings to trigger actions (Save/Open/Edit/Delete).\n    - Fuzzily find sessions (powered by\n      [fuzzy-matcher](https://github.com/skim-rs/fuzzy-matcher)).\n    - View the sessions structure in the preview panel.\n\n## ⚡Requirements\n\n- tmux \u003e= [v3.2](https://github.com/tmux/tmux/releases/tag/3.5a)\n  (recommended for the display-popup feature).\n\n## 📦Installation\n\n```bash\ncargo install tsman\n```\n\n## 🚀Usage\n\n### Save current session\n\n```bash\ntsman save \u003csession_name\u003e # uses the specified name\ntsman save # uses the current name of the session\n```\n\n### Open a session\n\n```bash\ntsman open \u003csession_name\u003e\n```\n\n### Edit a session config file\n\nThe file is opened for editing in `$EDITOR`.\n\n```bash\ntsman edit \u003csession_name\u003e # edit the config file of the specified session\ntsman edit # edit the config file of the current session\n```\n\n### Delete a session config file\n\n```bash\ntsman delete \u003csession_name\u003e\n```\n\n### Open a menu that contains all saved sessions\n\n```bash\ntsman menu\ntsman menu --preview # open the menu with the preview pane on\ntsman menu --ask-for-confirmation # Open a confirmation popup when deleting\n```\n\n## ⌨️Menu keybindings:\n\nNavigation:\n\n| command              | action               |\n| -------------------- | -------------------- |\n| `Esc` / `C-c`        | Exit menu            |\n| `Up arrow` / `C-p`   | Select previous item |\n| `Down arrow` / `C-n` | Select next item     |\n\nSession actions:\n\n| command | saved session action                   | unsaved session action |\n| ------- | -------------------------------------- | ---------------------- |\n| `C-e`   | Edit config file of selected session   | -                      |\n| `C-d`   | Delete config file of selected session | Kill session           |\n| `C-s`   | -                                      | Save session           |\n| `C-k`   | Kill session                           | Kill session           |\n| `C-r`   | Rename session and update config file  | Rename session         |\n| `Enter` | Open session                           | Open session           |\n\nUI Controls:\n\n| command | action                                    |\n| ------- | ----------------------------------------- |\n| `C-t`   | Toggle the visibility of the preview pane |\n| `C-h`   | Toggle the visibility of the help popup   |\n| `C-w`   | Delete last word from input               |\n\nConfirmation Popup:\n\n| command                 | action  |\n| ----------------------- | ------- |\n| `y` / `Y` / `Enter`     | Confirm |\n| `n` / `N` / `Esc` / `q` | Abort   |\n\nHelp Popup:\n\n| command                               | action |\n| ------------------------------------- | ------ |\n| `C-h` / `C-c` / `Esc` / `q` / `Enter` | Close  |\n\n## 🔧Configuration\n\nYou can add keybindings/aliases to your tmux/shell config file for faster usage.\n\nExample config:\n\n`~/.tmux.conf`:\n\n```bash\n# open menu in a tmux popup with preview pane and delete confirmation on\n# note: requires tmux v3.2+\nbind -r f display-popup -E -w 80% -h 80% \"tsman menu -p -a\"\nbind -r C-s run-shell \"tsman save\"\n```\n\n`~/.zshrc`:\n\n```bash\nalias mux-fd=\"tsman menu -p -a\"\n```\n\nIf you want to set up a custom location to store session config files set the\n`TSMAN_CONFIG_STORAGE_DIR` env variable. You can add the following line to\nyour shell config file to make it persistent:\n\n```bash\nexport TSMAN_CONFIG_STORAGE_DIR=\"$HOME/mux-sessions\"\n```\n\n## 🗒️Notes\n\n- `$EDITOR` must be set to use the edit command.\n- the session config files are saved by defult in `~/.config/.tsessions/`.\n\n## 🤝Contributing\n\n- Please see [CONTRIBUTING.md](./.github/CONTRIBUTING.md)\n\n## 🙏Acknowledgements\n\n- [tmuxinator](https://github.com/tmuxinator/tmuxinator)\n- [ThePrimeagen's tmux-sessionizer](https://github.com/ThePrimeagen/tmux-sessionizer)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftecuceanugabriel%2Ftsman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftecuceanugabriel%2Ftsman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftecuceanugabriel%2Ftsman/lists"}