1---
2title: Project Panel - Zed
3description: Navigate workspace files and directories with Zed's project panel. Create, rename, trash and delete file and directories.
4---
5
6# Project Panel
7
8The project panel shows a tree view of your workspace's files and directories.
9Toggle it with {#action project_panel::ToggleFocus} ({#kb
10project_panel::ToggleFocus}), or click the **Project Panel** button in the
11status bar.
12
13
14
15## Navigating
16
17Use the arrow keys to move through entries. {#kb
18project_panel::ExpandSelectedEntry} expands a directory and {#kb
19project_panel::CollapseSelectedEntry} collapses it. {#kb
20project_panel::CollapseAllEntries} collapses every directory at once. Press {#kb
21project_panel::Open} or click to preview a selected file, without giving it a
22permanent tab. Editing the file or double-clicking it promotes it to a permanent tab.
23
24### Auto-reveal
25
26By default, switching files in the editor will automatically highlight it in the
27project panel and scroll it into view. This can be disabled with the
28`project_panel.auto_reveal_entries` setting.
29
30### Sticky Scroll
31
32When `project_panel.sticky_scroll` is enabled (the default), ancestor directories pin themselves to the top
33of the panel as you scroll, so you always know which directory you're on.
34
35
36
37
38
39### Directory Folding
40
41When `project_panel.auto_fold_dirs` is enabled (the default), chains of directories that each contain a
42single child directory are collapsed into one row (for example,
43`src/utils/helpers` instead of three separate levels). Right-click a folded
44directory and choose **Unfold Directory** to expand the chain, or **Fold
45Directory** to collapse it again.
46
47
48
49
50
51## Selecting Multiple Entries
52
53Hold `shift` while pressing the up/down arrow keys to mark additional entries.
54Most file operations, like cut, copy, trash, delete and drag, apply to the full
55set of marked entries.
56
57When exactly two files are marked, {#action project_panel::CompareMarkedFiles}
58({#kb project_panel::CompareMarkedFiles}) opens a diff view comparing them.
59
60
61
62## File Operations
63
64Right-click an entry to see the full list of available operations, or use the
65keybindings below.
66
67### Creating Files and Directories
68
69- {#action project_panel::NewFile} ({#kb project_panel::NewFile}) creates a new
70 file inside the selected directory.
71- {#action project_panel::NewDirectory} ({#kb project_panel::NewDirectory})
72 creates a new directory.
73
74An inline editor appears so you can type the name. Press `enter` to
75confirm or `escape` to cancel.
76
77### Renaming
78
79Press {#kb project_panel::Rename} to rename the selected entry. The filename
80stem is pre-selected so you can type a new name without accidentally changing
81the extension. Press `enter` to confirm or `escape` to
82cancel.
83
84### Cut, Copy, and Paste
85
86- {#action project_panel::Cut} ({#kb project_panel::Cut}) marks entries for
87 moving.
88- {#action project_panel::Copy} ({#kb project_panel::Copy}) marks entries for
89 copying.
90- {#action project_panel::Paste} ({#kb project_panel::Paste}) places them in the
91 selected directory.
92
93When pasting would create a name conflict, Zed appends a "copy" suffix (e.g.,
94`file copy.txt`, `file copy 2.txt`). If a single file is pasted with a generated
95suffix, the rename editor opens automatically so you can adjust the name.
96
97### Duplicate
98
99{#action project_panel::Duplicate} ({#kb project_panel::Duplicate}) copies and
100pastes the selected entries in one step.
101
102### Trash and Delete
103
104- {#action project_panel::Trash} ({#kb project_panel::Trash}) moves entries to
105 the system trash.
106- {#action project_panel::Delete} ({#kb project_panel::Delete}) permanently
107 deletes entries.
108
109Both actions show a confirmation prompt listing the affected files. If any of
110the files have unsaved changes, the prompt warns you.
111
112### Drag and Drop
113
114Drag entries within the panel to move them. Hold `alt` while dropping to copy
115instead of move. You can also drag files from your operating system's file
116manager into the project panel to copy them into the project. Drag and drop can
117be disabled with the `project_panel.drag_and_drop` setting.
118
119## Git Integration
120
121When `project_panel.git_status` is enabled (the default), file and directory names are tinted
122to reflect their git status—modified, added, deleted, untracked, or conflicting.
123
124Setting `project_panel.git_status_indicator` to `true` (disabled by default) adds a letter badge next
125to each name: **M** (modified), **A** (added), **D** (deleted), **U**
126(untracked) or **!** (conflict).
127
128
129
130Use {#action project_panel::SelectNextGitEntry} and {#action
131project_panel::SelectPrevGitEntry} to jump between tracked files with
132uncommitted changes. The right-click menu also offers **Restore File** to
133discard changes and **View File History** to browse a file's commit log.
134
135## Diagnostics
136
137The `project_panel.show_diagnostics` setting controls whether error and warning
138indicators appear on file and folder icons. Set it to `"all"` to see both errors
139and warnings, `"errors"` for errors only, or `"off"` to hide them. Diagnostics
140propagate upward—if a file deep in a directory has an error, its ancestor
141folders show an indicator too.
142
143Enable `project_panel.diagnostic_badges` (disabled by default) to display numeric error and warning
144counts next to each entry. Use {#action project_panel::SelectNextDiagnostic} and
145{#action project_panel::SelectPrevDiagnostic} to navigate between files that
146have diagnostics.
147
148See also [Diagnostics & Quick Fixes](./diagnostics.md) for editor and tab diagnostic settings.
149
150## Filtering and Sorting
151
152### Hiding Files
153
154- `project_panel.hide_gitignore` hides files matched by `.gitignore`. Toggle
155 this with {#action project_panel::ToggleHideGitIgnore}.
156- `project_panel.hide_hidden` hides dotfiles and other hidden entries. Toggle
157 with {#action project_panel::ToggleHideHidden}.
158
159### Sorting
160
161The `project_panel.sort_mode` setting controls grouping:
162
163- `"directories_first"` (default) — directories appear before files at each
164 level.
165- `"files_first"` — files appear before directories.
166- `"mixed"` — directories and files are sorted together.
167
168The `project_panel.sort_order` setting controls name comparison:
169
170- `"default"` — case-insensitive natural sort (`file2` before `file10`).
171- `"upper"` — uppercase names grouped first, then lowercase.
172- `"lower"` — lowercase names grouped first, then uppercase.
173- `"unicode"` — raw Unicode codepoint order with no case folding.
174
175## Other Actions
176
177- {#action project_panel::RevealInFileManager} ({#kb
178 project_panel::RevealInFileManager}) reveals the selected entry in Finder /
179 File Explorer.
180- {#action project_panel::NewSearchInDirectory} ({#kb
181 project_panel::NewSearchInDirectory}) opens a project search scoped to the
182 selected directory.
183- {#action project_panel::RemoveFromProject} removes a workspace root folder
184 from the project.