Files and the editor
Browse the working tree, open a file in a pane, edit it, and save.
Press Cmd+Shift+E for the file tree. Like the
git panel it's rooted at
the project directory, so it doesn't
re-root every time you cd.
The tree
Click a file to open it in the focused pane. Right-click for the rest:
| Item | What it does |
|---|---|
| Open / Open to the Side | In this pane, or in a new split |
| Open in Default App | Hand it to whatever macOS opens it with |
| Reveal in Finder | |
| Copy Path | The absolute path |
| cd Here | Run cd <folder> in the focused terminal |
| New File… / New Folder… | Create inside the selected folder |
| Rename | |
| Move to Trash | To the Trash, not deleted outright |
Rows use filename-aware Material icons. Inside a Git repository, changed paths also use status colors and badges, while ignored files are dimmed, so the tree shows the same worktree state as the Git panel without opening it.
The command palette (Cmd+P) searches the entire project directory as well as commands and open sessions. Selecting a file opens it in the project directly.
The editor
Opening a file gives you a real editor in a pane, with syntax highlighting.
| Action | Shortcut |
|---|---|
| Save | Cmd+S |
| Find | Cmd+F |
| Find and replace | Opt+Cmd+F |
| Find next | Cmd+G |
Long lines scroll horizontally by default. To wrap them to the pane width
instead, set editor.wrap-lines.
Renaming a file in the tree updates any pane that has it open, including files underneath a renamed folder.
If another program changes an open file, Zshell refreshes a clean preview when the app becomes active again. It never replaces an editor buffer with unsaved changes.
This is an editor for the change you're already looking at — fix a typo, adjust a constant, read a file the diff referenced. There's no language server, no completion, and no project-wide refactoring. That's deliberate.
Diffs
A diff opened from the git panel is just another pane, so a diff, a file, and a terminal can sit side by side in one tab. It uses your terminal font, and a thousand-file changeset opens as fast as a one-line one. Live, unstaged worktree diffs can also switch from Review to Edit; staged and historical diffs remain read-only. See Reading diffs.