Hierarchy
The two workspace modes
Open a project
- Click New project in the sidebar, or use Project directory on the New chat page.
- In the directory browser that opens, select the repository root. (This is an in-app browser that supports
↑↓to navigate,Enterto open,⌘Enterto select here, and⌘Dto star the highlighted row.) - The browser’s Places rail carries a Starred group: starred folders are listed newest first, up to twelve, and starring again from the row or the rail removes one.
- Once you confirm, Vibex opens that directory in Local mode.
Create a workspace under a project
When you create a session, the location picker above Composer offers two options:- Local — work on the main checkout directory.
- New Worktree — create an isolated workspace. Once selected, a Base ref picker appears (with searchable branches) along with the Worktree settings panel:
- Worktree name — the branch name
vibex/<slug>is derived from it. - Path — must be an absolute path.
- Default to a new Worktree for this Project — future sessions in this project create a worktree by default.
- Worktree name — the branch name
Switch workspaces
When Workbench → Sidebar hierarchy is set to Workspace view, each project lists its workspaces and their branches. Switching workspaces does not copy uncommitted changes anywhere else. The current session still belongs to the workspace it was created in, so save your files and check Git status before you switch. If the editor still has unsaved buffers, Vibex blocks the switch and asks you to save or discard them. Every time you open or switch a workspace the generation advances, and stale file, terminal, and Git requests are rejected so results never land in the wrong directory.Worktree lifecycle
- Choose the base branch and name when you create the worktree.
- Start a session in the isolated directory, or edit files by hand.
- Review the changes in the Git panel and commit as needed.
- Choose Merge or Rebase. When conflicts appear, resolve them file by file (for each file you can keep the target side or the source side), then click Mark resolved. You can give up midway with Abort merge.
- Once you have confirmed the result, discard the worktree. Discarding deletes the isolated directory and any uncommitted changes.
The authoritative runtime stores each worktree’s path, branch, and state. Mobile can request these operations over Remote v2, but the work itself always happens on the authoritative side.
File access boundaries
- The file tree, content search, and editor only reach the current workspace.
- The file service normalizes paths and checks symlinks, encoding, line endings, and size limits.
- Agent tool calls are still subject to permission and capability gating — opening a workspace does not automatically authorize every operation.
- Terminals bind to the current workspace by default, but you can also pick Open In → Terminal on a path in the file tree.
- Remote requests also carry the workspace scope and generation; after a reconnect, trust the state re-read from the authoritative runtime.
Common questions
Why can’t the Agent see the file I just created?
Check that the file was saved inside the current workspace, then refresh the file tree or reopen the session. If the file is outside the workspace, move it inside first, or provide it as an attachment.Why doesn’t the Git diff show my changes?
Check whether you switched to another workspace or worktree —Local and Worktree are completely different directories. Confirm the file is saved, then run git status --short in the terminal to compare.