Workspace
Files
Browse, search and edit the project beside the chat, and quote exact lines of code to the agent.
The Files panel is the project’s file tree and an editor, in the rail beside the chat. Open it with ⌘⇧4 or from the rail’s Open a panel list.
It shows the folder the chat works in: the project folder, or the chat’s own worktree when it runs isolated (see Git & worktrees). The tree follows the disk as the agent writes, so new and changed files appear without a refresh.
The file tree
The tree sits at the right edge of the panel with the editor to its left. In a narrow rail they take turns: opening a file shows the editor, and Back to files returns to the tree. Hide file tree, the last button in the toolbar, gives the editor the whole panel.
Folders come first, then files, sorted as Finder sorts them. Up to four parent folders stay pinned at the top while you scroll through a deep folder. A folder with more than 1,000 entries lists the first 1,000 and then a row that reads N more items — show in Finder.
What the letters mean
A file with Git changes takes the colour of its status and shows a letter at the end of its row. A folder holding a change gets the same colour and a dot.
| Letter | Status |
|---|---|
| M | Modified |
| A | Added |
| U | Untracked |
| D | Deleted |
| R | Renamed |
| C | Copied |
| ! | Conflicted |
Files that Git ignores are dimmed. A dot at the end of a row means the file has edits you have not saved.
Hidden files
Repository and build folders (.git, .build, .next, .cache, .gradle, .venv and similar) and macOS files such as .DS_Store are not shown. Dotfiles like .env and .gitignore are. To see everything, choose Show Hidden Files from the File actions menu (…); Codz remembers the choice.
Changed by this task
Above the tree, N changed by this task lists the files the agent has created, edited, renamed or deleted in this chat, with the lines it added and removed. Click the header to fold the list. Click a file to open it; where Codz knows which lines changed, coloured bars in the gutter mark them. A deleted file is struck through.
Find a file
Type in Find file at the top of the tree to search the project by file name and path. The search is fuzzy: every word you type must appear in the path, whole or as letters in order, and exact name matches come first. It searches names only, not file contents.
Use ↑ and ↓ to move through the results, ↩ to open one and Esc to clear the search. The list shows the first 250 matches; keep typing to narrow it.
To find a file from anywhere in the app, press ⌘P (Codz ▸ Go to File…). The command palette opens on the chat’s project, with recent and open files first, and the file you choose opens in the Files panel. See Command palette.
Create, rename and move
- New file or folder. Click + in the toolbar, or right-click a folder, and choose New File… or New Folder…. Type the name in the row that appears. A new file’s name can be a path:
Views/Rows/Cell.swiftcreates the folders on the way, and a name ending in / makes a folder. - Rename. Select a row and press ↩, or choose Rename…. The name is edited in place, with the part before the extension selected. A name that cannot be used is explained under the field as you type, for example A name is required. or Cell.swift already exists here. Press ↩ to rename or Esc to cancel.
- Select several.
⌘-click adds or removes a row,⇧-click and ⇧↑ ⇧↓ select a range. Actions apply to everything selected. - Drag and drop. Drop onto a folder, onto a file (meaning its folder), or below the rows (meaning the project folder). Inside the project a drag moves; hold
⌥to copy. Files dragged in from Finder are always copied. Hold a drag over a closed folder to open it. - Copy and paste. ⌘C copies real files, so they paste into Finder, and files copied in Finder paste into the tree. ⌘X then ⌘V moves them. A name that is taken gets
copyadded. - Duplicate (⌘D) makes
name copy, thenname copy 2. - Move to Trash (⌘⌫) asks first. If a file has unsaved edits, the confirmation says so.
Undo
With the tree focused, ⌘Z undoes the last file operation and ⌘⇧Z redoes it: creating, renaming, moving, duplicating, copying and moving to the Trash. Undoing a move to the Trash puts the files back. The Edit menu names the step, such as Undo Rename. The editor keeps its own, separate undo for text.
Right-click menu
Right-click a row for Attach to Chat, Mention in Chat, Open (or Expand or Collapse for a folder), Open in Default App, Reveal in Finder, New File…, New Folder…, Expand All, Cut, Copy, Paste, Duplicate, Copy Path, Copy Relative Path, Rename…, Move to… and Move to Trash…. Folder-only and single-item entries appear only where they apply.
- Attach to Chat adds the file to the composer as an attachment.
- Mention in Chat types
@and the file’s path into the composer.
Tree keys
| Key | Action |
|---|---|
| ↑ ↓ | Move through the rows |
| ← → | Close or open a folder; with ⌥, the whole subtree |
| ⌘↓ or Space | Open a file, or open or close a folder |
| ↩ | Rename |
| ⌘⌫ | Move to Trash |
| ⌘D | Duplicate |
| Esc | Cancel a cut, then clear the selection |
Typing letters jumps to the next name that starts with them.
Tabs
Each file you open becomes a tab in the rail’s tab row, next to the other panels. There is no preview tab: every file you open gets its own tab. With no files open, the panel is a single Files tab.
- A dot in place of a tab’s close mark means unsaved edits. Closing such a tab asks Discard unsaved changes? with Discard and Close and Cancel.
- Right-click a tab for Save, Close, Close Other Saved Tabs, Reveal in Finder and Copy Relative Path. Close Other Saved Tabs leaves unsaved tabs open.
- Open files belong to the project, so every chat in that folder sees the same tabs.
Codz keeps each project’s open tabs, open folders and unsaved edits across relaunches. Quitting does not ask about unsaved files; they come back, still unsaved, the next time you open the project.
The editor
Text files open in a code editor with line numbers, the current line highlighted and syntax colouring for common languages, including Swift, JavaScript and TypeScript, Python, Go, Rust, Kotlin, Java, C and C++, JSON, YAML, shell scripts and Markdown. Colouring is turned off for files over 450,000 characters, and the status bar says so.
- Markdown opens in Preview; switch to Source in the toolbar to edit it.
- Images (PNG, JPEG, GIF, WebP, HEIC, TIFF, BMP and ICNS) are shown scaled to fit.
- Other files, and text files over 2 MB, show No editor preview with an Open in Default App button.
The status bar shows the cursor’s line and column, the file’s encoding and line endings, and its Git status or Unsaved. Codz keeps a file’s encoding and line endings when it saves.
The colours come from Settings ▸ Appearance ▸ Code theme: Xcode (the default), Cursor or Codz.
Save
Save a file with the Save button, which appears in the toolbar while the open file has unsaved edits, or with Save in the tab’s menu. File actions ▸ Save All saves every open file, and Revert Unsaved Changes throws the open file’s edits away.
If something else changes a file while it is open, a tab with no unsaved edits reloads by itself. A tab with unsaved edits is left alone until you save. Then Codz tells you the file changed on disk, compares your version with the one on disk, and offers three choices:
- Keep My Version overwrites the file with your edits.
- Reload from Disk discards your edits.
- Cancel leaves the file unsaved so you can decide later.
Find in a file
With the editor focused, Edit ▸ Find… (⌘F) opens the find bar. ⌘G and ⌘⇧G move between matches, and Find and Replace… (⌥⌘F) adds a replace field.
Language servers
Codz can use a language server you already have installed, for completion and error underlines. Choose File actions ▸ Language Server ▸ Configure Language Server…, then set the server’s Language ID, Executable and Arguments for the current file type and turn on Enable for this file type. Codz does not ship any servers.
The server runs locally while the Files panel is open, with access to the project. Errors appear as dotted underlines, with the count in the status bar and the list under File actions ▸ Language Server. Press ⌃Space, or choose Complete Code from the editor’s right-click menu, for completions.
Add code to the chat
Select some lines in the editor and a small bar appears over the selection: Add to Chat (⌘L) and Add to Side Chat.
Add to Chat puts a reference chip above the prompt, showing the file and its lines, such as home.module.css L24-30. When you send, Codz adds the file’s path and line range and the selected code, as it was when you selected it, after your message, so the agent has the exact code in front of it.
- Add several selections to send them together; the same lines twice make one chip.
- To remove a chip, hover over its icon and click, or press ⌫ at the very start of the prompt.
- Add to Side Chat opens a side chat with the chip in its composer.
- With no code selected, ⌘L is Chat ▸ Focus Composer.
The editor’s right-click menu also has Ask Agent About Selection, which adds the selected code to your draft with the file and line numbers.
Keyboard shortcuts
| Action | Shortcut |
|---|---|
| Open the Files panel | ⌘⇧4 |
| Go to file | ⌘P |
| Add selected lines to the chat | ⌘L |
| Find in the open file | ⌘F |
| Find and replace | ⌥⌘F |
| Complete code | ⌃Space |
| Undo or redo a file operation | ⌘Z / ⌘⇧Z |
Troubleshooting
A file shows No editor preview. It is over 2 MB, binary, or unreadable. Use Open in Default App.
My edits are not on disk. A tab with a dot has unsaved edits. Save it with the toolbar’s Save button or the tab’s Save, or use File actions ▸ Save All.
A folder could not be read. Codz keeps showing its last known contents and puts a banner above the tree with a Reveal button. Check the folder’s permissions in Finder.
A file I expect is missing from the tree. It may be in a hidden folder. Turn on File actions ▸ Show Hidden Files.