5.3.0 — Search inside your files, and the pane remembers where you were
A snapshot as of 5.3.0 (released 2026-09-19). It will go stale as the app moves on — that is expected, and the living reference is the guide each section links to.
Three things ship, and none of them needs a setting. The first is new, the second removes a reload you have been doing by hand, and the third is a run of small repairs to the same pane.
1. Search inside the files of the open project
The Files pane could find a file by name. It can now search what is in them.
Open it: enlarge a cell (⤢), open the Files pane (the folder button), and press the magnifier-with-lines button in the pane’s header — its label is Search in files. It sits next to the plain magnifier, which is still the by-name finder.
Or bind a key. The action is files-search, and it opens the pane first if the pane is closed:
{
"keymap": {
"files-search": "Cmd+Shift+f"
}
}
Put that in ~/.mulmoterminal/config.json and restart the server. The letter is lower case on purpose: with Cmd held, a macOS browser reports the unshifted letter, so Cmd+Shift+F with a capital never fires. The app says so at startup now rather than leaving you to wonder — and this repo’s own tests run every sample in these pages through the real validator, which is how the capital in this very page’s first draft was caught.
What you get: matches grouped by file, with the matching lines under each one and the lines around the result you are on. What you typed is emphasised in every line. Pick a result and the file opens with the cursor on that line.
What it searches, and what it skips:
- The query is literal by default. Two toggles turn on regular expressions and match case; with neither, case is smart — a lower-case query matches either case, one with a capital in it does not.
- In a git repository,
.gitignoreapplies, and a file your agent created a moment ago is searched too. Outside one, no ignore file is read. - A file you have open with unsaved edits is searched from your screen, not from disk — in literal mode. With the regex toggle on it is left out instead, with a note asking you to save it, because running a half-typed pattern over the page can freeze it. Its stale matches from disk are dropped either way.
The reference for every option is in the keymap section of the config guide.
2. An open Markdown preview follows the file
Before: you had Preview up on a .md your agent was writing, and the only way to see the new text was to reload the browser.
Now the preview follows the file. Nothing to configure. If you keep a plan or a README open beside the cell that is editing it, this is the reload you stop doing.
3. The Files pane remembers where you were — and stops lying while it reads
Four repairs to the same pane. All automatic.
- The view mode comes back. If you were reading a
.mdin Preview, you come back to Preview — across a browser reload, and across walking the zoom to another cell and back. It comes back only over the same file, and only while that file is still Markdown the server can render; anything else opens in the editor. - Your place comes back. The line at the top of the editor, the line the cursor was on, and how far down the tree was scrolled. The top line matters on its own: scrolling moves neither the selection nor the cursor, so someone reading without clicking would otherwise come back to the top of a file they were in the middle of. A remembered line that is past the end of a file your agent has since shortened lands on the nearest real line.
- It paints the last tree it saw while it re-reads. Opening the pane on a directory you have been to before shows that tree at once and swaps in what the server says when it arrives — including any directory you expanded while waiting.
- It no longer calls a directory empty before it has read it. A directory the pane has not read says
Loading…;Empty directory.now means the listing came back with nothing in it. A read that fails shows the error rather than a tree it can no longer vouch for.
How to tell you have it
Open the Files pane on a project you have opened before: the tree appears immediately rather than after a blink of Loading…. Open a long file, scroll into the middle, walk the zoom to another cell and come back — you are on the same line.
One thing to expect on the first upgrade: nothing is remembered yet. The first reload after updating still opens at the top, because there is no stored place to come back to. Read something, reload, and it is there.
Also in this release
- A route about one session answers about that session’s directory — it used to answer about whatever directory the request happened to carry (#2133).
- Documentation: the guide ships a sitemap, four pages that served untitled have titles, the Japanese pages declare Japanese, and there is an
llms.txtfor summarisers. - CI runs the suite in shards and skips what a change cannot reach, so a docs-only PR no longer waits on the whole matrix.
For everything in the release, see the changelog.