Browsing
Views
How a file is shown depends on its type; every served file opens:
- Markdown opens in Source. Choosing Preview opens other documents in the project in Preview until you choose Source, for the rest of the browser tab. Images open in Preview; SVG also has Source.
- JSON/YAML open in Source; Format shows a formatted, highlighted view on demand. Invalid files stay readable and searchable in Source. YAML formatting retains comments, anchors/aliases, scalar styles, and all documents; spacing and comment placement can change in the formatted view.
- HTML, CSS, and JavaScript also open in Source with Format on demand. Format
only reindents and breaks lines: comments, strings, and values are kept
verbatim, as are
pre,textarea,script,style, and inline SVG content. HTML tag and attribute names show lowercase. JavaScript containing JSX or that fails to tokenize keeps Source with a format notice. - Known languages and config files show highlighted source, highlighted in the browser with WebAssembly. Unknown text files, and Fish, INI, Properties, and reStructuredText files, show plain text.
- Mermaid diagrams render as themed SVG with ondine, in Markdown fences and
.mmd/.mermaidfiles (open in Preview); expand to zoom and pan.
Formatting is read-only; original files stay unchanged.
Markdown Preview hides leading frontmatter enclosed by matching --- (YAML) or
+++ (TOML) lines, and HTML comments. Source preserves both. Unclosed frontmatter
stays visible; comment syntax inside code stays literal.
Binary and large files
- Binary files (a NUL byte in the first 8000 bytes) other than images show a "Binary file" note and are excluded from content search.
- Files over 4 MiB show plain, unhighlighted source without preview or formatting; image previews stay available. Files over 8 MiB are also excluded from content search.
- Non-image files over 32 MiB are not read; they show a "Too large to display" note.
Explorer and tabs
- Switch between Explorer, Search, and Source Control from a VS Code-style activity bar (Cmd/Ctrl+Shift+E, Cmd/Ctrl+Shift+F, Cmd/Ctrl+Shift+G); click the active item or press Cmd/Ctrl+B to hide the sidebar.
- Navigate files in a compact, resizable tree.
- Filter file names and paths with Pierre Trees (Cmd/Ctrl+P; Cmd/Ctrl+K alias).
- Keep visited documents in a borderless editor-style tab bar. The active tab joins the document surface. Inactive close buttons appear on hover or keyboard focus; touch devices keep them visible. Right-click a tab to close it, other tabs, tabs to its right, or all tabs.
Line links and paths
- Select lines or ranges from the line numbers (drag or Shift-click) to copy
path:12-20; share#L12-L20links that open with the range highlighted. - Diffs select lines the same way and copy the side's own lines:
path:12-20for the new side, HEAD's (or the parent commit's) numbers for deleted lines. Links name the file and side:#f=src/App.tsx&R12-R20for the new side,&L5for the old; they open scrolled to the lines, expanding unchanged lines they name. - Step through a review's changes with F7 and Shift+F7 or the toolbar's
Previous change and Next change; steps cross into the next or previous
file and select the change, so its link and
path:12-20copy are one click away. - Copy the open file's or reviewed file's path from the status bar.
Search
Search file content in the Search view (Cmd/Ctrl+Shift+F or Find in files in the status bar) like VS Code: every match grouped by file, Match Case, Match Whole Word, and regular expressions, files to include/exclude globs, and F4/Shift+F4 to step through matches. Files git ignores are skipped, including global excludes and linked-worktree excludes.
Source Control
Source Control stacks three panes, always in this order:
- Uncommitted counts and lists every modified, added, untracked, deleted, or renamed file since the last commit, as a flat list or a tree. Click a file to review it.
- Commits lists your branch's commits since it left its base, or the whole history with All, 50 at a time. On the base branch itself it always shows the whole history. Click a commit's chevron, or press Right, to show its message, author, date, hash, and the stacked branches it tips.
- Branches shows your branch stack: the branches between the base and your checkout, any built on top of it, and the base at the merge-base.
Empty panes start closed; open or close any pane and Source Zero remembers it.
Drag between open panes to resize them. The base defaults to origin/HEAD,
main, or master; pick another from the Branches header, and Source Zero
remembers it per project. Source Zero reads git data directly; git need not be
installed.
Diffs open only when you ask. Hover a commit and click its diff button, or press Enter. Shift-click or Shift+Arrow across commits, then use the diff button on the newest one to review their combined changes; Escape narrows back to one commit, and Cmd/Ctrl+C copies a commit's hash. On a branch, one button reviews just that branch's own commits against the branch below it, the other everything since the base.
Your checked-out branch's review against the base can also include your
uncommitted work. Its header switches between Committed, the commits only,
as a pull request shows them, and + Uncommitted, everything from the
merge-base to your working tree. The tab switches in place, keeps the file in
view, and reads vs main + uncommitted; files with uncommitted edits carry a
dot. The review opens on Committed; with nothing uncommitted, + Uncommitted
stays disabled.
A review opens in one tab: every file's diff stacked under a sticky header, loaded as you scroll, with split or unified view, wrap, ignore whitespace, word or character inline changes, expand unchanged, and Expand/Collapse All Files. Commit, range, and branch reviews list their files in a rail beside the diffs; drag its edge to resize it, or hide it with the Files button. Mark files Viewed to fold them away; the rail checks them and dims their names. A mark clears when the file changes again. Uncommitted and branch reviews follow new edits and commits; commit and range reviews stay fixed. On phones, tap a commit to show its diff button, long-press a commit and tap another to select a range, and use the Files button to jump between a review's files.
Live updates
Source Zero follows changes on disk in the project each tab shows. Save a file in your editor, or let an agent write one, and the Explorer, the open document, Source Control, and an open Search pick it up within a second or two. The document keeps its scroll, selection, and view; a deleted file shows that it is unavailable. Checkouts, commits, and branch switches update Source Control too.
The status bar shows how the project is followed:
- Live: Source Zero watches the project's folders for changes.
- Polling: the project is too large to watch (more than 4096 folders, or 8192 files and folders on macOS), or the system's watch limit is reached; Source Zero checks every few seconds instead.
- Off: Source Zero already follows 8 projects in other tabs, or the connection dropped; the project rereads when you return to its tab.
Only visible tabs follow their project: a background tab catches up when you
return to it. Skipped folders (.git, node_modules, vendor) and those
below --depth are not watched.
Settings and commands
- Choose a theme (Source Zero Dark by default; Auto, Source Zero Light, Dracula, Solarized Light, and Omarchy's 23 built-in themes, such as Tokyo Night, Kanagawa, and Rose Pine) and interface font size in Settings (gear in the status bar, Cmd/Ctrl+,); search, browse categories, or filter modified preferences. Changes apply immediately and save in the browser.
- Run commands from a VS Code-style command palette (Cmd/Ctrl+Shift+P or F1); each setting is a command that opens Settings at it. Preferences › Color Theme previews themes as you arrow through them; Enter keeps one, Escape restores yours.
- The status bar shows document details; disclose process CPU/RAM from Ready.