Type in the toolbar search box (⌥⌘F) and results appear as you type,
like an email client: matching pages listed above, a live preview of the chosen one below — and
the preview is directly editable, so you can fix a typo without leaving the results — with
one exception: a board, a mind map or a protected page is shown rather than opened for
editing, because those are written where they live and not in a side panel.
Every match is highlighted in the preview and the first one scrolls into view.
Press Return to also find the pages about what you typed that do not use its words —
see Finding pages by what they are about, below.
A paper reads in the preview too. When the result is a PDF, a book or a saved web page, the pane gives you the document itself — the same reader the page uses — opened at the word you searched for, with every match marked and a count you can step through. For a wiki built on a library of papers that turns the results list into a reading surface: run a search, walk the list, and read each paper in place without opening any of them.
Getting back. Double-click a result (or press Open in the preview) and the page takes over the window. The back arrow returns you to the search you came from, with the same results still there — press it again and you keep going back through the pages you were reading before.
| Query | Finds pages… |
|---|---|
plausible labs | containing both words, anywhere, any order |
"plausible labs" | containing that exact phrase, in order |
cats OR dogs | containing either word (OR must be uppercase) |
cats NOT dogs | containing cats but not dogs |
Pre* *ing *ish* | wildcards at either end, or both |
((Foo Bar) NOT baz) OR *pies | parentheses group anything |
A bare word matches the beginning of longer words too — mojo finds
a page named MojoPadReview — so joined WikiWord names are as findable as spaced
ones. When you need an exact word and nothing longer, quote it: "mojo".
Forgot any of this mid-search? Click the ? on the search box — the whole grammar,
including everything below, lives in a one-glance cheatsheet right where you type.
Add a time window to any search — alone or alongside words:
| Term | Keeps pages… |
|---|---|
during:july during:2025-q3 during:week | edited in that period (month, quarter, year, week, today, yesterday…) |
after:2026-01-15 / before:march | edited after / before a date |
created:2025 | created in the period (instead of edited) |
edited:month | says “edited” out loud — same as the default |
about:2024 about:q3 | whose content talks about that time — dates written in the page count, not just when you touched it |
So project alpha during:q3 is “my Project Alpha notes from that quarter,”
and about:march-2024 finds the meeting page that mentions March 2024 even if
you wrote it last week. Dated searches sort newest-first, like a timeline. The same time
windows work when you Ask your wiki a question — “what was I thinking about in July?”
scopes its reading to July.
Two words together mean both: carpal release keeps pages carrying each of
them, anywhere. AND says the same thing out loud, and is worth typing when a query gets
big enough to read back: (carpal OR cubital) AND endoscopic. OR keeps
either side, NOT excludes what follows it, and brackets group. All three are
uppercase — so searching for the ordinary words and, or and not still
works.
Quotes are an exact phrase in order — "carpal tunnel release" — and *
stands in for the rest of a word: cubit*, *ectomy.
| Term | Keeps pages… |
|---|---|
tag:client | carrying that tag |
in:research (or folder:) | filed under that folder — subfolders count |
type:pdf type:canvas type:markdown… | of that kind (pdf, epub, book, canvas, markdown, plaintext, richtext, page) |
name:budget | with the word in the page name |
prop:Year=2025 prop:Authors=Kelly prop:Title | carrying that value in one of your own fields — and the bare form, with no =, keeps every page that has the field filled in at all |
sort:edited / sort:created / sort:name | — not a filter; orders the results |
prop: matches what you see. A field that holds a link to another page shows
that page's name, and a checkbox shows Yes — so prop:Journal=Nature and
prop:Reviewed=Yes are what to type, not whatever the file happens to store underneath.
It reads a value a page inherits from its kind as well as one written on the page itself,
which is what makes a library whose shared columns live on a kind searchable at all.
These take the operators too. Several terms together still mean and —
type:pdf prop:Year=2025 keeps papers that are both — but OR,
NOT and brackets work on them exactly as they work on words. So
NOT prop:Year finds the papers with no year, tag:draft OR tag:review keeps
either, and (tag:draft OR tag:review) AND prop:Year=2025 means what it reads as. A
search may begin with NOT, which is how you would say "the ones without".
sort: is the exception, and deliberately: it orders results rather than choosing
them, so there is nothing about it to negate.
You searched to find the six papers a paragraph needs. Every result carries a checkbox.
Check the ones you want and a bar appears at the top of the list: Insert puts links to them
into the page you were writing in — at the cursor you left, as a list or as A, B and C in the
line — and Copy puts the same links on the clipboard instead, in the [[Name]]
form that becomes a link again wherever you paste it back.
Checking a result does not open it: the row still previews on a click and opens on a double click, so choosing six papers is not a tour of six documents.
Some answers are paragraphs. A Summary, an Argument, a What I think of it — give the property the Note (formatted) type and it holds writing rather than a value: bold and italics, lists, links to your other pages.
It is a real writing surface. Type [[ to link a page, / for the insert
menu, select words for the formatting bar — the same things that work in the page body.
Two things worth knowing. The words are what everything else sees: a table sorts by them, a search matches them, an export writes them, so the formatting is for reading and never changes what the value is. And ⌘Z belongs to the page, not to the field — a change inside a property is undone by editing it back, the same way a page title is.
A paper, a report, a letter and a chapter are four different objects, and the differences are not decoration. A paper leads with its title, its authors and where it appeared, and numbers its sections so a reader can be told to look at 3.2. A letter has no title at all — a date, a narrower column, and headings that stop shouting, because a letter is one voice. A chapter indents the paragraphs that continue a thought and not the ones that start a section, which is the pair of rules that makes a page look like a book. A report puts a rule under its heading and gives itself room for tables.
Choose one under Exports as in a page's Info panel. It applies to HTML, PDF and Word.
The page's own choice wins. Failing that, its kind answers — so if you keep a Kind: Paper and give it a template, every paper exports that way without anybody choosing each time, and the row tells you which kind it came from. Failing both, the setting in Settings ▸ Exporting answers, which is what happens for most pages, because most pages have no kind.
Choosing Plain is a real answer, not the absence of one. A page inside a Kind: Paper can be exported plainly without being taken out of its kind — leave the row on Use my kind's and the kind decides again.
Compiling a folder asks once, in the compile window, and uses one shape for the whole file. That is deliberate: a template numbers sections and indents paragraphs from the top of a document, so five of them inside one file would restart the counters in the middle.
A Word file has no stylesheet, so a template reaches it differently. The indenting carries across properly — the paragraphs that continue a thought, not the ones that start a section. Numbered sections do not, and rather than let you find that out later, they are named in the report you already get after an export.
Paper size, margins and page numbers are not part of a template. Journals ask for those, and Settings ▸ Exporting ▸ Paper is where you answer once — a template that set its own would be a second answer to the same question.
You are looking for something and you are not sure which wiki you put it in. Search the one you have open, and directly under the results header is Also search your other wikis, with Choose… beside it for deciding which. They are read from disk at the moment you ask — nothing is indexed, and nothing is kept. Results are grouped by wiki, and a hit opens the page in the wiki that holds it.
Two things it will tell you rather than leave you to work out. A wiki with a password is
not searched, and is named — silence there would read as "nothing in it matched", which is a
different claim. And prop: and the date terms are not carried across: a property is
defined by the wiki that holds it, so a search using them is answered out there on its words alone,
and the results say so before you press the button.
Every results page has a ☆ Save button: name it, and the query becomes a
🔎 entry under Folders that re-runs live every time you click it. Because
it re-runs, time windows stay current — a saved during:week is always
this week. It's how you make views like “open questions tagged client, newest
first” without maintaining anything.
Two searches the words alone get wrong. Search a library of papers for sleep loss and the pages that carry both words come up — including a trial of a weight-loss diet that mentions sleep once, which is not about losing sleep at all — while the paper on insomnia, which is about exactly what you meant, never says “loss” and is nowhere. Search a folder of concert reviews for pages mentioning composers and you get the few that use the word, not the dozens that name Bach or Mozart. Press Return in the search box, and MojoPad does both halves of what you meant.
Your words first, and unchanged. The pages that carry your words are listed the moment you type, with the same count as always. Nothing is taken off that list.
Then the pages about it, without these words. Under the word matches a group appears — About sleep loss, without these words — and fills in as MojoPad works: it takes the pages that read most like your search, and reads each one with the AI model on this computer, asking one question: does this page belong? Only the pages that do are added, each with the passage that was read and Checked: about sleep loss beneath it. The line under the search's heading counts as it goes — Checking by meaning… 34 of 77. When it is done, or stopped, it says what it found and then how many pages it read, so in a narrow window or a side pane it is the count that is cut short, not the finding.
Word matches that use the words in another sense move to the end. Each page that carries your words is read too. One that uses them in another sense — that weight-loss trial — is dimmed where it stands, with the sentence your word was read in, and when the checking is done it goes under a line at the bottom: 2 pages use these words in another sense — Show. It is never taken away; press Show to see them all.
Nothing jumps under your pointer. While the checks come back, a row changes where it is; the one move — word matches in another sense going to the end — waits until your pointer is off the list and you are not typing in it, so you never click the wrong page. While your pointer is on the line that counts them, or on a page under it, pages found by meaning wait to be added above it. And the keyboard stays where you were: Tab reaches every row, Return shows the page, and after you press Belongs, Not this, Undo or Check more the keyboard is still on that row or that line; after Show more it is on the first page shown. A screen reader hears each page's name with what was decided of it — Checked: about sleep loss, Another sense, You said: not this — and hears the line once when the search ends, not at every page.
What counts, in one sentence you can change. Before any page is read, MojoPad writes one sentence of what your search covers, above the group — Checking for: sleep loss — too little sleep: insomnia, short sleep, waking at night… If it has missed something you mean, or included something you do not, press Change, say it your way and press Return: the pages are checked again against your sentence, and any it has already read against that sentence come back at once. Your sentence is kept for that search, even after you change models.
“Belongs” and “Not this” are yours. Every page in the group has Belongs and Not this; a word match that moved to the end has Belongs, and right-clicking any word match offers Not This. Your answer is kept with the wiki for that search — the next time you search it, the page is where you put it and is not read again — and it outlasts edits to the page and a change of model. A word match you said belongs shows it beside its name — You said: belongs · Undo. Undo takes it back, on the row or from the right-click menu (Undo Belongs, Undo Not This), and the page stays where it is in the list. It is kept from the window you opened the wiki in: in a second window on the same wiki, or in a page opened as a card, MojoPad says so instead of seeming to keep it.
How long it takes. On a recent Mac with a capable model, about a minute for a search that finds some seventy pages to read, and the first pages arrive in seconds. The first few pages are timed, every search: if the whole search would take well over two minutes on this computer, MojoPad stops and says so — Search deeper — about 6 minutes on this computer — and continues only if you press it. It never names more time than it will take: a deeper search stops after a quarter of an hour, so when the whole would take longer the button says about 15 minutes, and the line says how far that reaches — about 37 of the 110 pages left fit in that time; Check more continues from there. A search that was slow once because the Mac was busy is not held against the next one. On a PC, or with a small model, the button is there from the start and nothing is read until you press it; the first time, before anything has been timed on this computer, it reads Search deeper on this computer, and once a few pages are read the line says how long is left — Checking by meaning… 5 of 77 · about 12 minutes left, worked out again after every page. Time spent waiting while Ask writes you an answer does not count against a search: answers go first — an answer that reads your notes or your journal in parts too. (A list of pages in Ask is the other way around: it checks its pages as soon as you ask, on any computer, and its answer is written once they are in — see Asking which pages you have in the Ask chapter.) Only the forty pages closest in meaning are read at first, so when none of them belongs the line says none of the 40 closest pages by meaning is about sleep loss, not that there is no such page; a search stopped partway, or with pages that could not be read, counts only the pages by meaning it did read — none of the 12 pages by meaning read so far is about sleep loss. (The Checked or Stopped after count beside it counts every page read, the word matches too.) Only pages in the index can be found by meaning, so while it is still being built — or papers are still being read for their words — the line never says there is no such page: it counts what it read, and how many of the pages this search could find are not indexed yet — none of the 28 pages by meaning read is about sleep loss · 12 pages not indexed yet. A search narrowed by a tag, a folder or a date counts only the pages it could have found. Check more reads the next forty, and any word matches still waiting. Esc, or a new search, stops the reading, and what was already decided is kept; so does switching AI off, in Settings or for this wiki — nothing more is read; a list in Ask that your next question stopped keeps what it found and says Stopped after 12 of 48 pages. Ask again to check the rest.
Asked again, it is instant. What each page was found to be is kept with the wiki, so the same search, a saved search, or going Back to your results shows the group at once — only a page you have edited since is read again. Going Back to a search you only typed, without pressing Return, shows its word matches and reads nothing. In Ask, a conversation you come back to shows each list as its checks ended — finished, at their limit, or stopped — with your calls as they are now; asking the same question again continues from there, and what was already read comes back at once. Find these words in Search, under a list's Also carrying the words, opens the search box on the list's words.
What never leaves your Mac. The pages are read only by a model on this computer — never by a service elsewhere — not even a model that Ollama lists but runs on its own servers — and never by your own agent, even when you have chosen one for Ask. A locked page is never read, never listed and never kept, and when the wiki locks because you were away, a search an assistant was running in it stops and hands nothing back. What MojoPad keeps about your searches is sealed with the wiki's password, like the index. A page's words are not instructions. The model is shown a page's title and passages as quotations, and told they are only the page's own words, so a line in a clipped page claiming it belongs in every list is read as part of the page, not obeyed. It is not a guarantee: such a line can still sway the answer, about once in fifty tries — and Not this keeps a page out of that search for good.
Asked by an assistant. Say you ask Claude which of your papers are about sleep loss. An assistant connected to MojoPad can ask for the same group. With MojoPad open, it can have the pages checked on this computer for as long as it waits — on a Mac or a PC, with any model you have here — and it is told which pages were not checked in that time, and why. From the wiki on disk, it is given what MojoPad last found, with your Belongs and Not this as they are now; a page edited since that search is marked as changed since, and a wiki with Use no AI in this wiki checked gives it nothing by meaning.
With no model on this computer to answer — none installed, or Ollama not running — the group is Close in meaning — not checked: the closest pages by meaning, six of them shown and more a press away, none of them read. They are suggestions, and labeled so. Your own Belongs and Not this still stand: a page you said is not about it is left out of them.
“Mentioning” is not the same as “with the word”. pages mentioning composers
counts a page that names a composer once; MojoPad says under the group that a page mentioning it only
in passing may be missing, because such a page does not always read like your search. When you want
the words themselves, say so and the search stays literal, with no group: put a phrase in quotation
marks, or ask for pages with the word, called or titled something, tagged
with it — with pages in front or without it: with the word sleep is as literal as
pages with the word sleep — or by a DOI or a PubMed number. A search that shuts words out with
NOT or spells one with * is literal too. A search phrased as a request keeps
its other terms: pages about sleep loss tag:paper finds the pages about sleep loss among the ones
tagged paper, and a date or sort: term works the same way.
Plurals. The search box now reads a plural the way Ask does, so corticosteroids finds a page that says corticosteroid, pharmacy finds pharmacies and calories finds calorie — which means a count you know may go up. Reading plurals never stretches a word into another that merely starts the same way, in the search box or in Ask: Davis does not find David, and physics does not find physical. A word in quotation marks is still exact.
Other wikis are searched for your words only — the same words as this wiki, so pages mentioning composers looks for composers there too, not for “pages” and “mentioning” — and the group is about the wiki in front of you. Conversations close in meaning to your search still appear in a small group of their own.
How good is it? Measured on a library of 120 papers and 60 news clippings, against lists of the pages a reader meant, written before anything was run: most of the papers meant were found, and most of what was listed was meant — better than the words alone, and far better than the old unchecked “Related by meaning”. It is not perfect: on the hardest searches about one in five of the pages listed was not one the reader meant, and a page that mentions something only once, in passing, is found about half the time. Not this takes out a page that is listed but not meant, and Belongs brings back a page with your words that was moved to the end. A page the check left out is not listed anywhere, so there is nothing to press for it: search for a word it uses, or ask in your own words with Change.
Search reaches into your imported files, not just their names. A second or two after you import a PDF or ePub, MojoPad reads its text in the background and folds it into the index — so a word buried on page 200 of a book turns up, with a snippet, like any note. Click a PDF result and it opens right at the match, the word highlighted (see below). A scanned PDF with no real text layer can only be found by its file name — there's no text to read.
⌘F opens the in-page find bar with Replace, All (which replaces every match),
next/previous, and a running “3 of 7” match counter. Esc closes it. It passes over a
page's hidden styling: a page imported from VoodooPad, or one you pasted into from another app, often
carries some, and nothing inside it is counted as a match or changed by All, so replacing a
word can't spoil the page's look. The search results preview highlights the same way.
Hover a PDF or book and ⌘F opens a find bar for the document instead:
type a word to jump to the first match with every hit highlighted, ⏎ / ⇧⏎ (or the
↑/↓ buttons) to step through them, Esc to close. The counter shows every occurrence in
the whole document, and it works the same in whichever pane the document is in.