{"id":47301159,"url":"https://github.com/asermax/seemux","last_synced_at":"2026-05-05T00:03:40.987Z","repository":{"id":344507398,"uuid":"1182045654","full_name":"asermax/seemux","owner":"asermax","description":"A GTK4 terminal multiplexer for Linux with Claude Code integration, inspired by cmux.","archived":false,"fork":false,"pushed_at":"2026-04-01T18:02:13.000Z","size":4485,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-02T06:26:18.143Z","etag":null,"topics":["claude-code","gtk4","multiplexer","rust","terminal"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/asermax.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-03-15T00:53:28.000Z","updated_at":"2026-04-01T19:03:26.000Z","dependencies_parsed_at":"2026-04-05T04:01:08.633Z","dependency_job_id":null,"html_url":"https://github.com/asermax/seemux","commit_stats":null,"previous_names":["asermax/seemux"],"tags_count":93,"template":false,"template_full_name":null,"purl":"pkg:github/asermax/seemux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asermax%2Fseemux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asermax%2Fseemux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asermax%2Fseemux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asermax%2Fseemux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asermax","download_url":"https://codeload.github.com/asermax/seemux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asermax%2Fseemux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31423887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T02:22:46.605Z","status":"ssl_error","status_checked_at":"2026-04-05T02:22:33.263Z","response_time":75,"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":["claude-code","gtk4","multiplexer","rust","terminal"],"created_at":"2026-03-17T02:18:50.270Z","updated_at":"2026-04-05T04:01:30.319Z","avatar_url":"https://github.com/asermax.png","language":"Rust","funding_links":[],"categories":["Cross-Platform Ports"],"sub_categories":["Linux"],"readme":"# seemux\n\nA GTK4 terminal multiplexer for Linux with Claude Code integration, inspired by [cmux](https://github.com/manaflow-ai/cmux).\n\n## Features\n\n- **Tabbed terminal** with vertical sidebar showing title, git branch, status pill, and notification badges\n- **Collapsible sidebar** — collapse to a minimal 24px bar with colored status dots; expand back to full view (Ctrl+Shift+B)\n- **Split panes** — horizontal and vertical splits within any tab, with click-to-focus and directional navigation\n- **Tab groups** — organize tabs into named, collapsible groups with drag-and-drop reordering\n- **Claude Code integration** — real-time session status (Running, Needs Input, Completed, Error) and desktop notifications via a Claude Code plugin, with automatic session resume on restart\n- **Agent Teams support** — tmux shim intercepts Claude Code team commands, spawning subagent sessions as seemux tabs in dedicated team groups\n- **PR detection** — automatically detects PRs created by Claude via `gh pr` and shows a clickable badge on the tab\n- **Running command detection** — shows a Running status pill for long-running terminal commands (3s debounce) and notifies on completion when the tab is backgrounded\n- **System tray** — branded tray icon with notification badge (unread count), click to toggle dropdown or activate window\n- **Dropdown mode** — quake-style terminal toggled via `seemux toggle` or a global shortcut\n- **Editor integration** — Ctrl+Click or right-click file:// links to open in neovim with per-terminal socket reuse\n- **Session persistence** — tabs, groups, splits, working directories, sidebar state, and Claude sessions restored on restart; collapsed groups defer terminal spawning until expanded\n- **Tab peek** — tabs with notifications or running commands automatically peek out of collapsed groups\n- **Themes** — Catppuccin Mocha (default) and Dracula\n\n## Requirements\n\n- GTK4 (4.12+)\n- VTE4 (0.76+)\n- Rust 2024 edition\n- `socat` (for Claude Code hook communication)\n\n## Install\n\n```bash\ncargo build --release\n```\n\nThe binary will be at `target/release/seemux`.\n\n## Usage\n\n```bash\nseemux           # Launch the terminal\nseemux toggle    # Toggle dropdown window (bind to a global hotkey)\n```\n\n## Claude Code Integration\n\nSeemux includes a Claude Code plugin that sends session lifecycle events to seemux via Unix socket, enabling real-time status indicators and notification badges on your terminal tabs.\n\n### Plugin Setup\n\n```bash\n# Add the seemux plugin marketplace\nclaude /plugins marketplace add github asermax/seemux\n\n# Install the hooks plugin\nclaude /plugins install seemux-hooks\n```\n\nThat's it. When you run `claude` inside a seemux terminal, the plugin detects the `$SEEMUX_SOCKET` env var and sends events automatically. Your existing Claude Code settings and hooks are preserved — the plugin hooks are additive.\n\n### How It Works\n\n```\nClaude Code ──hooks──\u003e seemux-hook.sh ──Unix socket──\u003e seemux ──\u003e UI updates\n```\n\n1. Seemux sets `SEEMUX_SOCKET` and `SEEMUX_SESSION_ID` env vars in each terminal\n2. The plugin's hook scripts read these env vars and send event JSON to the socket\n3. Seemux receives events on its background thread and updates the sidebar:\n   - **Status pill** — Running (blue), Needs Input (yellow), Completed (green), Error (red), Idle (gray)\n   - **Notification badge** — unread count with preview text\n   - **Desktop notifications** — for Permission, Error, and Waiting events when the tab is not active\n4. On restart, Claude sessions are automatically resumed via `claude --resume`\n\n## Keyboard Shortcuts\n\n### Tabs\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+Shift+T | New tab (inherits active terminal's CWD) |\n| Ctrl+Shift+W | Close pane (or tab if single pane) |\n| Ctrl+Tab / Ctrl+Page Down | Next tab |\n| Ctrl+Shift+Tab / Ctrl+Page Up | Previous tab |\n| Alt+Page Down | Next tab |\n| Alt+Page Up | Previous tab |\n| Alt+1-9 / Ctrl+1-9 | Jump to tab by index |\n| Hold Alt | Show tab index numbers in sidebar |\n\n### Sidebar\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+Shift+B | Toggle sidebar collapse/expand |\n\n### Groups\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+Shift+G | New group |\n| Ctrl+Alt+Page Down | Next group |\n| Ctrl+Alt+Page Up | Previous group |\n| Ctrl+Shift+] | Collapse active group |\n| Ctrl+Shift+[ | Expand active group |\n\n### Notifications\n\n| Shortcut | Action |\n|----------|--------|\n| Alt+Shift+Page Down | Next tab with notifications (falls back to next tab) |\n| Alt+Shift+Page Up | Previous tab with notifications (falls back to previous tab) |\n| Ctrl+Shift+Page Down | Next running tab |\n| Ctrl+Shift+Page Up | Previous running tab |\n\n### Split Panes\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+Shift+H | Split horizontal |\n| Ctrl+Shift+E | Split vertical |\n| Alt+h | Focus pane left |\n| Alt+j | Focus pane down |\n| Alt+k | Focus pane up |\n| Alt+l | Focus pane right |\n\n### Terminal\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+Shift+C | Copy |\n| Ctrl+Shift+V | Paste |\n| Ctrl+Click | Open URL under cursor (file:// opens in editor, others in browser) |\n\n### Window\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+Shift+N | New window |\n\n### Context Menu\n\nRight-click on the terminal area for: Copy, Paste, Split Horizontal, Split Vertical, Close. When clicking on a URL, additional options appear:\n- **file:// links (text files)**: Open in Editor (neovim), Open with external App\n- **Other URLs**: Open URL\n\nRight-click on a tab for: Close, Close Others.\n\nRight-click on a group header for: Rename Group, Delete Group.\n\n### Drag and Drop\n\nTabs can be dragged between groups and reordered within a group.\n\n## Configuration\n\nConfig file at `~/.config/seemux/config.toml`:\n\n```toml\nfont_family = \"Monospace\"         # Font family\nfont_size = 13                    # Font size in points\nscrollback_lines = 10000          # Terminal scrollback buffer\nsidebar_width = 200               # Sidebar width in pixels\ncolor_scheme = \"catppuccin-mocha\" # \"catppuccin-mocha\" or \"dracula\"\ndropdown_width_percent = 90       # Dropdown window width (% of screen)\ndropdown_height_percent = 50      # Dropdown window height (% of screen)\ndropdown_animation_ms = 200       # Dropdown slide animation duration\nsidebar_collapsed = false         # Start with sidebar collapsed\n```\n\n## File Locations\n\n| File | Path |\n|------|------|\n| Config | `~/.config/seemux/config.toml` |\n| Session state | `~/.local/state/seemux/sessions.json` |\n| Runtime socket | `$XDG_RUNTIME_DIR/seemux/seemux.sock` |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasermax%2Fseemux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasermax%2Fseemux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasermax%2Fseemux/lists"}