Files, Search, Git & notebooks

Edit project files, search with ripgrep, stage and commit Git changes, browse history, and keep workspace notes.

The right column follows the active workspace's code target. Its tabs are Files, Changes, Graph, and Search. Results and file tabs open in the center workspace canvas.

Files and editor

Open Files, expand folders, and select a file. The file opens in a workspace tab with syntax-aware editing. Cmd/Ctrl+S saves; a dirty indicator shows unsaved work. Close actions ask before discarding unsaved content.

The tree refreshes when files change on disk, including changes made by a terminal agent. Use the toolbar refresh when you need an immediate rescan. Binary or unsupported files are not treated as editable text.

Press Cmd/Ctrl+F, or choose Find in file from the command palette, to open the active editor's find card. Toggle case sensitivity, whole-word matching, or regular expressions. Enter moves to the next match, Shift+Enter moves to the previous match, and Escape closes the card. Expand the replace row to replace the current match or all matches; replace is unavailable in a read-only editor. This search only scans the open file, while the Search project tool below runs across the code target.

Right-click a file tab to close it, close other tabs, or close tabs to either side. Bulk close skips tabs with unsaved buffers. The same menu copies the absolute or workspace-relative path and reveals the file in the operating-system file manager.

Open Search and type a query. Cordy runs ripgrep against the active code target and groups matches by file. Select a match to open the file at that line.

Options:

  • Match case; when off, search uses smart case.
  • Match whole word.
  • Regular expression.
  • Files to include / exclude, entered as comma-separated glob patterns.

Use arrow keys to move through result rows and Enter to open the focused match.

Changes, diffs, and commits

Open Changes to see staged, unstaged, and untracked files. Select a file to open its diff. Per-file actions let you stage, unstage, or discard; discard asks for confirmation because it rewrites the working file.

Inside a parsed diff, use the actions beside a hunk to stage or discard that hunk; a staged hunk can be unstaged. The diff header also offers a compact commit field when staged changes exist. Files whose diff is empty, metadata-only, or cannot be parsed fall back to an appropriate message or raw diff view instead of hunk actions.

To commit:

  1. Stage at least one file.
  2. Enter a commit summary and optional description.
  3. Choose Commit changes.

Cordy disables commit when there are no staged files or the summary is empty. A very large change list may be truncated for display; stage and discard controls are unavailable for hidden rows, so narrow the working set or use Git in a terminal.

The Changes toolbar also provides Fetch, Pull, and Push for the active code target, plus a manual refresh. Ahead and behind counts appear when the branch has an upstream. These actions run normal Git network operations with the repository's configured remotes and credentials; Pull can change working files and refreshes open diffs.

Commit graph

Open Graph to see the active branch history. Expand a commit to list changed files, then select a file to open that commit's diff. History loads in pages as you scroll. If the branch tip moves while older pages load, refresh before continuing.

Workspace notebook

Each workspace has a Markdown notebook in the center/right layout. Cmd/Ctrl+S saves it to a local Markdown file. Notes belong to the workspace and survive app restarts. Deleting a workspace also removes its notebook after confirmation.

Code-target boundary

New workspaces point at the imported project root. Existing worktree-backed workspaces point Files, Search, Changes, and Graph at their stored worktree path. Always check the active workspace before editing, discarding, or committing.