---
sidebar_position: 1
---

# Files & Editing

CoderFlow has three code-editing surfaces. They all start from the same task result, but they are useful at different points in the review flow.

| Surface | Where it runs | Best for |
|---------|---------------|----------|
| **Quick Edit** | The task page, inside the running task container | Small edits to a file you are already reviewing |
| **Web VS Code** | code-server in the running task container | Full IDE work in the browser, terminal commands, and multi-file edits |
| **VS Code Extension** | Your local desktop VS Code workspace | Applying completed task patches to local repositories |

This page covers Quick Edit, the changed-files view, and the task file browser. For the full browser IDE, see [Web VS Code](/code/code-server). For local desktop VS Code, see [VS Code Extension](/clients/vscode-extension).

## Viewing Changed Files

The **Changed Files** section displays all repository changes made during the task execution. When a task completes or when you view an active task, you'll see:

- **Change statistics** - Count of repositories, files changed, lines added, and lines deleted
- **Repository list** - Each modified repository with the number of files changed
- **File diffs** - Detailed unified diffs showing what changed in each file, with syntax highlighting

You can toggle each file's diff to expand or collapse it. The diffs are read-only and show the state of the repository at the moment the task finished syncing.

While the container is running, each changed file also includes a **Download** action so you can save the current file contents directly from the task view. Deleted files do not show this action.

## Quick Edit

Quick Edit opens an editor inline in the Changed Files section. It writes to the task container, not to your local machine.

1. Click the **Edit** button next to any file in the Changed Files section
2. The editor opens with the current file content from the container
3. Make your edits in the editor
4. Click **Save** to write your changes to the file in the container and refresh Changed Files with your new changes

For regular text files, Quick Edit uses Monaco, the editor engine behind VS Code. Markdown files use CoderFlow's Markdown editor so you can edit docs with the same formatting controls used elsewhere in the task page.

Quick Edit supports:

- Syntax highlighting based on the file extension
- Line numbers and code folding
- Search and replace (Ctrl+H / Cmd+H)
- Auto-formatting support
- Word wrapping and minimap navigation for larger files

Editing is only available while the container is running. Binary files cannot be edited inline; download them or open the container in [Web VS Code](/code/code-server) if you need another tool.

### What Save Does

Saving a Quick Edit:

1. Writes the new content to the file path inside the task container.
2. Runs the task sync step so repository diffs are recalculated.
3. Refreshes Changed Files so the diff reflects the saved content.

If the file is not present on the container's current branch, CoderFlow blocks editing and asks you to switch to the branch that contains the file.

## File Browser

Use the side file-browser button on the task page when you need to inspect files that are not already in Changed Files.

The file browser can open these roots:

- **Workspace** - `/workspace`, where repositories are cloned
- **Task Output** - `/task-output`, where task logs, metadata, and generated artifacts live
- **Container Root** - `/`, the full container filesystem

The search field filters the current folder as you type. Press **Enter** to run a deeper filename search under the current folder.

When the container is running, the file browser can:

- Preview text, Markdown, images, PDFs, CSV, and TSV files
- Edit non-binary text files
- Download files
- Upload files into the current folder
- Create folders
- Rename files or folders
- Delete files and empty folders
- Copy the file path, file name, or loaded text content

Saving from the file browser writes the file to the container and syncs Changed Files, the same as Quick Edit.

## Downloading Files

To save the current contents of a changed file from the task:

1. Click the **Download** button next to the file in the Changed Files section
2. Your browser saves the current file contents from the running task container

This is useful when you already know which changed file you want and do not need to open the full file browser or VS Code.

## When to Use Each Surface

Use **Quick Edit** when the diff already shows the file you need and you want a narrow correction.

Use the **file browser** when you need to inspect, upload, rename, or edit a file that is not currently changed.

Use **Web VS Code** when you need the browser IDE, an integrated terminal, repository search, or edits across several files. Web VS Code changes the same container filesystem as Quick Edit; after syncing, those changes appear in Changed Files.

Use the **VS Code Extension** when the task is complete and you want to bring the generated patch into repositories on your own machine.

## Discarding Changes

To revert changes to a file back to what's in the Git repository:

1. Click the **Discard** button next to the file in the Changed Files section
2. A confirmation modal appears with the filename
3. Click **Discard** to confirm

The discard operation:
- Uses `git checkout` if the file exists in the repository's HEAD commit
- Removes the file entirely if it's a new file that doesn't exist in HEAD (handles staged and untracked files)
- Updates the Changed Files view to reflect the removal of that file's changes

After discarding, you can immediately see the updated diffs. If you discard all changes to a file, it disappears from the Changed Files section.
