8 releases
| new 0.10.1 | Mar 11, 2026 |
|---|---|
| 0.9.9 | Mar 9, 2026 |
| 0.8.2 | Mar 1, 2026 |
| 0.8.1 | Feb 28, 2026 |
#745 in Development tools
250KB
6K
SLoC
wsx
ENG | 한국어
TUI workspace manager for git worktrees and tmux sessions.
The core idea
Keep a live view of every project → worktree → tmux session in a sidebar.
Each session shows real-time state so you can see what needs attention without entering it.
Simply pressing n to iterate sessions where attention is required.
▼ project
▾ main * ↑2
◉ wsx_cc_main
▸ feature-auth ↓1
○ wsx_cc_auth
flowchart LR
P[Project] --> W1[Worktree main]
P --> W2[Worktree feature-auth]
W1 --> S1[Session: nvim]
W1 --> S2[Session: dev]
W2 --> S3[Session: dev]
Guide
| Feature | Screenshot |
|---|---|
Project config .gtrconfig at repo root — post-create hook, auto-copy env files into new worktrees. Press e to view. |
|
Add project Press p, enter a path. Tab-completion supported. |
|
New worktree Select a project, press w, enter a branch name. |
|
Sessions Select a worktree, press s. Name by context — shell, claude, build. Sessions are persistent tmux sessions; d deletes, r renames. |
|
Iterate pending n / N to jump between ● sessions. x dismisses; press again to mute ⊘. a cycles active ◉ sessions. |
|
Remote control S sends a command to the selected session without entering it. C sends Ctrl+C — handy for killing a watcher the moment you spot it. |
|
Detach to return Ctrl+a d inside a session detaches back to wsx. The session keeps running. |
Install
macOS (Homebrew)
brew tap vlwkaos/tap
brew install wsx
macOS / Linux (cargo)
cargo install wsx
Build from source
cargo install --path .
Must be run inside a tmux session.
Usage
wsx
Navigation
| Key | Action |
|---|---|
j/k ↑/↓ |
Move cursor |
h/l ←/→ |
Collapse / expand |
Enter |
Expand · attach session |
[ / ] |
Jump to prev / next project |
a |
Next active session ◉ |
n / N |
Next / prev pending session ● |
x |
Dismiss · mute session |
/ |
Incremental search |
? |
Full key reference |
Mouse clicks work: click a row to select, click the preview to attach.
Workspaces
| Key | Action |
|---|---|
p |
Add project |
w |
New worktree |
s |
New session |
m |
Reorder project or session |
r |
Set alias |
d |
Delete |
g |
Git popup (pull / push / rebase / merge) |
c |
Clean merged worktrees |
e |
View .gtrconfig |
S |
Send command to session |
C |
Send Ctrl+C to session |
tmux status bar
wsx sets status-right to project/worktree on attach. With a custom ~/.tmux.conf:
set -g status-right "#{@wsx_project}/#{@wsx_alias}"
Config
Global config: ~/.config/wsx/config.toml. Per-project config via e key.
.gtrconfig
[hooks]
postCreate = npm install
[copy]
include = .env
include = .env.local
exclude = .env.production
Inspired by
Dependencies
~8–23MB
~291K SLoC