File Tree
The File Tree node lets you browse your project's files right on the canvas — no need to switch to Finder or your IDE. It's a fully featured file manager embedded in your workspace.

Inserting a File Tree node
Select the File Tree tool in the top toolbar, then click and drag on the canvas to place it. The file tree opens at your workspace's working directory by default.
You can have multiple file trees on the same canvas, and each one independently remembers its own state — which directory it's showing, which folders are expanded, and which view mode is active.
View modes
Switch between four views using the toolbar at the top of the file tree node:
- List view — A hierarchical outline, similar to macOS Finder's list view. Supports back/forward navigation and Collapse All.
- Icon grid — A thumbnail-based view. Images, PDFs, and videos show Quick Look previews instead of generic icons.
- Diff — Your uncommitted changes, side by side with the original (see Diff view with agent integration below).
- Graph — The git commit history graph for the workspace's repository, with branch lanes and the same labels you'd see in a tool like
git log --graph. Available when the file tree's directory is inside a git repo.
Navigating files
Use the toolbar to change the root directory on the fly. Right-clicking a file or folder opens a context menu with options to create, rename, move, and delete.
Dragging files
You can drag files from the file tree directly onto:
- An agent terminal — Shares the file as context with the agent
- The canvas — Places it as a native preview node (images, PDFs, and videos are supported)
Tip
You can also drag external files from Finder directly onto an agent terminal or onto the canvas — you don't have to use the file tree for this.
Git operations
When your workspace is a git repository, the file tree includes a branch indicator at the top. Click it to open a menu with common git operations:
- Commit — Stage and commit changes
- Pull / Push — Sync with your remote repository
- Checkout — Switch to a different branch
- New Branch — Create a new branch from the current one
- Merge — Merge another branch into the current one
- Fetch — Fetch updates from the remote without merging
- Stash — Stash your uncommitted changes for later
These operations run directly in Maestri — no need to switch to a terminal or external git client for common tasks.
Diff view with agent integration
The file tree includes a built-in diff view that shows your uncommitted changes. Beyond reviewing diffs, it integrates directly with your agents — select any code block in the diff and a chat icon will appear. Click it to open a popover where you can quote the selected block and ask an agent to explain or refine it.