Explorer & editor
The Explorer tab is a file browser and code editor scoped to the session's git worktree. Switch to it with ⌘3 — ⌘ is Cmd on macOS, Ctrl on Windows and Linux.
The tab splits into two resizable panes: a file tree on the left and a Monaco editor on the right.

Browse the file tree
The left pane lists everything in the session's worktree. Folders appear first, then files in case-insensitive alphabetical order, and the .git folder is hidden.
- Click a folder row to expand it. Contents load lazily on first expand — you'll see a brief spinner — then stay cached so re-expanding is instant.
- The cache refreshes quietly in the background after agent turns and git operations, so the tree keeps up with the changes the agent makes without a manual refresh.
- Click a file to open it in the editor; its worktree-relative path shows in the editor toolbar.
The tree is read-only: there are no New File or Delete actions. New files come from saving to a path in the editor (the parent folder must already exist); deletion is done from a terminal or your usual tools. If no session is started yet, the tree shows No worktree yet — start the session to populate it.
Edit and save files
Open a file and type to edit it. Syntax highlighting is automatic, detected from the filename and extension — the editor covers around 90 languages (see Supported languages below).
When you have unsaved changes, a small amber dot appears next to the file path in the toolbar. Save with ⌘S or the Save button. If a read or save fails, a red error bar explains why.
Unsaved edits live only in memory. If you switch files or close the app without saving, the changes are lost — there is no auto-save.
If you click another file while the current one has unsaved changes, a confirmation dialog asks whether to discard them — cancel to keep editing. The editor's colors follow the app's light/dark theme and update the moment you change it in Settings.
Supported languages
Highlighting comes from the Monaco engine the editor is built on, which bundles around 90 languages. Plexus picks the right one automatically from the filename and extension — files like Dockerfile are matched by name, no extension needed — so you never set a language by hand.
| Category | Languages |
|---|---|
| Web & markup | HTML, CSS, SCSS, Less, JavaScript, TypeScript, Vue, JSON, GraphQL, XML, Markdown, Pug, Handlebars |
| Systems & compiled | C, C++, C#, Rust, Go, Swift, Objective-C, WGSL |
| JVM & scripting | Java, Kotlin, Scala, Python, Ruby, PHP, Perl, Lua, R, Dart, Elixir, Clojure, F#, Julia |
| Shell, data & config | Shell / Bash, PowerShell, Batch, Dockerfile, YAML, TOML, INI, HCL, Protobuf, SQL (MySQL, PostgreSQL, Redshift) |
The table covers the common ones; the full set is whatever Monaco ships. A file Monaco doesn't recognize opens as plain text — still fully editable, just without coloring. The Review tab highlights a focused subset of these in its diffs.
Preview Markdown
Open a Markdown file (.md, .markdown, .mdown, .mkd) and three view buttons appear above the editor:
| View | Shows |
|---|---|
| Source | The raw Markdown |
| Preview | The rendered HTML |
| Split | Source on the left, live preview on the right |
In Split view the preview reflects your unsaved edits as you type, so you see the rendered result before saving. Relative links and images resolve against the worktree, and external links open in your browser. The view resets to Source when you open a different file.
Limits and unsupported files
| Situation | What you see |
|---|---|
| File larger than 1 MB | A File too large notice with the byte size, instead of the editor |
| Binary file (contains null bytes) | A Binary file notice — it can't be shown or edited |
These limits keep the editor responsive and apply to the Markdown preview as well.
Layout
Drag the divider between the tree and the editor to resize the panes, and the divider between editor and preview in Split view. Pane sizes are remembered between visits.