Releases: mhamza15/forest
Releases · mhamza15/forest
v0.3.0
Immutable
release. Only release title and notes can be modified.
Added
- Project configs can now list tracked files under
removeto hide them from newly created worktrees without recording their absence in commits. Forest marks those pathsskip-worktreebefore deleting them locally.
Fixed
- Fork PR worktrees now set upstream tracking to the fork's branch name (e.g.
fix-bugon remotecontributor) instead of the prefixed local name (contributor/fix-bug). - Reopening an existing fork PR by URL now repairs older prefixed local branches so they track the fork's branch again.
- Fork-prefixed worktrees now store
push.default=upstreamin worktree-local Git config, so plaingit pushupdates the fork branch even when the local branch name is prefixed.
Changed
tree switchnow creates a missing worktree before opening its tmux session, andtree addhas been folded intotree switch.- Upgraded bubbletea, bubbles, lipgloss, and huh to v2 (
charm.land/*import paths). - Renamed
ftrfish abbreviation toftrmforforest tree remove.
v0.2.0
Immutable
release. Only release title and notes can be modified.
Added
--projectflag support onforest treeto scope the interactive browser to a single project.- Fish abbreviations with
--projectvariants (psuffix) for all tree and session commands. - Automatic fetch from remote when creating a worktree for a branch that does not exist locally. The branch is fetched with upstream tracking configured, so
git pullandgit pushwork immediately.
Changed
- Renamed
ftsfish abbreviation toftswforforest tree switch.
Fixed
tree pruneno longer silently removes worktrees whose branches were deleted from the remote without being merged. It now checks viaghwhether the PR was actually merged, and prompts for confirmation whenghis unavailable or the PR was not merged.
v0.1.1
Immutable
release. Only release title and notes can be modified.
Fixed
- Resolve correct project from GitHub PR URLs when multiple projects share the same upstream remote.
- Fetch PR branch from origin for same-repo pull requests instead of failing with "invalid reference".
- Infer project from GitHub URLs in
tree switch, matching the behavior oftree add. - Fetch PR branch using the head repository URL instead of assuming
origin, fixing failures when the user's origin points to their own fork.
Added
- Shell completion for the
--project/-pflag. - Fish abbreviations for all commands, installable as a Fisher plugin.
v0.1.0
Immutable
release. Only release title and notes can be modified.
Initial release. Forest is a CLI tool for managing git worktrees paired with tmux sessions.
Highlights
- Project management -- Register git repositories as projects (
project add,project list,project remove). - Worktree lifecycle -- Create, list, switch, remove, and prune worktrees (
tree add,tree list,tree switch,tree remove,tree prune). - Tmux integration -- Each worktree gets a dedicated tmux session with configurable window layouts.
- Project inference -- Project is inferred from the working directory; override with
--project/-p. - GitHub integration -- Create worktrees directly from issue or PR URLs, including fork branches.
- Interactive TUI -- Browse all projects and worktrees with a tree-view browser.
- Session management -- List and kill tmux sessions (
session list,session kill). - File provisioning -- Copy or symlink files from the repo root into new worktrees.
- Configuration -- Global and per-project YAML configs with XDG Base Directory support and JSON Schema editor autocomplete.
- Shell completions -- Dynamic completions for project names and branch names.
Install
go install github.com/mhamza15/forest@v0.1.0
Requires git and tmux at runtime. Optional: gh CLI for GitHub PR metadata.