Skip to content

Releases: mhamza15/forest

v0.3.0

02 Apr 23:49
Immutable release. Only release title and notes can be modified.
baf223d

Choose a tag to compare

Added

  • Project configs can now list tracked files under remove to hide them from newly created worktrees without recording their absence in commits. Forest marks those paths skip-worktree before deleting them locally.

Fixed

  • Fork PR worktrees now set upstream tracking to the fork's branch name (e.g. fix-bug on remote contributor) 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=upstream in worktree-local Git config, so plain git push updates the fork branch even when the local branch name is prefixed.

Changed

  • tree switch now creates a missing worktree before opening its tmux session, and tree add has been folded into tree switch.
  • Upgraded bubbletea, bubbles, lipgloss, and huh to v2 (charm.land/* import paths).
  • Renamed ftr fish abbreviation to ftrm for forest tree remove.

v0.2.0

18 Feb 18:06
Immutable release. Only release title and notes can be modified.
ccca0ed

Choose a tag to compare

Added

  • --project flag support on forest tree to scope the interactive browser to a single project.
  • Fish abbreviations with --project variants (p suffix) 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 pull and git push work immediately.

Changed

  • Renamed fts fish abbreviation to ftsw for forest tree switch.

Fixed

  • tree prune no longer silently removes worktrees whose branches were deleted from the remote without being merged. It now checks via gh whether the PR was actually merged, and prompts for confirmation when gh is unavailable or the PR was not merged.

v0.1.1

17 Feb 18:05
Immutable release. Only release title and notes can be modified.
99e0ff9

Choose a tag to compare

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 of tree 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 / -p flag.
  • Fish abbreviations for all commands, installable as a Fisher plugin.

v0.1.0

15 Feb 21:10
Immutable release. Only release title and notes can be modified.
9592c87

Choose a tag to compare

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.