{"id":48016549,"url":"https://github.com/psmux/psmux-plugins","last_synced_at":"2026-04-04T13:43:57.127Z","repository":{"id":341134692,"uuid":"1166365119","full_name":"psmux/psmux-plugins","owner":"psmux","description":"Official plugin ecosystem for psmux — the native Windows tmux built in Rust. Ports of popular tmux plugins reimplemented in PowerShell.","archived":false,"fork":false,"pushed_at":"2026-03-04T10:19:37.000Z","size":163,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-17T05:29:38.082Z","etag":null,"topics":["plugin-manager","powershell","psmux","rust","terminal","terminal-multiplexer","tmux","tmux-plugins","windows","windows-terminal"],"latest_commit_sha":null,"homepage":"https://github.com/marlocarlo/psmux","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psmux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2026-02-25T06:28:21.000Z","updated_at":"2026-03-15T21:58:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/psmux/psmux-plugins","commit_stats":null,"previous_names":["marlocarlo/psmux-plugins","psmux/psmux-plugins"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/psmux/psmux-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psmux%2Fpsmux-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psmux%2Fpsmux-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psmux%2Fpsmux-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psmux%2Fpsmux-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psmux","download_url":"https://codeload.github.com/psmux/psmux-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psmux%2Fpsmux-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"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":["plugin-manager","powershell","psmux","rust","terminal","terminal-multiplexer","tmux","tmux-plugins","windows","windows-terminal"],"created_at":"2026-04-04T13:43:57.023Z","updated_at":"2026-04-04T13:43:57.110Z","avatar_url":"https://github.com/psmux.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Psmux Plugins\n\nThe official plugin ecosystem for [psmux](https://github.com/marlocarlo/psmux) — the native Windows tmux built in Rust.\n\nPorts of the most popular tmux plugins, reimplemented in PowerShell for Windows.\n\n---\n\n## Quick Start\n\n### 1. Install PPM (Psmux Plugin Manager)\n\n```powershell\ngit clone https://github.com/marlocarlo/psmux-plugins.git \"$env:TEMP\\psmux-plugins\" ; Copy-Item \"$env:TEMP\\psmux-plugins\\ppm\" \"$env:USERPROFILE\\.psmux\\plugins\\ppm\" -Recurse ; Remove-Item \"$env:TEMP\\psmux-plugins\" -Recurse -Force\n```\n\n### 2. Configure Plugins\n\nAdd to your `~/.psmux.conf`:\n\n```tmux\n# ===========================================\n# Plugins\n# ===========================================\nset -g @plugin 'psmux-plugins/ppm'\nset -g @plugin 'psmux-plugins/psmux-sensible'\nset -g @plugin 'psmux-plugins/psmux-resurrect'\nset -g @plugin 'psmux-plugins/psmux-pain-control'\n\n# Initialize PPM (keep at the very bottom)\nrun '~/.psmux/plugins/ppm/ppm.ps1'\n```\n\n### 3. Install Plugins\n\nStart psmux and press `Prefix + I` (capital I) to install.\n\n---\n\n## Available Plugins\n\n| Plugin | Description | Tmux Equivalent |\n|--------|-------------|-----------------|\n| [**ppm**](ppm/) | Plugin manager | [tpm](https://github.com/tmux-plugins/tpm) |\n| [**psmux-sensible**](psmux-sensible/) | Sensible defaults | [tmux-sensible](https://github.com/tmux-plugins/tmux-sensible) |\n| [**psmux-resurrect**](psmux-resurrect/) | Save/restore sessions | [tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) |\n| [**psmux-continuum**](psmux-continuum/) | Auto-save/restore | [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) |\n| [**psmux-pain-control**](psmux-pain-control/) | Better pane navigation | [tmux-pain-control](https://github.com/tmux-plugins/tmux-pain-control) |\n| [**psmux-prefix-highlight**](psmux-prefix-highlight/) | Prefix key indicator | [tmux-prefix-highlight](https://github.com/tmux-plugins/tmux-prefix-highlight) |\n| [**psmux-battery**](psmux-battery/) | Battery status bar | [tmux-battery](https://github.com/tmux-plugins/tmux-battery) |\n| [**psmux-cpu**](psmux-cpu/) | CPU/memory status bar | [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu) |\n| [**psmux-logging**](psmux-logging/) | Pane output logging | [tmux-logging](https://github.com/tmux-plugins/tmux-logging) |\n| [**psmux-sidebar**](psmux-sidebar/) | Directory tree sidebar | [tmux-sidebar](https://github.com/tmux-plugins/tmux-sidebar) |\n\n### Theme Plugins\n\n| Theme | Description | Tmux Equivalent |\n|-------|-------------|-----------------|\n| [**psmux-theme-dracula**](psmux-theme-dracula/) | Dracula dark theme | [tmux-dracula](https://github.com/dracula/tmux) |\n| [**psmux-theme-catppuccin**](psmux-theme-catppuccin/) | Catppuccin pastel theme (4 flavors) | [catppuccin/tmux](https://github.com/catppuccin/tmux) |\n| [**psmux-theme-nord**](psmux-theme-nord/) | Nord arctic theme | [nord-tmux](https://github.com/arcticicestudio/nord-tmux) |\n| [**psmux-theme-tokyonight**](psmux-theme-tokyonight/) | Tokyo Night theme (3 styles) | [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) |\n| [**psmux-theme-gruvbox**](psmux-theme-gruvbox/) | Gruvbox retro theme (dark/light) | [tmux-gruvbox](https://github.com/egel/tmux-gruvbox) |\n\n---\n\n## Key Bindings Summary\n\n### PPM (Plugin Manager)\n| Key | Action |\n|-----|--------|\n| `Prefix + I` | Install plugins |\n| `Prefix + U` | Update plugins |\n| `Prefix + M` | Remove unused plugins |\n\n### psmux-sensible\n| Key | Action |\n|-----|--------|\n| `Prefix + R` | Reload config |\n| `Prefix + \\|` | Split horizontal |\n| `Prefix + -` | Split vertical |\n| `Shift + Left/Right` | Prev/next window (no prefix) |\n\n### psmux-resurrect\n| Key | Action |\n|-----|--------|\n| `Prefix + Ctrl-s` | Save environment |\n| `Prefix + Ctrl-r` | Restore environment |\n\n### psmux-pain-control\n| Key | Action |\n|-----|--------|\n| `Prefix + h/j/k/l` | Navigate panes (vim) |\n| `Prefix + Alt-h/j/k/l` | Resize panes |\n| `Prefix + \\|` or `\\` | Split horizontal |\n| `Prefix + -` or `_` | Split vertical |\n\n### psmux-logging\n| Key | Action |\n|-----|--------|\n| `Prefix + Alt-o` | Toggle logging |\n| `Prefix + Alt-p` | Screen capture |\n| `Prefix + Alt-i` | Full history capture |\n| `Prefix + Alt-c` | Clear pane history |\n\n### psmux-sidebar\n| Key | Action |\n|-----|--------|\n| `Prefix + Tab` | Toggle sidebar |\n| `Prefix + Shift-Tab` | Toggle (focus sidebar) |\n\n### psmux-battery / psmux-cpu\n| Key | Action |\n|-----|--------|\n| `Prefix + B` | Show battery info |\n| `Prefix + Ctrl-c` | Show CPU/memory info |\n\n---\n\n## For Plugin Developers\n\nSee the [Plugin Developer Guide](PLUGIN_DEVELOPER_GUIDE.md) for:\n\n- How to create psmux plugins from scratch\n- How to port existing tmux plugins to psmux\n- Complete bash-to-PowerShell translation reference\n- Plugin API reference and best practices\n- Testing and publishing guide\n\n---\n\n## Architecture\n\n```\n~/.psmux/plugins/\n  ppm/                     # Plugin manager\n    ppm.ps1                # Main entry point\n    scripts/\n      install_plugins.ps1\n      update_plugins.ps1\n      clean_plugins.ps1\n  psmux-sensible/          # Each plugin gets its own directory\n    psmux-sensible.ps1\n  psmux-resurrect/\n    psmux-resurrect.ps1\n  ...\n```\n\n### How It Works\n\n1. `~/.psmux.conf` declares plugins with `set -g @plugin 'owner/repo'`\n2. The final `run '..ppm.ps1'` line loads PPM\n3. PPM sources all installed plugins on startup\n4. Each plugin configures psmux via CLI commands (`set-option`, `bind-key`, `set-hook`)\n5. `Prefix + I` clones new plugins from GitHub\n\n### Why PowerShell?\n\npsmux is a native Windows application. Its plugins use PowerShell because:\n\n- **Native integration**: `Set-Clipboard`, `Get-CimInstance`, Windows APIs\n- **No dependencies**: PowerShell 7 comes with psmux, no bash/cygwin needed\n- **Same power**: PowerShell can do everything bash scripts do\n- **Windows-first**: File paths, process management, scheduled tasks all just work\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsmux%2Fpsmux-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsmux%2Fpsmux-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsmux%2Fpsmux-plugins/lists"}