A CLI tool that automates your dev environment setup with tmux and Git Worktree support.
ALPHA: Interfaces may change without notice.
- Manages a project registry (
~/.config/workforge/workforge.json) - Launches projects with automated setup via
.wfconfig.yml - Supports Git Worktrees as first-class projects
- Creates/attaches tmux sessions with branch-aware naming
git clone <repo-url>
cd workforge
go build -o wf ./cmd/wf
# Optional: move to PATHRequirements: Go 1.24+, git, tmux (optional), POSIX shell
# Register a project
wf init https://github.com/org/repo.git
# List projects
wf list
# Open a project (runs setup from .wfconfig.yml)
wf open <project-name>| Command | Description |
|---|---|
wf init [url] |
Clone and register a repo, or register current directory |
wf list |
List registered projects |
wf open <name> |
Open project (runs hooks, starts tmux/foreground command) |
wf add <branch> |
Create/add a git worktree |
wf rm <name> |
Remove a worktree (runs on_delete hooks) |
Flags:
--gwtoninit: Register as Git Worktree root--profileonopen: Select config profile-c, --create-branchonadd: Create branch if missing
Place in project root:
default:
log_level: "INFO" # DEBUG | INFO | WARN | ERROR | SILENT
foreground: "nvim ." # Command when not using tmux
hooks:
on_load: ["echo 'Hello'"] # Run before starting
on_delete: [] # Run before worktree removal
tmux:
attach: false # Auto-attach after creation
session_name: "project" # Default: inferred from path/branch
windows:
- "nvim ."
- "git status"Worktree mode: Config is read from ../.wfconfig.yml
# Register base repo as worktree root
wf init https://github.com/org/repo.git --gwt
# Add worktrees
wf add feature-x --create-branch --base main
# List shows: repo/feature-x
wf list
# Open worktree (each gets its own tmux session: repo/feature-x)
wf open repo/feature-xStop manually:
cd-ing to projects- Starting tmux sessions
- Opening your editor
- Running setup commands
Just wf open project and everything's ready. With worktrees, each branch gets its own tmux session named repo/branch for easy switching (Ctrl-b s).
- ALPHA quality - expect changes
- Only
on_loadandon_deletehooks work currently - No interactive project selector (use with fzf/rofi)
- Requires POSIX shell
