Skip to content

vlwkaos/wsx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

139 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wsx

ENG | 한국어

TUI workspace manager for git worktrees and tmux sessions.

Screen Recording 2026-03-06 at 12 02 09 AM_1

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]
Loading

Guide

Feature Screenshot
Project config .gtrconfig at repo root — post-create hook, auto-copy env files into new worktrees. Press e to view. image
Add project Press p, enter a path. Tab-completion supported. image
New worktree Select a project, press w, enter a branch name. image image
Sessions Select a worktree, press s. Name by context — shell, claude, build. Sessions are persistent tmux sessions; d deletes, r renames. image
Iterate pending n / N to jump between sessions. x dismisses; press again to mute . a cycles active sessions. Screen Recording 2026-02-27 at 9 35 16 AM
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. image
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

About

project + worktree + session management made easy

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages