vex-cli-0.2.6 is not a library.
vex
Parallel workstream manager. Create isolated workstreams (git worktree + tmux session) for each feature branch you're working on.
Install
# From crates.io
# With Nix (run directly)
# With Nix (in a flake)
# inputs.vex.url = "github:sandipndev/vex";
# then add: vex.packages.${system}.default
# or use the overlay: overlays = [vex.overlays.default]; -> pkgs.vex
# From source
# From GitHub releases
# Download binary from https://github.com/sandipndev/vex/releases
Quick Start
# Register a repo
# Start a new workstream — creates worktree + tmux session
# Or open a GitHub PR directly
# List workstreams
# Re-attach to a workstream
# Clean up
How It Works
Each workstream is a git worktree + tmux session:
- Worktrees live at
~/.vex/worktrees/<repo>/<branch>/ - tmux sessions are named
vex/<repo>/<branch> - Default windows:
nvim,claude,zsh on_createhooks run once when a workstream is created (default:direnv allow)
When you run vex new <branch>:
- Fetches from origin
- If the branch exists remotely, tracks it; otherwise creates it off the default branch
- Creates a git worktree
- Opens a tmux session with your configured windows
Configuration
Default ~/.vex/config.yml:
windows:
- name: nvim
command: nvim
- name: claude
command: claude
- name: zsh
command: ''
hooks:
on_create:
- direnv allow
Commands
| Command | Description |
|---|---|
vex init |
Register current git repo |
vex new <branch> |
Create workstream (worktree + tmux session) |
vex new '#<number>' |
Create workstream from a GitHub PR |
vex attach <branch> |
Attach to existing workstream |
vex rm <branch> |
Remove workstream |
vex list [-r repo] |
List workstreams |
vex repos |
List registered repositories |
vex status [branch] |
Show status of current or specified workstream |
vex pr [branch] |
Create or view a GitHub PR for a workstream |
vex sync [-r repo] |
Sync PR metadata for workstreams |
vex open |
Fuzzy-pick a workstream to attach to (requires fzf) |
vex config |
Edit config |
vex reload |
Reload and validate config |
Use -r <repo> with new, attach, rm, list to target a repo from anywhere.
Environment
VEX_HOME— override config/worktree root (default:~/.vex)