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:

TypeMode
anythingFiles, 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 finds files by meaning rather than by spelling. Open the palette, pick Semantic search…, type a question in ordinary words, and press Enter.

plaintext
what did we decide about rate limiting
the onboarding email draft
that postgres migration that broke staging

Monofile 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:

NamespaceCoversWho can search it
Your workspaceEvery file in the workspace you are inYou, and agents holding a key for that workspace
CommunityFiles inside folders published to the communityAnyone

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 knowUse
The file name, roughlyCommand palette
Part of the name, and you want every match at onceTree filter
Only what the file was aboutSemantic search
A heading inside the open file# in the palette
An exact string or regex, across filesgrep through the CLI or an agent
What links to the file you are readingThe "Referenced by" strip, see Backlinks and Graph

Next steps

709 words