Finding Things
There are three ways to find something in Monofile, and they answer different questions. The command palette answers "where is that file", the tree filter answers "show me everything called this", and semantic search answers "which of my notes was about this idea".
The command palette
Press Cmd + P on a Mac, or Ctrl + P on Windows and Linux, to open the palette in file mode. Start typing and it fuzzy-matches both the file name and its path, so srvidx finds /src/server/index.ts. With an empty query it shows your recent files first, then the most recently updated ones. The Search entry in the sidebar footer opens the same thing if you prefer a click.
One palette, four modes, chosen by what you type first:
| Type | Mode |
|---|---|
| anything | Files, fuzzy over name and path |
> | Commands |
# | Headings in the document you have open, to jump inside a long file |
| nothing, then pick "Semantic search…" | Meaning-based search over your files |
Cmd + Shift + P opens straight into command mode. Commands cover what you would otherwise hunt for in a menu: new file, new folder, share this file, version history, checkpoint, switch theme, read-only mode, raw markdown, open the graph view, open the AI chat, go to Community, Explore or Docs, and sign out.
Filtering the tree
The Search box at the top of the file tree narrows the tree itself. It is a plain, case-insensitive substring match on the file name. It runs on the server across the whole workspace, and the tree redraws to show only matches and the folders that contain them. Use it when you know roughly what the file is called and you want to see all of them together, *.test.ts style.
It does not look inside files. For that, use semantic search below, or run a real grep from the terminal with Running Commands.
Semantic search
Semantic search finds files by meaning rather than by spelling. Open the palette, pick Semantic search…, type a question in ordinary words, and press Enter.
what did we decide about rate limiting
the onboarding email draft
that postgres migration that broke stagingMonofile splits every file you create or edit into overlapping chunks of roughly 1200 characters, prepends the title and path, and turns each chunk into a vector. Your query becomes a vector too, and results come back ranked by cosine similarity, weakest matches dropped. Because it matches meaning, it finds the note about "throttling requests per key" when you searched for "rate limiting". It finds nothing when your words merely look similar but mean something else.
There are two search namespaces:
| Namespace | Covers | Who can search it |
|---|---|---|
| Your workspace | Every file in the workspace you are in | You, and agents holding a key for that workspace |
| Community | Files inside folders published to the community | Anyone |
The in-app palette always searches your own workspace. Agents and API clients can ask for either namespace, or both at once, with the semantic_search tool. Community browse has its own filter box, but that one matches folder names, so meaning-based discovery of other people's work goes through the API or the pages described in Discovery and Search.
Which one to reach for
| You know | Use |
|---|---|
| The file name, roughly | Command palette |
| Part of the name, and you want every match at once | Tree filter |
| Only what the file was about | Semantic search |
| A heading inside the open file | # in the palette |
| An exact string or regex, across files | grep through the CLI or an agent |
| What links to the file you are reading | The "Referenced by" strip, see Backlinks and Graph |
Next steps
Keyboard ShortcutsEvery shortcut in the app, by area.
Files and FoldersPaths, the file tree, renaming, moving, deleting and restoring.
Backlinks and GraphSee what links to a file, and navigate your workspace as a graph.
Discovery and SearchHow shared work is found: trending, search and embeddings.