Skip to Content
DesktopProjects

Projects Tab

TL;DR

Projects is a Warp-style file sidebar that mixes local folders with remote machines. Add a local path or a cmdop://machine/<id>/<path> URI and browse it like any folder; the chat picks files from the same tree for context.

The Projects tab is the one place where local and remote files share a common UI.

What Projects is

Projects is a persistent file-tree sidebar at the desktop level. Each entry is a “project” — a named root that may be local (a filesystem path) or remote (a cmdop:// URI). The tree loads lazily, so adding a remote project does not block on reachability — you can register a project on a sleeping laptop and the sidebar shows it as pending until the machine is reachable.

Adding a local project

Click “Add local project”, pick a directory in the OS file picker, give it a name, and optionally set an icon. The desktop spawns a watcher rooted at the directory so file changes show up in the tree without a manual refresh.

Local projects are sandboxed — the desktop only reads paths under the root you picked, never above it.

Adding a remote project

Use the “Add remote project” form to register a cmdop://machine/<id>/<absolute-path> URI. The machine ID is the UUID from the Machines tab (or a hostname prefix if your fleet is small). The desktop does not connect on Add — reachability surfaces the first time you expand the tree.

If a remote project shows “pending” for more than a few seconds, the target machine is offline or unreachable. Check the Machines tab and confirm the machine is online before retrying.

Tree navigation works with arrow keys or the mouse, and every project supports fuzzy search inside its root. Search runs locally for local projects and queries the remote machine for remote ones, so a search across a remote project costs one round trip per directory expanded.

Pinning, recency, and grouping

The side rail groups projects into pinned, recent, and “show all”. Pinned projects sit at the top in the order you set; recent projects appear below in last-accessed order; the rest collapse into an expander. Pin order is persisted to the user state store.

Files in chat context

Dragging a file from Projects into the chat input attaches it as a context file for the current turn. For remote files, the inspector and the chat both stream content through the same connection used for chat, so attaching a remote file to a remote-machine inspector chat costs no extra connection.

Inspector preview from Projects

Clicking a media file in the tree opens the Inspector. Local files stream on demand with byte-range support; remote files stream over the machine connection. PDFs, audio, video, and images all render inline; everything else falls back to “open with system default”.

Last updated on