Skip to content
Source Zero

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/.mermaid files (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.
  • Select lines or ranges from the line numbers (drag or Shift-click) to copy path:12-20; share #L12-L20 links that open with the range highlighted.
  • Diffs select lines the same way and copy the side's own lines: path:12-20 for 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-R20 for the new side, &L5 for 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-20 copy are one click away.
  • Copy the open file's or reviewed file's path from the status bar.

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.