a file explorer under the transcript while the agent works
Files pane
#/files opens a file explorer in the focus pane — the split under the transcript that the agent keeps streaming above. Browse the project, pick files for your next prompt, watch the model's edits land, and manage files without leaving DGC or stopping the turn.
Open it
#/filesopens at the project root ·/files src/authjumps to a folder or focuses a file.- The pane folds away whenever DGC needs your answer (a permission, a prompt, a picker) and returns when you have answered. q or Esc closes it; Ctrl+C still stops the agent.
- It works during a turn: the header shows what the agent is doing (
DGC: USING TOOLS), and files the model changed this turn carry a ✎ mark.
Layout
#Three columns like yazi and ranger: the parent folder, the current folder, and a preview of what is under the cursor — the first lines of a text file with line numbers, a folder's entries, a symlink's target, or a one-line summary for binaries. Narrow terminals drop the parent column, then the preview. i or Tab swaps the preview for details (size, modified time, mode, Git status). Git status letters (M modified · A added · D deleted · ? untracked) come from a read-only git status that never runs filters or transports.
Move and select
#- j / k or ↑ ↓ move · h / l or ← → go to the parent / enter a folder · gg / G top / bottom
- H / L back / forward through folders you visited · - the previous folder · ~ home · gr the project root
- Space toggles the entry under the cursor · v starts a visual range · Ctrl+A selects everything · Esc clears
- f filters the list as you type (smart case) · / finds and n / N step through matches · . shows hidden files · s cycles name → modified → size → extension, S reverses
Use a file in your prompt
#- Enter (or o) on a file inserts
@pathinto the composer — the same bounded file attachment as typing it — so you can browse, pick, and ask about exactly that file. - c inserts the plain path instead.
Change files
#- a creates a file, or a folder when the name ends with
/(docs/notes/creates both levels). - r renames, with the cursor placed before the extension.
- y copies and x cuts the selection (or the entry under the cursor); p pastes into the current folder, keeping both on a name collision (
name (2).ext); P overwrites instead. - d sends entries to the trash — DGC's own
~/.dgc/trashby default, kept for 30 days, or the OS trash whentrash_modeisos. - D deletes permanently and always asks first.
- u undoes the last change: renames move back, copies are removed unless you edited them, trashed entries return, and permanently deleted files (up to 8 MB) are restored from the snapshot taken before deletion. Deleted folders are not restorable.
What it will not do
#- It never runs a shell command and nothing it does enters the model's context unless you insert a path.
- Writes follow the permission mode: plan makes the pane read-only; default asks before trash, move, and overwrite; acceptEdits and auto act immediately with undo. Permanent deletion asks in every mode.
- Writes stay inside the project. Browsing above the root is read-only, except in auto mode, which asks first.
- The project root itself is never an operand. Trash, delete, rename, and move refuse it and every folder above it, in every mode, so browsing up to the parent and pressing d cannot throw the project away.
- Trees over 5,000 entries or 512 MB are refused rather than half-copied; use the shell for those.