Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

File Browser & Code Editor

File Browser Panel

Toggle with Cmd+E or the folder icon in the status bar. The file browser shows the directory tree of the active repository (or linked worktree when on a worktree branch).

The file browser, Markdown viewer, and Diff panels are mutually exclusive — opening one closes any other that is open.

  • Arrow keys (Up / Down) — Move selection
  • Enter — Open a file or enter a directory
  • Backspace — Go up to the parent directory
  • .. row — Click to go up one level (appears when inside a subdirectory)
  • Breadcrumb bar — Click any path segment to jump directly to that directory; click the root / to return to the repo root

Directories are listed first, then files. The entry count is shown as a badge in the panel header.

Sorting

Click the funnel icon in the toolbar to switch sort order:

ModeOrder
Name (default)Directories first, then alphabetical
DateDirectories first, then newest modified first

Live Refresh

The panel watches the current directory for filesystem changes. When a file is created, deleted, or renamed outside the app, the listing refreshes automatically without a visible loading spinner.

Git Status Indicators

The panel header shows a legend for git status colors:

ColorLabelMeaning
OrangemodModified (unstaged changes)
GreenstagedStaged for commit
BluenewUntracked (new file)

File and directory names inherit these colors based on their git status. Gitignored entries are shown in a dimmed style.

View Modes

The file browser supports two view modes, toggled via toolbar buttons:

ModeDescription
List (default)Flat directory listing with breadcrumb navigation and .. parent entry
TreeCollapsible hierarchy with lazy-loaded subdirectories. Expand folders by clicking the chevron

Switching to tree mode resets to the repository root regardless of the current flat-mode subdirectory. When a search query is active, the view always shows flat results.

Type in the search box to search recursively across the entire repository by filename. Supports * and ** glob wildcards (e.g., *.ts, src/**/*.test.ts). Results appear with their full path. Clear the query with the × button or by emptying the input.

The search icon button to the left of the input toggles between filename mode (file icon) and content mode (magnifier icon).

Switch to content mode (magnifier icon) to search inside file contents across the repository. Results are grouped by file, showing the matching line number and a highlighted excerpt. Click any result to open the file in the editor, jumping to that line.

Content search options (shown when in content mode):

ToggleMeaning
Aa (case icon)Match case
.* (regex icon)Use regular expression
|ab| (word icon)Match whole word

A status bar below the search box shows match counts, files searched, files skipped (binary/large), and a “results limited” notice when the result set is truncated. Search begins after a short debounce and requires at least 3 characters.

File Operations (Context Menu)

Right-click any entry to open the context menu:

ActionShortcutNotes
Copy PathCopies the full absolute path to the clipboard
CopyCmd+CFiles only; stores file in the internal clipboard
CutCmd+XFiles only; cut entries are shown dimmed
PasteCmd+VPastes into the current directory; disabled when clipboard is empty
Rename…Opens a rename dialog; enter the new name and confirm
DeleteRequires confirmation; directories are deleted recursively
Add to .gitignoreAppends the entry’s path to .gitignore; disabled if already ignored

The keyboard shortcuts (Cmd+C, Cmd+X, Cmd+V) also work when the file browser has focus, without opening the context menu.

Cut + Paste performs a move (rename). Copy + Paste duplicates the file into the current directory. Pasting into the same directory where the file already exists is a no-op.

Opening Files

  • Click a file — Opens it in the code editor (see below), or in the Markdown viewer if the extension is .md or .mdx
  • Click a content search result — Opens the file and jumps to the matching line number

Panel Resize

Drag the left edge of the panel to resize it. Range: 200–800 px.


Code Editor

Clicking a non-Markdown file opens it in an in-app code editor tab in the main tab area, alongside terminal tabs.

Features

  • Syntax highlighting — Auto-detected from file extension; disabled for files larger than 500 KB
  • Line numbers, bracket matching, active line highlight, indentation support
  • SaveCmd+S saves the file when the editor tab is focused

Read-Only Mode

Click the padlock icon in the editor tab header to toggle read-only mode. When locked, the file cannot be edited.

Unsaved Changes

An unsaved-changes dot appears in both the tab bar and the editor header when the file has been modified but not saved.

Disk Conflict Detection

If the file changes on disk while you have unsaved edits, a conflict banner appears with two options:

  • Reload — Discard local edits and load the disk version
  • Keep mine — Dismiss the banner; the next save overwrites the disk version

When the editor has no unsaved changes, files reload silently when they change on disk.


Markdown Viewer

.md and .mdx files open in the Markdown viewer panel instead of the code editor. The viewer renders Markdown with syntax-highlighted code blocks.

See ai-agents.md for how AI-generated plan files are detected and surfaced as a one-click shortcut to open in the viewer.