One PhpStorm window. One tab per ticket. Backend and frontend side by side.
Working on several tickets that each touch a backend and a frontend repo usually means stashing, switching branches and reinstalling dependencies, or juggling a pile of windows. This plugin gives every ticket its own folder with a git worktree of each repo, opened as one tab. Switching tickets is switching tabs.
- A tab per ticket with all its repos on the ticket's branch.
- Ready to run:
.env,vendor/andnode_modules/are copied from your main checkout (instant on macOS). - Only the repos you need: repos a ticket doesn't touch are shown from
main/and can be added later. - Overview: a Workspaces panel and a toolbar switcher show every ticket with its branch and git state.
- Safe cleanup: Finish Ticket warns about uncommitted or unpushed work before removing anything.
- No lock-in: tickets are plain PhpStorm projects and plain git worktrees.
- Download the zip from the latest release.
- PhpStorm › Settings › Plugins › ⚙ › Install Plugin from Disk… › pick the zip › restart.
To get updates, add this under Settings › Plugins › ⚙ › Manage Plugin Repositories…:
https://raw.githubusercontent.com/Tygovanommen/worktree-workspaces/main/updatePlugins.xml
Requires PhpStorm 2026.2 or newer.
- Tools › Workspaces › New Workspace… Pick a name and add your repos (a git URL or an existing checkout).
- New Ticket… from the toolbar switcher or the panel's +. Enter
LOGIN-42and tick the repos it touches. A new tab opens on branchfeature/LOGIN-42. - Work, commit, push. When it's merged: right-click the ticket › Finish Ticket…
macOS tip: set System Settings › Desktop & Dock › Prefer tabs when opening documents to Always so tickets stay tabs after a restart.
~/PhpstormProjects/klant-x/ a workspace
.workspace.json settings: repos, base branches, branch pattern
main/ your real clones
backend/ frontend/
LOGIN-42/ a ticket: git worktrees on feature/LOGIN-42
backend/ frontend/
- If the ticket's branch already exists (locally or on
origin), it is used; otherwise it's created from the base branch. - Next to the workspace the plugin keeps a link per repo (
klant-x-login-42-backend), so Herd and Valet find every ticket. - Each repo gets its own terminal tab when a ticket opens for the first time.
- Undo Workspace (right-click the workspace) moves the repos back out and removes the workspace.
All options are under Settings › Tools › Worktree Workspaces.
- ⭐ Star the repo if it saves you time.
- 🐞 Report a bug with Tools › Workspaces › Report an Issue…
- 💬 Ask a question or share an idea in Discussions.
Run ./build.sh to test and build (only needs PhpStorm installed). See CONTRIBUTING.md.


