Notes, files, and previews
Three Project-scoped surfaces that open into panes rather than living only in the drawer: the note collection, the file tree, and whatever your sessions are serving.
Notes
A flat, Project-owned collection in a real Markdown editor - rendered headings, nested lists, checkboxes, an outline you can jump through. Notes are created from the Notes drawer, not from a terminal or a session, because a note belongs to the Project rather than to whichever session happened to be focused.
| Chord | Action |
|---|---|
| Ctrl+Alt+N | Open the current Project's notes |
| Ctrl+Alt+J | Jump to a heading in the focused note |
| Ctrl+F | Find inside the focused note, from within the editor |
There is one global note, the Scratchpad, pinned at the top of the drawer in every scope. It lives outside every Project and every repository, it cannot be renamed or deleted, and it is the right place for something that is not about the repository you happen to be standing in.
Deleting a note is recoverable. The file moves into a trash directory inside the Project's own ignored state rather than being unlinked, so the bytes are still on disk when you want them. The one refusal is emptying a Project's collection: the last note cannot be deleted, and the control says why rather than merely being disabled.
The whole note tree is Project-local application state and is git-ignored by a manifest swe-mux writes at Project creation. An ignore file you already wrote is yours and is never rewritten.
Files
A bounded file tree over the Project root with editors, ignore patterns, and a reveal into the host file manager. Picking a file opens it into a pane, so reading code beside a running agent does not cost you the terminal.
Text edits are revision-checked: an edit carries the revision it was made against and is refused if the file moved underneath it. That is the difference between a conflict you are told about and a change you silently lost.
Watches are leased. A watch on a directory is non-recursive and expires unless it is renewed, which is what stops a browser tab left open for a week holding filesystem watches on a repository nobody is looking at.
Previews
swe-mux notices what your sessions started and what each one is listening on. A local development server can be opened as a Preview tab, and it is proxied through the daemon's own URL, hot module reload included - so a phone reaches it without ever needing a raw port on the host, and without a second thing to expose on your tailnet.
A static document in the checkout can be previewed the same way, under a sandbox policy, which is how you read a built HTML report without leaving the workspace.
swe-mux finds hung processes; it does not kill them. A suspected orphan is surfaced with what it is and what started it. Terminating it stays an explicit act you take.
Prompt templates
Saved reusable messages, in the Actions tab. Selecting one inserts and never submits, which is deliberate: a template is text, not an action, and a template that sent itself would be a macro with no confirmation step.
The clipboard history
A ring of recent captures, in the Actions tab beside the templates, because both do the same thing - put text into the focused agent. On a phone this is often the only practical way to move a long string into a terminal.