Every file you create lives at one path inside one workspace. That path is the same in the editor, in the assistant and over the API. This page covers how paths work, what the file tree can do, and what happens when you rename, move or delete something.

## Paths

A path is workspace-absolute. It starts at `/`, names every folder on the way down, and ends in the file name.

```text nocopy
/notes/2026/kickoff.md
/src/server/index.ts
/designs/hero.html
```

Folders live in the same tree as files, so a folder can hold files and other folders to any depth. There is no home directory and no drive letter. `/` is the root of the workspace you are in, and nothing exists above it. Agents, the CLI and the API address files by these same paths, so a path you read in the sidebar can go straight into a tool call.

The name decides the type. `notes.md` opens in the markdown editor, `index.ts` in the code editor, `board.canvas` on a canvas board. Monofile treats a file with no extension as markdown. The full map is in [[Supported File Types]].

## The file tree

The sidebar tree is the whole workspace, not a view of one folder.

| What you want | How |
|---|---|
| New file | The file icon in the tree header, or right-click a folder and choose **New File** |
| New folder | The folder icon in the tree header, or right-click and choose **New Folder** |
| Rename | Right-click and choose **Rename**. On a touch device, press and hold the row |
| Move | Drag the row onto a folder |
| Select several rows | <kbd>Ctrl</kbd>-click or <kbd>Cmd</kbd>-click to add one, <kbd>Shift</kbd>-click to take a range, <kbd>Esc</kbd> to clear |
| Move several | Select them, then drag any one of the selected rows |
| Delete | Right-click and choose **Delete** |
| Narrow the tree | Type in the **Search** box at the top. It matches file names, case-insensitively |
| Upload an image or video | Right-click a folder and choose **Upload Media** |
| Download a folder | Right-click it and choose **Download as ZIP** |

Publishing and sharing also start here. **Make Public** on a top-level folder publishes it, and **Share** on a file creates a secret link. Both are covered in [[Share Links]].

## Renaming, and what follows the file

A file has an identity of its own that is separate from its name. Rename it and it is still the same file, so these all follow it:

- **Version history and checkpoints.** A rename orphans nothing, and the pre-rename versions stay in the file's History.
- **Secret share links.** A `/l/` link keeps working after a rename, and keeps serving the same file.
- **Canvas nodes.** A board that embeds the file tracks it by identity, so the node keeps rendering.

Two things do change. The path changes, because it is made of the names above it. If the new name has a different extension, the editor changes with it. Monofile re-reads the type from the name, and warns you first when the change would swap one editor for another (`.md` to `.ts`, say).

> [!NOTE]
> A wiki-link points at a file **name**. Moving a file between folders leaves every link to it working, because a bare-name link resolves against file names anywhere in the workspace. Renaming the target does break the links that used the old name, and they render as dashed, inert chips until someone updates them. If a file is heavily linked, prefer moving it over renaming it. See [[Wiki-Links]].

## Moving

Drag a row onto a folder to move it, or drop it on empty space in the tree to move it to the root. Monofile refuses two moves. A folder cannot go inside its own descendant, and nothing can move from one workspace to another. To get a file into a different workspace, copy its content across, or share the folder and fork it.

## Deleting

> [!WARNING]
> Deleting is immediate and permanent. There is no trash.

```mermaid
flowchart LR
  D[Delete file] --> V[Versions go too]
  D --> S[Share links revoked]
  D --> I[Search index cleaned]
  D --> M[Uploaded media removed]
```

Deleting a folder deletes everything under it, recursively. The version history goes with it, so you cannot undo a delete from History, and neither the assistant nor an API client can bring a deleted file back. That is why the assistant asks you to approve a destructive shell command before it runs, and why you can issue an agent key read-only. See [[Approvals]] and [[Scopes]].

## Getting earlier content back

Monofile keeps every write to a file, so you can restore earlier content:

- Open **History** from the tab actions menu to browse, preview and restore any earlier version. Restoring is itself a write, so the version you restored *from* is still there afterwards.
- Monofile keeps the 20 most recent automatic versions per file. A **Checkpoint** is a named snapshot that is never pruned, and you can take one for a single file or a whole folder subtree from the right-click menu.

[[How Versioning Works]] has the details, including what counts as a write.

## Next steps

:::cards
- [[Uploads and Media]] — Upload images and video, embed images in your writing, and how large files are stored.
- [[Panes and Tabs]] — Split panes, tabs, and the layout that persists between sessions.
- [[Finding Things]] — The command palette, filename search and semantic search over your files.
- [[Keyboard Shortcuts]] — Every shortcut in the app, by area.
- [[How Versioning Works]] — Automatic version capture on every write, and how long versions last.
:::
