A fast, plugin-extensible workspace and session manager for git repos. Browse, create, and switch between worktree-based sessions with a single command.
Switching between tasks means juggling git branches, stashing changes, and losing editor context. ez turns git worktrees into managed "sessions" — each task gets its own directory, branch, and terminal, so you never lose your place. An interactive fzf browser ties it all together.
cargo install --locked --git https://github.com/user/ez-workspaces.gitAdd shell integration:
echo 'eval "$(ez init-shell zsh)"' >> ~/.zshrc
# or for bash:
echo 'eval "$(ez init-shell bash)"' >> ~/.bashrcez plugin enable git-worktree # worktree-backed sessions
ez plugin enable tmux # tmux integration (optional)
ez config add-root ~/workspace # register a workspace directory
ez add ~/workspace/my-project # register a repo
ez # launch the interactive browserFrom the browser, select a repo to see its sessions. Press Alt-n to create a new session — ez creates a worktree and drops you in.
Sessions are tree-structured metadata. Plugins give them physical meaning:
- git-worktree — creates/deletes worktrees on session create/delete
- tmux — creates tmux sessions, auto-attach on enter,
Ctrl-ato browse tmux sessions
Worktrees live as siblings of the repo in a .ez/ directory:
~/workspace/
my-repo/ # original repo
.ez/my-repo/
feature-auth/ # worktree session
bugfix-crash/ # worktree session
Non-git directories can also be tracked — sessions become bookmarks without worktree management.
Launch with ez. The preview pane shows all available keybinds.
Views — switch with keybinds anytime:
Ctrl-tTree ·Ctrl-wWorkspace ·Ctrl-eRepo ·Ctrl-oOwner ·Ctrl-gLabel
Workspace drill-down — while browsing directories:
Alt-aclone a repo into the current directory
Session actions — inside a repo's session picker:
Enterenter ·Alt-nnew ·Alt-Nbare ·Alt-sfrom dirty ·Alt-rrename ·Alt-ddelete ·Alt-llabels ·Ctrl-dcd ·Ctrl-ssort
All keybinds are configurable.
Bundled plugins — just enable:
ez plugin enable git-worktree # worktree lifecycle
ez plugin enable tmux # tmux session management
ez plugin enable cursor-mcp-auth # share Cursor MCP OAuth tokens across worktrees
ez plugin enable cursor-trusted-workspace # auto-trust worktree workspaces in Cursor
ez plugin enable cursor-mcp-approvals # auto-approve MCP servers in Cursor
ez plugin enable kv # per-session KoalaVim environmentsCustom plugins use a JSON-over-stdio protocol. See the Plugin Guide.
- User Guide — full command reference, config options, name builder modes
- Plugin Guide — writing custom plugins
- Architecture
- Design
- Rust 1.70+
- fzf
- git
- jq (for bundled plugins)
- tmux (optional)
AGPL-3.0
