MojoPad

Local AI

Everything here runs on your own Mac. No accounts, no keys, no subscription, and nothing you write ever leaves the machine.

That is the default and it is what most people should stay on. There is one exception, and it is switched off until you switch it on yourself: Bring your own model, further down this chapter, which lets you borrow a large model when your Mac cannot run one worth using. It changes the sentence above, so it is spelled out there in full.

Choosing which model writes

Settings ▸ AI ▸ Writing & answers lists everything that can answer, in three groups: your own agent, the models on this Mac, and the ones you set up in Settings. Choosing one there is the standing answer for everything the app writes; the chooser in the Ask panel changes it for one question.

The three groups exist because they are three different things and the difference is the whole choice. A model on this Mac answers here and nothing leaves. One you set up answers wherever you pointed it, so the question travels. Your own agent runs here and sends. A half-finished entry — one with no model name against it — is not offered at all, because it cannot answer.

With nothing installed on this Mac the list still works, as long as you have set something up.

If a question comes back saying the model could not answer here, it is one of two things: that wiki has not been allowed to send questions away, or the entry has no address. The first is a question you are asked once per wiki and can change in Settings ▸ Sharing under what you have agreed to; the second is a row in Settings ▸ AI to finish.

Two models, two different jobs

This is the one thing worth understanding before anything else, because the two get confused and they have almost nothing to do with each other. Settings ▸ AI has two rows:

Writing & answersSearch by meaning
What it doesWrites. Answers questions, summarizes, drafts, explains, suggests.Finds. Works out which of your pages are about the same thing.
Where it comes fromOllama, which you install yourself — or a model you set up in Settings, which answers from wherever you point it.MojoPad brings one. You can use your own instead.
Without itEvery ✦ command is unavailable and says so — unless you have set a model up in Settings, which can answer instead.Related and search by meaning fall back to matching words instead.

So the row that goes blank when Ollama is not running is the top one, and that is correct — writing needs Ollama. Finding does not. If you have ever wondered why searching by meaning kept working while the AI said it was unavailable, that is why.

What language answers come back in

Whatever language you write in. Ask in Dutch and the answer is in Dutch; ask in English and it is in English. You do not have to set anything, and most people never will.

It is worth knowing why there is a setting at all. A model is told which language to use, and a small one can quietly ignore being told — some lean toward the language they were trained in, which is how somebody who does not speak French ends up reading French. If that happens to you, set Answer in in Settings ▸ AI to the language you want. Every answer then comes back in that one, whatever the question or your notes are written in, and the model is given no room to decide otherwise.

It is also the setting to use if you deliberately want answers in a language you are not writing in — reading Spanish sources and wanting the summary in English, say.

Quicker answers on a computer with no graphics card

A model needs a graphics card to read quickly. On a computer without one MojoPad can use, a model can spend a minute or more reading your question and your notes before it writes a word, and most of that time goes on the notes. Settings ▸ AI ▸ Quicker answers on this computer is for that computer. It is off unless you turn it on.

Turned on, when a model on this computer answers, Ask reads about a third as much of your wiki: three of the pages closest to your question instead of nine, and for a question that asks for a list of pages, a third of the usual room to name them in. It also asks the model for a short answer. The complete list above a list answer, and its count, are the search's own and do not change.

What it leaves alone. Your question is sent exactly as you wrote it. If it asks for a length or a form — in detail, in five paragraphs, as a table, three bullet points, step by step, walk me through, tell me everything — the model is told nothing about being short, for that question and for every question after it in the same conversation, so from now on, answer in detail keeps working. MojoPad reads English wording for this; a question in another language is left to set its own length. And when it does ask for a short answer, it also tells the model to follow any length or form your question names instead. An answer shape or a persona you chose stands too.

Pages you pinned are read ahead of the ones MojoPad finds, up to the usual nine, with the switch on or off. For a question that asks for a list of pages, the switch gives the whole prompt less room, so less of each pinned page is read. And when your own agent, or a model you set up to answer from elsewhere, is answering, nothing changes at all: neither is reading on this computer, so reading less would save nothing.

The cost is what it leaves out. An answer from fewer notes can miss something a longer read would have found, so Ask says beside the answer that it read fewer of your notes. If one seems thin, turn the switch off and ask again.

When a model gets stuck

Now and then a small model loses its way partway through an answer: it starts repeating one word or one line, or counting, and would go on doing it for as long as it was let. MojoPad does not let it. Every request to a model on your computer says how long its answer may be — for a mind map, a Grow card, a filled property or ✦ Break it down, a few times more than a good answer ever needs, and for an ordinary answer far more than a good answer needs. A model that thinks before it answers is given room to think on top of that, so its thinking does not use up the answer's share. And MojoPad keeps watching as the words arrive: an answer that runs far past a sensible length, or goes round in circles, is stopped the way Stop stops it. A long table of dates or figures, where every row looks alike, is not mistaken for going in circles.

You are told when it happens: The model got stuck, and what to try. Asking again often goes cleanly. If it keeps happening with one model, try another. A model you run in another app on this computer and set up in Settings ▸ AI is held to the same limits.

Which features need which

Only a writing model (Ollama required): Ask in every scope, ✦ Summarize, ✦ Suggest tags, Synthesis, Reflect in the Journal, ✦ Explain, ✦ Draft with AI, ✦ Group with AI, ✦ Break it down, ✦ Outline This Page, ✦ Draft from This Outline, territory names, and ✦ Why now.

Only a meaning model (works with nothing else installed): searching by meaning, Related by meaning, the suggestions that appear as you write, Rediscover, the graph's meaning edges, territory shapes, ghost threads on a board, and ✦ Arrange by meaning.

Both: mindmap grounding, the Journal's ✦ Beyond your notes and ✦ Where your notes disagree cards, background thinking, and questions about a long PDF or book.

Neither: ordinary search, links, tags, folders, the whole editor — everything MojoPad was before any of this existed. With no models at all, Related still works by comparing the words two pages share. It is cruder, and it is not nothing.

Turning it off entirely

Not everybody wants any of this, and some work should not go near a model at all. Settings ▶ AI ▶ Use no AI at all switches off the whole of it: nothing is generated, nothing is indexed by meaning, no model is loaded, and every button, menu item and panel that offered either one goes away. What is left is the app described in the paragraph above — writing, links, tags, folders, search, tasks, publishing.

It reaches the browser too. If you use the Clip to MojoPad extension, the related by meaning suggestions about pages you visit are read by a separate helper that Chrome starts — not by the app — so switching models off in Settings would once have left it running. It no longer does: the switch stops it, immediately, and the plain name-matching highlights keep working without a model.

What stays is the record, not the offer. Nothing you have already made is touched, and the marks saying where something came from stay put — the ✦ Synthesis badge, the ❖ ✦ ✧ marks in the page list, the sources chip. That is deliberate. A wiki that used AI should not be able to pretend it never did, least of all to the person reading it a year later. What goes is every offer to make more: the follow-up questions inside an answer card are doors to a room that is now shut, so they go with it. Turn the switch back off and all of it returns.

Or refuse it for one wiki. Open the Info palette, and under Document check Use no AI in this wiki. That travels with the wiki rather than with this Mac, so a set of records that should never meet a model keeps refusing wherever it is opened — including on a machine where the app-wide setting says yes. Either switch being on is enough: the two never argue, and the quieter answer always wins.

Nothing you already made is touched. Pages written with AI, saved answers, synthesis pages — all ordinary pages, still there, still readable, still searchable. Only the offer to make more of them goes. Turn it back on and everything returns exactly where it was.

Setup

  1. Searching by meaning needs nothing installed. The first time you reach for it, MojoPad offers to fetch its own small model — about 35 MB, once, from Hugging Face — and after that it works here with no connection at all. Saying no is not permanent; you will be asked again the next time you reach for it.
  2. For anything that writes, you need Ollama and a model — and MojoPad will do the whole thing for you, including choosing a model that fits this Mac. See Getting Started with Ollama; it takes about two minutes and no command line. (If you would rather do it by hand, install Ollama from ollama.com and run ollama pull qwen3:4b-instruct. MojoPad prefers the newest capable one you have, however it arrived.)
  3. Optionally, if you would rather MojoPad searched with your own model instead of its own, pull an embedding model — ollama pull mxbai-embed-large or nomic-embed-text — and pick it under Search by meaning.

What “Automatic” actually picks

The Search by meaning row offers Automatic, MojoPad's own, and any embedding models you have installed. Automatic is not a synonym for MojoPad's own — it means use one of mine if I have one:

  • You have your own embedding models. Automatic uses yours. MojoPad's own is never chosen for you, so upgrading never silently rebuilds an index you were happy with. To use ours, pick it by name.
  • You have none. Automatic uses MojoPad's own — once this Mac has agreed to fetch it. Until then nothing is indexed, which is the one confusing state: it says Automatic and nothing happens. Run a search by meaning and you will be asked, or choose MojoPad's own in Settings to be asked right away.

If you keep Ollama on Automatic, pin your choice instead. On Automatic, quitting Ollama changes which model is in hand. The index made with Ollama's model is kept, and read again the moment Ollama is back, so nothing is rebuilt then — but while Ollama is off, a wiki you open is read again from the start with MojoPad's own model, and that is not kept. A laptop that sleeps with Ollama off can churn through that repeatedly. Choosing a model by name is honored without consulting Ollama at all, so pinning ends it.

Changing the meaning model

Nothing you wrote is at risk. What gets rebuilt is the index: two models do not produce comparable numbers, and measuring one against the other does not fail cleanly — it returns a confident score that means nothing. So MojoPad records which model built each index and refuses to mix them.

The index you had is kept. Each wiki keeps an index for up to two models, side by side, so changing back to the model you used before reads only the pages you have edited since, not every page again. That is also what makes a wiki shared between two Macs with different models work: each Mac keeps its own index in the wiki, and neither one reads the whole wiki again or undoes the other's. When a third model indexes a wiki, the index saved least recently is let go (it can always be made again).

Three things follow a change. The rebuild is per wiki, and happens as you open each one, so a wiki you do not open keeps its old index. Every long PDF or book you have asked questions of is re-read on its next question, which on a large book is minutes rather than moments. And the model itself is fetched once for the whole Mac — it is the index that is per wiki, not the download.

You can watch it happen. The count after + New in the row under the Ask box — and the same numbers under Search by meaning here in Settings — shows how many of the pages that can be indexed are indexed under the model you have now. The moment you change it, every page is counted as catching up, and the count climbs back as the new model reads them. See “How much of your wiki a question can find” under Ask your wiki.

Is MojoPad's own model worse than mine?

Probably, if yours is a large one, and that is the honest answer. Ours describes each passage with 384 numbers where a larger model uses a thousand or more, which leaves it less room to tell your pages apart. It exists so that somebody who has installed nothing is not left with a wiki that cannot find anything by meaning — which is what they had before — not because it beats what you already run.

It reads English. If you write in another language and have models of your own, use one that is trained for it: choose it under Search by meaning and the index will rebuild around it.

Two limits worth knowing

MojoPad's own model runs inside MojoPad, which has one consequence: anything reading your wiki from outside cannot use it. The browser extension's related by meaning suggestions and an AI agent's “which wiki knows about this?” both need an Ollama embedding model, because they run as their own small programs with no MojoPad window to borrow. A wiki indexed only with MojoPad's own model is out of their reach: the extension offers no suggestions for it, and an agent is told it could not be searched, and why. When the wiki also keeps an index made with an Ollama model — from another Mac that shares it, say — they use that one. When it keeps two made with Ollama models, they use the newer one, or the other if Ollama on this Mac does not have the newer one's model; and when Ollama here has neither model, an agent is told that too.

And in a password-protected document every model's index is itself encrypted, encrypted pages stay out of all of them entirely, and an agent asking from outside cannot read them at all.

Bigger models are smarter, but they need a beefier Mac — more memory and more patience. A model runs from your Mac's memory, so as a rule of thumb its download size wants to fit comfortably in RAM with room to spare. A rough guide:

  • 8 GB — small models only (≈2–4 GB): qwen3:4b-instruct, llama3.2.
  • 16 GB — up to ~8B (≈5–9 GB): qwen3:8b, gpt-oss.
  • 32 GB — mid-size (≈14–20 GB): qwen3:14b, qwen3:32b.
  • 64 GB and up — the large ones (≈40 GB+): llama3.3:70b, big qwen3/gpt-oss builds.

You do not have to work this out yourself. Settings ▸ AI reads the memory in this Mac and says, in one line, roughly how large a model it can run — and, if that number is small, says plainly what a model that size will and will not do well. It is there whether or not you have installed anything.

When in doubt, start smaller — a snappy answer beats a brilliant one that takes a minute and makes the fans roar. MojoPad picks a model automatically; override it in Settings ▸ AI, or right in the AI drawer's header — a small dropdown by the close button lets you pick which model answers, or leave it on ✦ Auto.

Bring your own model

You write in Dutch, on an 8 GB MacBook Air. The largest model that fits answers passably in English and mangles everything else — it rephrases your sentences into something you would not sign your name to, and asked a question in your own language it replies in an approximate version of it. You have tried three models. They are all the same. That is not a setting you have got wrong: a model needs roughly three quarters of a gigabyte of memory for every billion parameters it has, so your Mac's ceiling is the ceiling, and small models are weakest at exactly the two things — rephrasing and languages other than English — you needed most.

Or: the material is not sensitive and you already pay for a good model. Your wiki is lecture notes and reading summaries, you have a key for a large model, and you would rather ask it than run anything locally at all.

Both are the same answer. Settings ▸ AI ▸ Bring your own model lets the questions you ask be answered by a model somewhere else, using your own key.

What becomes true when you turn it on

This is the part to read properly, once. Checking that box changes the promise this chapter opens with, and it changes it in a specific and limited way.

  • Your writing leaves this Mac. When you ask a question, the pages that question is about go to the company whose key you entered. People there can read that text. Whether it is logged, kept, or used to train anything is their decision and governed by whatever you agreed to when you got the key. MojoPad has no say in it and cannot promise anything about it.
  • Only what you ask. Everything MojoPad does on its own stays here regardless — indexing, searching by meaning, Related, Rediscover, resurfacing, the background thinking, the suggestions that appear as you write. Those are the great majority of what the AI does, they run while you are away, and none of them is ever sent anywhere. Nothing goes out while nobody is looking, and you are never billed for work you did not ask for.
  • Search by meaning never goes. The meaning index is built on this Mac, always, with a local model. So your wiki is never swept through wholesale — what goes out is the handful of pages behind one question you typed.
  • Locked pages never go. A page you have put a password on does not enter an AI prompt at all, here or locally, so it cannot be sent.
  • They bill you. Every question costs whatever your provider charges. MojoPad does not meter it, cap it, or warn you about it.
  • It is decided per wiki, not once for everything. Turning this on does not open every wiki you keep. The first time you ask a question in a particular one, MojoPad asks whether that wiki may send — and remembers that answer — yes or no — for it alone. So a personal journal can stay on this Mac permanently while a research wiki answers from your model, with one key and one setting between them. A wiki you never permit cannot send its pages, whatever the switch says.
  • It is reversible in one click. Uncheck the box and the next answer comes from this Mac. Clear the key and it is erased. Ask every wiki again… forgets the per-wiki permissions, so each is asked afresh.

What "opening your wiki to a model" actually means

Worth a minute, because the thing people underestimate is not the idea — it is the amount.

A question is not one page. When you ask your wiki something, MojoPad finds the pages most related to the question and sends those, up to nine of them, so the answer can be grounded in what you actually wrote. A question that asks which pages you have sends more, and by design: it sends a line from each matching page, as many as will fit, because that is the only honest way to answer it — see Asking which pages you have. You are not choosing which ones. The retrieval is. So a question you think of as being about one subject can carry pages you had not thought about in years, because they turned out to be related. Over a few weeks of asking, a fair proportion of a working wiki can pass through a provider one handful at a time.

You cannot take it back. Deleting a page afterwards does not unsend it. Whatever your provider logged, it still has. Turning the setting off stops the next question; it does nothing about the last one.

Free tiers are usually a different bargain from paid ones. Several providers treat what you send on a free key as material they may use to improve their models, while the same company's paid API does not. That is a real and common difference, it is theirs to change, and it is written in their terms rather than ours. Read that page once before you paste the key, not after.

The wiki is the boundary, and you choose it wiki by wiki. Retrieval only ever reads the document you have open, so whatever a question can reach is bounded by the wiki you asked it in — and MojoPad asks, once per wiki, before any of them sends anything. That is the practical answer to most of the paragraph above: keep the material you are careful about in its own wiki, never permit that one, and the question never arises again.

Some material is not yours to send. Notes about a client, a patient, a student; anything covered by an employer's policy, a confidentiality agreement, research ethics approval, or a data-protection obligation. Sending it to a third party may breach something you agreed to, and MojoPad has no way of knowing when that is the case — it cannot tell a shopping list from a case file. If any of this describes what is in your wiki, the honest answer is either to leave the setting off, or to put that material in password-protected pages, which are never sent with the setting on or off.

What MojoPad can and cannot do for you here. We can promise what our own code does: only what you ask leaves, locked pages never leave, the meaning index stays here, and turning it off works immediately. We can promise nothing at all about the company on the other end — not what they keep, not what they train on, not whether they are up, not what they charge you, and not whether their answer is any good. There is no relationship between MojoPad and your provider; the arrangement is between you and them, and their terms are the ones that govern it.

Setting it up

  1. Get a key from a provider. The table below says where, for the common ones.
  2. Settings ▸ AI, scroll to Bring your own model, and check the box. You will be asked to confirm — that is the disclosure above, in short.
  3. Press + Add a model.
  4. Choose your provider from the list. That fills in the address for you and tells you where that provider issues keys. Choose Something else to type an address yourself.
  5. Type the model name exactly as your provider spells it, and paste your key.
  6. Give it a name of your own — whatever you would call it when choosing between them. This is the name you will see in the Ask panel, so "the good one" beats the provider's spelling.
  7. Press Test it. It sends one throwaway question and reports back. If something is wrong it says which thing — a refused key, an address that does not exist, a provider out of quota — rather than a number to look up.

More than one

Set up as many as you want. A fast cheap one for rephrasing and a slow expensive one for the hard questions is the usual pair; a third for a provider you are trying out is common enough. Each keeps its own address, its own model name, its own key and the name you gave it, and they do not interfere with each other.

One of them is the default — marked in the list, and used for every question you do not say otherwise about. Change which one from the same list.

And any single question can go elsewhere. The chooser in the Ask panel lists everything that can answer: your own agent, then the models installed on this Mac, then the ones you set up in Settings, each under a heading of its own — because those are three different things and the difference is what you are choosing between. Pick one and it answers that question; the wiki remembers your last choice, so a wiki where you always want the expensive one stays that way without being told twice.

What the box says is what answers. That is the whole rule, and it has no exceptions worth remembering. A persona may be paired with a model, and two of the built-in ones ask for your fastest or your deepest — but those are what ✦ Auto resolves to, never something that overrules a model you picked yourself. Choose one in the panel and it answers, whatever persona is in force. Leave the panel on Auto and the persona's own pairing decides, then its preference for speed or depth, then MojoPad picks a sensible one.

A model you cannot use is not offered. An entry you started setting up and never gave an address to is left out of the list, and so are all of them while the switch above them is off — a name you can pick but nothing can answer with is worse than a shorter list.

Where a question is going is on screen while you type it. When an answer would leave this Mac, a mark beside the persona says so and names the model that will answer — not "a model", the name you gave it. When it would not, there is nothing there: the quiet case needs no badge, and the state worth being told about is the one you can forget you are in.

Keys are never in your settings file. They are encrypted by your Mac and kept in a file of their own, so copying settings to another machine or sending a diagnostics report carries none of them. A key you have already typed is never shown back to you — there is nothing to read, only Forget it, which removes it.

Removing a model removes its key with it. Nothing is left behind for a model that is no longer in the list.

The providers, one line each

These are the addresses as each provider publishes them. You do not need to type them — the list in Settings fills them in — but here they are for reference, and for anyone setting up something not on the list.

ProviderAddressWhere the key comes from
OpenAIhttps://api.openai.com/v1 platform.openai.com ▸ API keys
Google Geminihttps://generativelanguage.googleapis.com/v1beta/openai/ aistudio.google.com ▸ Get API key — has a free tier
Claudehttps://api.anthropic.com/v1/ console.anthropic.com ▸ API keys
OpenRouterhttps://openrouter.ai/api/v1 openrouter.ai ▸ Keys — one key, most models
Groqhttps://api.groq.com/openai/v1 console.groq.com ▸ API keys
A Mac of your own
running Ollama
http://name-of-that-mac.local:11434/v1 none needed — see the note below
A Mac of your own
running LM Studio
http://name-of-that-mac.local:1234/v1 none needed — see the note below

The model name is the part that changes. Addresses stay put for years; model names change every few months, so rather than print a list that will be wrong by winter: open your provider's model page, and use the name exactly as written there — gemini-3.6-flash and claude-opus-5 are the shape of it. If the name is wrong, Test it says the model was not found, which is the quickest way to check you have it right.

Pointing at your own second machine? Use that computer's name on your network rather than localhost, make sure its server is set to accept connections from other machines, and put any word at all in the Key box — a local server does not check it, but MojoPad will not send anything until all three boxes have something in them. That is deliberate: half a setup should fail here, not half way through your question.

The reason there is a list rather than a menu of companies is that MojoPad speaks one request shape, the one nearly every provider answers. An address and a key is all a provider is. That is also why something not on the list very likely works anyway — try it.

Knowing which machine answered

While this is on, the AI drawer carries a chip in the same row as the scope and the persona, naming the model your questions are going to. It is colored, it is only ever there when answers are leaving this Mac, and clicking it opens Settings. This is deliberate — being unsure which state you are in is the one thing that would make the setting a bad idea.

Help ▸ Save Diagnostic Report… has a matching section, Where answers come from, which reports the same thing in words, names the host and model, and confirms what is still running locally. It never includes your key or anything you wrote.

Where your key is kept

Encrypted by macOS, in a file of its own, deliberately not in the settings file. Settings are plain text that people copy between machines, attach to support emails, and sweep up in backups; a key is a credential and does not belong in a file that travels like that. MojoPad never sends the key back to the window you typed it into either — once saved, the field shows only that a key is held.

If you would rather not

Then leave it alone, which is where it already is, and nothing about MojoPad changes. If your Mac is on the small side and you want the best local result: prefer a smaller, newer model over a larger, older one, keep questions to one page or a few rather than the whole wiki, and remember that search by meaning and everything built on it work perfectly well regardless — those never needed the writing model at all.

Ask your wiki — the AI drawer

Click ✦ AI in the toolbar — or press ⇧⌘A — and MojoPad's assistant slides out in its own drawer on the right (drag its left edge to resize it — the width is remembered; hover that edge for a chevron, or double-click the edge itself, to put the drawer away with its width kept, and ✦ AI brings it back). It opens with a greeting and a few starter prompts; ask a question in plain language and the answer streams back as formatted text, with the pages it drew from listed as source chips — click one to open that page right beside the chat. Follow-up questions keep their context, so “tell me more about the second one” just works, and the + New button by the input starts a fresh conversation. You can also select text in any page, right-click, and choose Ask Your Wiki about “…” to send it straight to the drawer.

The AI drawer: a scope picker in the input, cited answers, page tools, and Save as Page.

The scope picker in the input bar decides where the answer may look. It shows the one in force — click it and the four choices open in a short menu, with a check beside the one you're on. Most people set this once and forget it, which is why it takes a single word of the bar rather than four:

  • My wiki grounds every answer in your own pages, with sources — a real multi-turn conversation.
  • This page scopes it to the page you have open — including PDF and ePub attachments, whose text is read on the fly. It reads the whole document: a 300-page book is indexed into sections on first use (you'll see the progress), and each question retrieves the most relevant passages. Ask about chapter 14 and it actually reads chapter 14. (Long-document questions need an embedding model — see Setup.) In this scope the drawer also offers one-tap ✦ Summarize this page and ✦ Suggest tags.
  • Journal answers only from your daily notes. Name a time in the question — “how was last week?”, “what was on my mind in June?”, “what changed since April?” — and exactly those days are read, all of them, not a search's best guesses. No time named? Your recent couple of months of written days are read by default. A short stretch is read whole; a long one — “how did this year go?” — is read in three-week stretches first, each condensed with your question in mind, so the final answer really has the whole year behind it (the status line shows it working through the stretches). Answers cite the days they drew from as chips — click one to open that day. Try: “what patterns keep showing up?”, “what did I say I'd do and never mention again?”
  • Anything steps outside your wiki — for a definition, a translation, or a starting point that isn't in your notes yet. It searches the web, so a question about something current gets a current answer, with the addresses it drew on listed under it — click one to open it. It uses whichever search you have set up in Settings, and free sources if you have set up none. Where there is nothing to check something against it says so rather than guessing. Your own agent is handed the same web results as any other model; it does not search the web itself here.

All four read your pages here on your Mac, and MojoPad remembers which scope you used last. (If you have turned on Bring your own model and permitted this wiki, above, the question and the pages it draws on are what gets sent — the retrieval that chooses those pages still happens here.) And the ✦ Persona chip beside the scope picker changes how answers are written — see AI Personas.

How much of your wiki a question can find

Just added two hundred papers and wondering when Ask can find them? Look in the row under the question box, just after + New. A small ring and a count of the pages that can be indexed for search by meaning. When every one of them is in, it says All indexed and the ring is full. While it catches up it says how many are in — 29 of 31 indexed — and while pages are being read, Indexing… 29 of 31, with the ring turning (it holds still if your Mac is set to reduce motion). A paper you have just added counts as soon as it arrives: it is not indexed until its words have been read out of it and then read for meaning, so after importing two hundred papers the count says Indexing… 31 of 231 while they are read, and climbs as each one goes in. A question can find a page by what it is about only once that page is indexed, so All indexed is the thing to wait for after a big import. A locked page or a scanned letter can never be indexed, so it is not counted, and it never keeps the count from finishing. If nothing in the wiki can be indexed — every page locked, say — the count says No page can be indexed.

What is in, and what can't be. Rest the pointer on the count, or press Tab until it is highlighted, and a card says what is true now — Every page that can be indexed is, or 29 of 31 pages that can be indexed are — then what is still to come, then how many pages can't be indexed and why, one line per reason, with how many pages each one covers.

Still to come:

  • Pages waiting their turn. A page counts only once its latest words are in, so the page you just edited, renamed or added waits a few seconds and then catches up. While an answer is being written the index waits for it to finish. If the model stops answering, the card says so, and it tries again after your next edit.
  • A file not read yet. Its words are read in the background soon after it arrives, and it is indexed once they are. If nothing can be read out of it — a scan, say — it moves to what can't be indexed.

Can't be indexed:

  • Locked pages are never indexed. Their words stay sealed, so they are never read for meaning.
  • A paper with no text to read — a scanned PDF, which holds pictures of its pages rather than words, so there is nothing in it to index.
  • A file that could not be read, and pictures, recordings and other files, which have no words to read.

The card also says when a very long page is indexed from part of its text — the start of a long note, and passages from across a long paper. Those pages are indexed, and counted in.

Escape puts the card away. Press the count itself to open Settings ▸ AI, where both numbers sit under Search by meaning, for every wiki you have open: how many of the pages that can be indexed are, and how many can't be and why. Changing the model there to one this wiki was never indexed with starts every page over, and the card says they are being indexed again; the index you had is kept beside the new one — a wiki keeps an index for up to two models — so changing back reads only the pages edited since. Sharing a wiki between two Macs that use different models? Changing the model on one of them lets go of the index that Mac used before, never the one the other Mac is searching with. Each keeps its own index in the wiki: a wiki indexed with a model this Mac does not have is indexed again with yours as soon as it opens, the new index is saved beside the other Mac's once it is done, and from then on each Mac opens the wiki ready, without reading it all again or undoing the other. A page you lock leaves every index in the wiki within seconds — the other Mac's too — and is never added to a new one; if the other Mac saves its index before it has heard of the lock, the page is taken out again as soon as that save arrives, and again whenever the wiki is opened. A page locked on the other Mac while you are working here leaves this Mac's index too, as soon as it arrives; unlocked there, it can be found by meaning again. With AI switched off — in Settings, or for this wiki in the Info palette — the count says Search by meaning is off instead, and its card names the box to uncheck; when it is off for this wiki, pressing the count opens the Info palette at Use no AI in this wiki. If the model you chose runs in Ollama and Ollama is not running, the count says Search by meaning is paused, and it catches up once Ollama is started again. If Ollama was not running when the wiki opened, the index it has is left as it is and read once Ollama answers, not made again from the start. Edits you make while AI is off are indexed as soon as it is back on.

A second window on the same wiki, and a page opened in a small window, show the same count — in a small window's header it reads All indexed, or 29/31 indexed while it catches up, or just the ring when the window is narrow. The wiki's own window keeps the index, and the others show what it counted. A question asked in a second window searches the index as the wiki's own window last saved it, which can be a few minutes behind; its card says so. When the drawer is too narrow for the whole row, the count is the first thing to make room, and it comes back when there is space.

If the count looks wrong, Help ▸ Save Diagnostic Report… has a line for each open wiki with the same numbers and reasons — counts only, never a page's name or words — which is the line to send with a question about it.

Citations you can check

An answer names the pages it drew on in square brackets. Every one of those names is checked, once, against the pages the answer was actually written from — so what you see is not the assistant's word for it:

  • A name that checks out becomes a link. Click it to open the page.
  • A name that is a page of yours the answer was neither given nor found by searching is still a link, shown differently, with a note underneath. The assistant recognized the name without having read it — worth knowing before you lean on the claim.
  • A name that is a page your own agent found by searching your wiki is a link like any other. Hover it and it says the page was found when this answer searched your wiki. That search showed the agent the page's name and a few words around what it looked for, not the whole page.
  • A name that is no page at all keeps its brackets exactly as written, marked with a ?. Nothing of yours goes by that name.

Underneath, the pages split into Cited — the ones the answer leaned on, including any it found by searching — and Also read, which were in front of it and never mentioned. When nothing was cited, there is only one row, and it is called Read. The difference matters: a thin answer sitting under a long list of sources looks better supported than it is. Pages you have since moved to Recently Deleted, or locked, are not offered there.

None of this asks the AI anything. It is plain name-matching, so it works the same whatever model you use, and it cannot itself be wrong in the way it is checking for.

When your own agent searched your wiki, a line for each search follows — Searched your wiki for “kiln” — 14 pages — up to six of them, and then a count of the rest. Click one and your wiki is searched for the same words, so you can look beyond the pages the answer used. MojoPad's own search reads the words its own way, so it can list more pages, or fewer, than the count on the line. While the agent is still working, the waiting line says the same thing as it happens: Searching your wiki for “kiln”…. The lines stay with the conversation when you reopen it from 🕘.

Web results open. Under an answer in the Anything scope, each web result the answer drew on is listed with its address as its tooltip. Click one and your own copy opens if the wiki already holds that document, and the web page opens otherwise.

Questions about everything

Some questions are not about a page, they are about the whole wiki — where do my notes disagree with each other? is the clearest example. Those cannot honestly be answered from the handful of pages that best match the words in the question.

Ask one and MojoPad says so, and offers the choice: read every page — in stages, condensing as it goes, which takes minutes of your own Mac's thinking and can be stopped at any point — or answer from the closest pages, which is quick. Nothing long ever starts without you asking for it. If the reading turns up nothing, it says that too, rather than assembling an answer out of whatever it happened to see.

Questions understand time. Ask “what was I working on in July?” or “summarize my notes from last quarter” and the drawer scopes its reading to that window — both when a note was written and when its content talks about that time. Follow-ups inherit the window until you name a new one, so “and what about August?” does what you'd hope.

Asking which pages you have

Some questions want a list, not a paragraph. You clipped a year of reporting on one bill and want to know how much of it you actually kept. You are writing about someone and need every note that mentions them, not a summary of three. You imported a shelf of papers and want to know which of them are scans with nothing to read inside. Those are questions about your wiki rather than about a subject, and an answer written from a handful of close pages cannot answer them honestly — it will sound complete and be a sample.

So MojoPad searches first, and shows you what it found. Ask list my pages about the tariffs, which of my pages mention the fall in rents? or show me pages mentioning the Secretary of State and every page you are allowed to read is searched before a model writes a word. A card appears above the answer with the pages it found and a row for each, a button that opens that page. A paper goes by its title, with its file name at the end of the row, dimmer; a page you named yourself is its name. The first twelve are shown, and Show 10 more under them brings the rest.

The card is MojoPad's own list, not the model's. It comes from the search and the checks described below, so it stands whatever the answer then says, and it is the list to trust if the two ever disagree. The answer below it is still written by a model and can still be wrong about what a page contains.

Pages about what you asked, not only pages with its words

Your words and your subject are not the same thing. Asked for pages mentioning the Secretary of State, a search for the words finds the newsletter that thanks a book club's secretary for a trip out of state, and misses the clipping that says "the State Department announced on Tuesday". So when this computer can search your pages by meaning, the card is built from what each page is about, and the words only help.

What the card says, top to bottom:

  • How many pages mention it, or are about it, in your own words in quotation marks: 22 pages mention “the Secretary of State”, with ✓ Each checked on this computer beside it. Each of those pages was read by the AI model on this computer and kept because it mentions your subject, or is about it. For a person or an office, a page about something they did counts, whether they did it themselves or through their government. The check can still miss some of those pages.
  • Checking for: one sentence of what counts, starting from your own subject — the Secretary of State — a single mention of the office, whoever holds it, or the State Department acting in its name. For an office it can name the government acting in its name too, and it can also name more than you asked for. Change lets you say it your way, and the pages are checked again against your sentence; your sentence is kept for that question, even after you change models.
  • One list of those pages, the closest in meaning first, whether or not they use your words. Pointing at a row shows Not this: press it and the page is left out of this question's list from now on, with Undo beside it.
  • Also carrying the words: 4 — pages that use your words without being about what you asked (a book club's secretary, a state's own secretary of state). Open the line to see each one, with the sentences your words sit in, and Belongs to put one in the list. Find these words in Search opens the search box on your words, where every page that has them is listed — the words in each page, not only in its title.
  • Using the words in another sense, when the check finds any — pages where it read your words as meaning something else altogether.
  • 2 locked pages were not searched. A page with a password is counted and never named.

Nothing is thrown away. Every page that carries your words is in the list or under one of the two lines, so you can always see what the search for your words found and why it was set aside.

While it checks, the answer waits. The card fills in as the pages are read — 10 pages so far mention “the Secretary of State” — and the line under it says how far it has gotten and how long is left: Checking by meaning… 14 of 48 · less than a minute left. Stop ends the checks and keeps the pages found so far. You can open a page from the list to look at it while the card checks: the card stays in the drawer, still filling in, with Stop where it was. One question checks a set number of pages at most; when it gets there the card says so, with Check more to continue.

The answer is written from the list. It comes once the checks are in, from the pages in the list and no others, so it never discusses a page the card has set aside or a page it hasn't checked, however the checks ended: finished, at their limit, or with Stop. Press Change while the card checks and the answer waits for the pages to be checked again against your sentence. When the list is empty, MojoPad writes the answer itself rather than asking a model: that none of the pages read is about what you asked, how far the checks got before they stopped, or that no page could be checked.

A page you lock while it checks leaves the card at once, with any sentence the card quoted from it, and is never read for the answer or counted in it. A page you put a password on with Encrypt Page leaves every card on the screen at once, the ones you reopened and the ones that have finished checking too. If the wiki locks itself while you are away, the checks stop and no answer is written behind the lock screen; ask again once you have unlocked it.

With no AI model on this computer to read the pages, the card lists the 20 pages closest in meaning, marked Not checked — some may not be about what you asked — with Set up local AI… to add one. While MojoPad is still reading your pages so it can search them by meaning, the card says so and how far it has gotten — 312 of 846 so far — and folds the pages that carry your words under Pages carrying the words until you ask again; the answer is written from your words alone. Search by meaning starts before every page is read, so when some aren't indexed yet the card says how many once its checks end — 380 pages aren’t indexed yet and weren’t searched by meaning — because the count at the top is of the pages it could search.

A conversation keeps its card. Reopen it from 🕘 and the card is as it was, with your Belongs and Not this as they are now; Undo on one puts the page back where the check itself put it. The card keeps which pages it listed, never their words, and a page you have locked since is not named. A very long list keeps the count of every page carrying your words, beyond the ones it can name, so the folds count what they did and say how many they can't name; Find these words in Search lists every one.

Your first list, step by step

A minute, on a wiki you already have.

  1. Open the drawer with ⇧⌘A, or ✦ AI in the toolbar.
  2. Check the scope beside the box reads My wiki. This is a question about your wiki, and the other scopes answer about one page or about the world.
  3. Type list my pages about and then a subject you know you have written about more than once. Press Return.
  4. Read the card before the answer. It tells you how many pages are about your subject, and what it set aside under the lines at its foot — and every name in it opens.
  5. Ask a follow-up about the same list: which of those are PDFs? The question carries over, so you do not name the subject again.

When you ask for the words themselves

Some questions are about the words, not the subject. Put the words in quotation marks, or ask for pages with the word, called, titled or tagged something, or for a DOI, and the card is the search for those words: how many pages carry them, and a row for each. The same card is shown in a wiki with Use no AI in this wiki checked. What follows is about that card.

A page kept more than once is counted once. Wikis collect the same article twice — clipped again, imported again, brought back from a backup. The card says how many different pages matched and how many of them are copies, and names each page once.

Some pages are counted and named, and kept out of the answer. A page type's definition, and pages MojoPad wrote out of your own pages such as a research run or an answer you saved, carry your words as surely as your notes do. They stay in the count and the card still names them, so you can open any of them; what they are kept out of is the answer, because an answer about a subject should not fill up with MojoPad's own furniture. Ask about them and they come back — which of my clippings mention the tariffs.

When the words are only ever apart, the card says so. Ask about a subject written as two words or more and MojoPad looks for pages carrying all of them. A page can carry both for reasons that have nothing to do with your subject — a paper about one thing can say “sleep” of one group in a trial and “loss” of something else entirely. When not one of the pages that matched puts the words together, the card tells you before you read a single name.

Say how you want the answer laid out and it is not searched for. with a 1-sentence summary of each, as a table, giving a short description — these are about the answer, so they are left out of what MojoPad looks for. Your question reaches the model whole, as you wrote it. Under the answer, MojoPad says which words it did search for, and says so plainly when no page held all of them and it widened the search to pages holding any one.

A new question, + New or another conversation ends the checks of the card before it, and what they found is filed with the conversation it belongs to; the card says how far it got. See Finding pages by what they are about in Searching for the same checks in the search box.

A very long list hands the rest over. The card lists as many pages as it can keep and says when there are more. See all N in search opens the Search box on the same words, where every matching page is listed — so a number larger than the list is never a dead end.

Ask for a period and the list keeps to it. list my pages on statins from 2024, which of my clippings mention the tariffs since April — the card says which period it searched, and the count is of that period and nothing else. A page belongs to a period three ways: you wrote it then, you made it then, or it is a note about that time however long ago you wrote it — so a journal entry written last week about a meeting in March belongs to March. When nothing inside the period matches, the card says how many pages it set aside for being outside it, so “no page mentions this” is never said about a wiki that holds forty of them from another year. A question with a period in it gets no See all N in search button: the Search box has no way to say “from 2024”, and a button that landed on a different number would be worse than none.

A page with a password on it is counted and never named. It is not searched and it is not a match. You are told how many such pages there were and nothing else about them.

A wiki with nothing on the subject says so exactly. That sentence is written by MojoPad rather than by a model, so it cannot invent a page to be helpful. When you asked for several words at once it says which of them your wiki does hold, and on how many pages, instead of a flat no.

Seeing a page before you open it

Triaging thirty papers you found by searching for “sleep and memory”? Rest the pointer on a row of the card and, after a moment, a preview opens to the left of the drawer — beside the list, never over the rows you are about to read. For a paper it says, top to bottom:

  • its whole title;
  • the file it came from, then its journal, year and first authors, whichever it has;
  • Where it says the words you searched for — the one sentence holding the most of them, with the words marked. This is why the page is in the list;
  • From the abstract — its first lines, when the paper's text has a heading that says Abstract. A paper without one shows none, rather than the journal's header from the top of its first page;
  • how many passages you marked in it, and the start of the first;
  • your own notes on the page, if it has any.

A page that is not a paper shows its opening words, or the sentence that matched, and when you last edited it. A locked page shows its name and a lock, and nothing of its words.

The same preview is everywhere Ask names a page: a citation in the answer, the Cited and Read chips under it, a page linked in the answer's own words, and a pinned page. On a citation it also says how the answer came by that page. Click still opens the page; right-click offers to open it beside the page you are on.

With the keyboard: press Tab to reach a row or a chip, and its preview shows; Tab on and the next one's does; Escape puts it away without doing anything else. The preview never takes the focus from you, and a screen reader reads it as the description of the row.

An answer's citations are titles too. The model writes a paper's file name, because that is how its link finds the page; what you read is the start of the paper's title, cut to its first few words so a sentence does not turn into a reference list, and a screen reader hears the whole title. Copy the answer, or drag part of it into a page, and the file names come back — so a pasted answer links to its papers as it always did. Saving the answer as a page links each source under its title.

An assistant connected to MojoPad asking for a list gets each page by its name, the handle it reads the page with, and a paper's title on the line under it.

Turn every preview off with Settings ▸ Links & Pages ▸ Show a preview bubble when hovering links and page lists; a citation then explains itself in a tooltip instead.

Asking what kind of page they are

A page you clipped is as much yours as one you typed. A list stays about your subject and names every page it found, rather than narrowing to the pages you wrote yourself. When the question is about a kind of page — which of those are PDFs, list my clippings about the tariffs, how many of these are research runs — the answer says what each one is, because that is what you asked.

Where this happens, and where it does not

This is the Ask your wiki drawer with the scope set to My wiki, and it is Chat with your wiki on the graph as well — with one difference there, which is the map's whole purpose. On the map, a question that asks how many, which pages, or which pages carry a particular word takes the list. Show me pages about grief does not: that is somebody exploring, and lighting up the pages that read like the words answers it better than a list of names, so the map keeps it. A question asked while connected tools are switched on in ⚙ Tools is answered the way it was before, and so are the other scopes — This page, Journal, Anything — which are about something other than your wiki's own pages.

An assistant asking gets the same answer. “List my pages about X” asked by an assistant connected to MojoPad, or by a script through the local API, takes the same road: every page searched, the same count, the same qualifications, and the names. Because the count is MojoPad's own, a list question is answered even with no model set up.

If a list isn't what you expected

  • You got a paragraph instead of a list. The question has to say it is about pages: my pages, my notes, which pages, how many pages. What do my notes say about… asks for prose, and gets it.
  • The list is shorter than the number above it. That is the copies line doing its work: the number counts every match, the list names each page once. The card says how many are copies.
  • A page you expected is missing. Open it and check it really carries the words you searched for. A page that is about your subject without ever naming it is found by meaning rather than by words, and is offered separately rather than counted.
  • The answer named fewer pages than the card. The card is the search and is right. A model on this Mac with little room to write will name what it can; a larger model, or a narrower question, names more.
  • Nothing matched, and you are sure something should. Read the sentence: it names what it searched for. If that is not what you meant — a trailing phrase caught up in it, for instance — ask again with the subject on its own.

And if you want to send it to us. Help ▸ Save Diagnostic Report… writes down what the last question did: how many pages matched, how many of those were different pages, how many were counted without being listed, whether the wider search is what answered, and how many pages with a password on them were left out. It never includes your question, a page's name or a word you searched for, and it says so at the foot of that part.

It knows what day it is

Every answer is told today's date. Without it a model cannot weigh how recent anything is — whether a paper is new, whether a headline is current, what "last month" means, how old a note of yours is — and asked outright it will say it has no way to know. It is the date on your own computer, so it is right.

It is told roughly what part of the day it is, and not the clock. Morning, afternoon, evening — enough to answer "is it too late to start this" without pretending to a precision it was not given. A clock would be accurate and would cost about six seconds of every question: the instructions are rebuilt each time you ask, and a value that changes every time makes the model re-read the whole prompt instead of picking up where it left off. Part of the day changes four times a day and costs nothing.

Nothing else about your machine goes with it, and a date is not a private thing: every request already carries one at the other end.

Conversations that last — Saved Chats

A good question is often the second one. You ask, the answer is nearly right, you ask again with what you have learned — and the thread that got you there is worth more than any single answer in it. MojoPad keeps conversations rather than throwing them away when the drawer closes.

Recent ones keep themselves. Every conversation is remembered as you have it, and the 🕘 button in the drawer's head brings back the last two hundred, newest first. They roll off on their own; nothing is asked of you.

A conversation you want to keep is starred. Press ☆ and it becomes yours: saved chats sort above the recents, never roll off, and can be filed. That is the whole difference — a recent chat is a convenience, a saved one is a thing you own.

What you can do with one

  • File it in a folder. The 🗂️ button puts a saved chat in one of your collection folders, so a month of questions about one project sits together.
  • Link to it from a page. Link to a Saved Chat…, from the command palette (⇧⌘P), drops a link where your caret is — so the page that came out of a conversation can point back at it.
  • Find it by its words, or by what it was about. Saved chats are searched along with your pages — and searching by meaning reaches them too, so the conversation where you argued about why a paper was wrong turns up under critique even though neither of you used the word. Keyword search finds the chat you can quote; the meaning search finds the one you can only describe.
  • See which chats a page was about. A page shows the conversations that discussed it, so opening a paper next year brings its argument with it.
  • Forget it. The 🗑️ button deletes a saved conversation. Anything you saved out of it as a page stays exactly where it is.

Reopening one is continuing it, not copying it. The persona that was answering, the tools it was allowed to ask, and the model all come back with the words — a conversation reopened without its arrangement is a transcript, not a conversation.

A protected wiki protects them too. Lock a document and its saved conversations are sealed with everything else; unlocking brings them back.

Borrowing your own agent

A research run is the other half of this, and it is a different shape. Asking in the drawer holds one window's attention and stops after a few minutes. A run goes away and works: reading the web, reading folders you have allowed, dividing the job up if it is large — for as long as it takes. You keep writing. When it finishes the answer arrives as a page of its own, named for the question you asked, with that question written at the top of it, and MojoPad tells you.

You start one from the Ask panel, where everything else about an answer is decided. The scope button — the one that says My wiki — has Research it at the bottom, under a line, because it is a different kind of thing from the four above it. The box then takes a question of any length, which matters more than it sounds: handing back a report for another pass means pasting the report in, and that never fitted in a one-line box.

What the panel already knows goes with it. The persona you chose writes the report. The tools this wiki has allowed for runs are the tools it may use — the ⚙ button beside the scope shows that list here, and is where a tool is allowed or taken back. And the pages you pin are handed over as reading, first, as the context the question was asked in.

Two things do not travel, and the panel says so rather than pretending. A run is carried out by your own agent on this Mac and by nothing else, so the model chooser is set aside while the scope is Research it — a model you have set up in Settings cannot take a run. And a wiki with a password on it hands over no pinned pages: giving a run pages means writing them where it can read them, and that is the one thing a password is for. The sheet that asks whether to start says which pages are going, or that none are and why.

It is still in the command palette as Research this… (⇧⌘P), which is the quickest route when you already know the question and want none of the rest.

Watching one while it works

A run can take an hour, and for most of it there is nothing on screen. Research runs & scripts in the command palette lists everything going and everything finished; picking any of them opens it, running or finished, and you can see what it has been doing — every step it has reported, in order, with the time each was said. A finished one keeps its steps where you went looking for them.

That list holds scripts too, running ones first. A plugin fired by an event runs with nothing on screen at all, so there was no way to tell a long one from one that never started — the list names it, says how long it has been going, and picking it opens it: what it has printed so far, and a Stop if it is still going. Nothing in that list ends a run by being clicked. A script cannot be interrupted mid-calculation: stopping refuses the next thing it asks MojoPad to do, which ends any run that is actually doing something.

The long jobs you start from the editor — writing in sources, building a reference list, checking what your sources say, filling a property across a kind — sit in the same list and say which paper or page they are on. Open one to read its line for every source and to stop it, or press Stop on the card at the bottom of the window; what a job had already finished is kept. A run that has finished has no Stop and keeps its lines where you went looking for them.

The times are the point. A run that is thinking and a run that has silently stopped look identical from outside, so the header says how long since it last said anything: if that number climbs past a few minutes, nothing is happening. And reading the steps tells you whether it has understood the question at all — if it is off down the wrong road, Stop this run is right there, and you can ask a better question rather than wait an hour for an answer to the wrong one. Stopping asks first, because what a run has found is not kept.

The list keeps working while you watch, so new steps arrive in front of you, and the header keeps counting whether or not the run is saying anything — which is the point of it.

A run that finishes while you are watching says so. The list stops offering to stop it, and asking to stop one that has already landed is refused rather than pretended: its answer is a page by then, and nothing is lost.

Every run in the list carries its time. One still going says how long it has been going; one that finished says how long it took, and stops counting — a finished report is not still spending your afternoon.

Asking for a particular shape

A run gives you what you asked for: a citation style, a table with named columns, a length. Those are part of the question rather than decoration around it, so say them in the question or put them in a persona and every run of yours arrives that way.

One thing to know before you ask: a run’s answer becomes a Markdown page. Headings, tables, links, emphasis and footnotes all arrive formatted. Raw HTML does not — it arrives as visible tags — so a request for HTML comes back as the same shape in Markdown, with a line saying that is what happened. If you want a file of HTML at the end, ask for the report normally and export the finished page.

They gather themselves. The first time an answer lands, a Research folder appears under Folders holding every run you have ever made — including the ones from before it existed. Nothing is moved into it, so a research page still lives wherever else you have put it, and throwing the folder away loses no pages. It is an ordinary smart folder: open it, rename it, edit what it looks for, or delete it. If you would rather see your runs as a table, with the question and the date as columns you can sort, that is a Database View over the same thing.

It lands as a new page rather than in the one you were on. An hour is a long time, and by then the page you started from may be half-rewritten; a thousand words appended into prose you are editing is a good way to lose both.

A run outlives the window that started it. Move to another page, open another wiki, close the window — it keeps going, and the answer is written down the moment it arrives, so it is waiting for you the next time you open that wiki. Quitting MojoPad does end it, though: the run is a program on your Mac that this one started, and leaving it going with nothing here to receive what it found would be worse than stopping it.

Folders it may read

Nothing on your disk is readable until you say so, one folder at a time. Folders research runs may read…, also in the command palette (⇧⌘P), opens a chooser; the folder you pick is the one it gets, and the permission belongs to that wiki alone. Take it back the same way.

Two folders are refused however you pick them: the wiki itself, because a password on a page protects its words and anything handed the file simply reads them; and your whole home folder, because that is what a chooser gives you when you click past it, and the difference between "my papers" and "everything I own" should not be one stray click.

It still cannot write. Reading more widely is not writing at all: no run may create or change a file, or start a program, in either mode. That is set when it starts rather than asked for politely.

It answers questions you ask, and nothing else. Everything MojoPad does on its own — indexing, search by meaning, the quiet passes that weigh your notes against each other — stays on this Mac whatever you have chosen in the chooser. Picking your own agent changes where your questions go, and nothing about the work you did not ask for.

Why the drawer is narrower than this. A question you ask your wiki carries the content of your pages with it, and pages arrive from the clipper, from mail, and from wikis other people send — so some of that text was written by somebody else. A research run carries your question and nothing else, which is exactly why it is allowed to read a disk and the drawer is not.

If you use Claude Code, it can answer here. It appears in the model chooser as Claude Code (your own agent) — MojoPad finds it if it is installed and you are signed in — and it is not a model among models: it is an agent that searches, reads and decides for itself, then hands back what it found.

It is Claude Code specifically, and MojoPad checks. If you keep more than one copy, or yours is installed somewhere unusual, choose it under Settings ▸ AI ▸ Your copy of Claude Code — the list shows every copy found on this Mac, and Choose… is there for one it missed. Naming a different agent will not work, and MojoPad says so rather than offering it: everything it allows or refuses a run — which tools may be used, which folders may be seen, that your own connected servers stay out of reach — is written in Claude Code's own command line, and another agent would take none of those instructions. Offering one anyway would hand it your question with none of the boundaries described below.

It can search your whole wiki. Ask “how many pages mention this” or “list every page about that” and it looks through all of them, not just the handful the question was matched to — and it says how many it found. A model on this Mac, and a model you set up, answer that kind of question from every page too, by a route of MojoPad's own: see Asking which pages you have. That search is the one tool it has here, and it only reads: it cannot change a page, add one, or move anything.

It is deliberately kept narrow. It may not run commands, write or edit files, read anything off your disk, or reach the internet — and it cannot be talked out of that by anything it reads on one of your pages, because the limits are set when it starts rather than asked for politely. It also has a turn budget, so a question that will never resolve stops rather than running all afternoon — and an answer that used every step before it finished keeps what it wrote and says so underneath, rather than passing for a whole one.

Wikis with a password are the exception, and it is worth knowing before you wonder why. The search runs outside MojoPad and is never given your password, so a protected wiki stays unreadable to it even while it is unlocked on your screen. It will say so rather than answering as though it had looked.

Why so narrow, when it is your agent? Because a question asked here carries the content of your pages with it — and pages arrive from the web clipper, from mail, and from wikis other people send. Some of that text was written by somebody else, and an agent reading it is an agent being spoken to by a stranger. When you run Claude Code yourself you wrote every word of the input; here you did not. That is also why searching your wiki replaced reaching the web rather than joining it: a question about your own notes has no need to fetch an address, and a run that cannot fetch one cannot be talked into fetching a particular one.

In the Ask panel and in Chat with your wiki, answers arrive as they are written, and while it works the waiting line says what it is doing — Searching your wiki for “kiln”…, for example — rather than showing a still screen. That holds in every scope, and on a question asked of the tools you connected. An agent usually says what it is about to do before it searches (I'll look through the wiki for that); whatever it wrote before a search is taken back the moment the search begins, so the answer starts with the answer, and what stays on screen is the agent's own final reply.

Everywhere else it hands over its finished answer in one piece. Explain, Edit with AI, diagrams, plugins and a question from another app have no way to take words back once they are on the page, so they receive the agent's answer whole, when it is done, rather than word by word. Expect a pause and then the whole thing.

What MojoPad has to tell you about a run is kept where you can read it. If your copy of Claude Code cannot be confined as tightly as usual, the Ask panel and Chat with your wiki keep that warning under the answer as a Not everything worked. note — under a question that then failed, too — and it goes with the answer into ⤵ Insert and ↳ Save as Page. On Explain, Edit with AI, a diagram, a canvas card or a property filled through a tool, the warning appears in a message that stays until you press OK. Updating Claude Code is usually what clears it. The quieter fact that it is searching your wiki with MojoPad's own read-only search is said once: one line under the first answer of a conversation, and elsewhere once while the window is open.

Stop ends it quietly. Pressing Stop ends your own agent the way it ends any other model: what it had written stays, with nothing added, and a run stopped before it wrote anything leaves no failure message behind. On a question asked of your tools, a Stop before any words says Stopped.

Working with answers

  • ⊕ Pages — pin your sources. Pin pages to the conversation and every answer draws on them, whatever the search would have picked. The pins show as 📌 chips above the input; ✕ unpins, and a new conversation starts unpinned. Pins even ride along in Anything scope.
  • Follow-ups appear by themselves. After each answer, up to five tappable follow-up questions are suggested beneath it — tap one to keep the thread going.
  • Peek at a citation. Hover any source chip under an answer to preview that page in place; click to open it in the editor.
  • ⤵ Insert. Drop an answer into the page you're writing, right at the caret — formatted, with any embeds rendered.
  • ✦ Catch me up. The first suggestion in My wiki scope briefs you on everything you edited in the past week — grouped by theme, cited, with loose ends called out.
  • 🕘 Past conversations. Every conversation files itself — the moment it has an answer, it lands in history and stays there, so nothing is lost if you close the drawer, start a + New one, or quit and come back. The 🕘 button in the drawer's header brings back any of the last two hundred: each is listed by its opening question, with when it was, how many questions it holds, who answered (the persona), and the trail of questions you asked — and the filter matches any question in a chat, not just its title, so a follow-up you remember finds the whole session. A reopened conversation keeps its Not everything worked. notes and its Searched your wiki for lines. ↳ next to it saves the whole conversation as a page.

A good answer is worth keeping: press ↳ Save as Page beneath it and the answer becomes a real page — named after your question, the answer rendered, with a footer that records when you asked, where the answer was written, and where it came from. The footer says whether that answer was written on this Mac (local AI) or somewhere else (the model you set up, which is also what an answer by your own agent is called), as it was when the answer ended, not whatever happened to run last. And it links each source: first the ones the answer cited, including any your own agent found by searching, then the ones it read, with a web result linked by its address wherever it falls. Those page links are ordinary wiki links, so the saved answer appears in the graph and in each source's Backlinks, exactly like a page you wrote yourself.

So the footer reads one of a few ways: answered from this wiki; answered from web search results; answered from this wiki and web search results; or, for an answer by your own agent that searched your wiki but linked no source, answered after searching this wiki, with a reminder to double-check anything important. Only an answer that drew on none of these is stamped as the model's own knowledge, with the same reminder — so future-you knows which pages came from your notes and which came from a machine. An answer that stopped short carries its Not everything worked. note into the page, and so does one you drop in with ⤵ Insert. Saving a whole conversation keeps every answer's note and links all of their sources; its footer says the model you set up if any of its answers was written somewhere else.

When an answer stops short

You asked a big question of a small model, and the answer ends in the middle of a sentence. Or the model on this Mac quit halfway through. Or your connection dropped while a model you set up was answering, or your own agent ran out of steps before it had finished. An answer that stopped short looks almost exactly like one that finished — which is why MojoPad says so, rather than leaving you to notice three paragraphs later that the conclusion never came.

What you see. The words that arrived stay on screen, and under them a Not everything worked. note says what happened and what usually helps:

What the note says happenedWhat usually helps
The answer was cut off — the model ran out of room to write.Ask a narrower question, or ask for one part at a time.
The answer stopped arriving partway through — a model on this Mac quit, or a connection dropped.Ask again. It usually works the second time.
The pages sent were more than the model could read at once, so it could not answer.Ask about fewer pages — unpin some, or choose This page — or ask a narrower question.
Your own agent used every step it is allowed before it finished.A narrower question.
The answer took too long, so it was stopped.See the next paragraph.

When nothing had been written yet, what the note says is the whole answer. The note is part of the answer from then on: ⤵ Insert and ↳ Save as Page write it in underneath, so a half answer in your wiki is never mistaken for a whole one a month later, and it stays with the conversation in 🕘. It works the same in Chat with your wiki in the graph, and whichever machine answered: a model on this Mac, a model you set up, or your own agent. Stopping an answer yourself adds no note — you already know why it stopped.

How long MojoPad waits. A model on this Mac has at least two minutes to begin, and anything it sends — including the thinking some models do before they write — starts the wait again, until its first word arrives. So a model that thinks for a long while is left to think. A question that hands over a great many of your pages is given longer than two minutes before it is given up on, in proportion to how much there is to read and how quickly that model has been reading in this session, because a model that is working through a long list has not stopped — it has not started yet. One that sends nothing at all is stopped, with a note saying it may be too large for this Mac or still loading; Getting Started with Ollama says what to do about it. A model you set up gets two minutes. Your own agent is a separate program that starts up and often thinks before it writes, so it is given five.

Nothing half-finished is written into your wiki as if it were whole

Some features take what a model writes and put it somewhere: into a property, over your selection, into an index page. Those refuse a reply that did not finish, and say why, rather than keeping the part that arrived:

  • A property filled by AI is left exactly as it was, with the sentence beside it.
  • Edit with AI shows the sentence instead of a rewrite, so there is nothing to apply.
  • Write them in leaves that source out and says why in its run.
  • Rebuilding an index page leaves the page as it was, and tells you it couldn't rebuild it.
  • ✦ Suggest tags shows the sentence rather than half a tag, and ✦ Explain says it couldn't explain that, and why.
  • Check What Your Sources Say… marks that source not checked in its run and leaves it out of the report, so the report holds only checks that actually ran.
  • ✦ Draft the instructions with AI…, for a persona, leaves the instructions as they were and says why; a wiki-grounded version or starter suggestions that stop short are left out.

Work MojoPad does on its own, in the background, keeps nothing and says nothing: a page's hover summary in the graph falls back to the page's name and is asked for again next time, a territory keeps the name drawn from its words, and an answer gets no follow-up suggestions.

Long reads keep what they finished. They are made of many parts, and one part stopping short is no reason to throw the others away. In a long Journal question, a stretch that stopped short counts as not read, and the answer says what it doesn't cover. Read every page leaves that group out. Summarizing a long document uses whatever lines each part finished, carries on, and ends with a note saying how many parts stopped short. A book on the canvas carries on the same way, but the card it deals does not yet say how many parts stopped short. Either way, a part that fails outright, or finishes nothing at all, still ends the job and says why. A synthesis that stops partway is still saved as its page, with the note in it.

How much a model on this Mac is asked to read

Every question sent to a model on this Mac says how much room it needs — what it carries, plus room to write — and uses the size the model is already loaded at whenever that is enough. You notice it mostly as something that no longer happens: the follow-up suggestions arrive right after the answer, instead of after a pause of several seconds while the model loads again. Questions answered with the tools you connected share the loaded model the same way.

It also means a question put to the tools you connected can be too large, and be told so: MojoPad works out whether it fits before sending it, and turns down one beyond the most it sends at once — even on a Mac with a great deal of memory — rather than sending it anyway (see AI Agents). Any other question too large for that is still sent, at the largest size MojoPad uses. If the model turns it down, the note says the pages sent were more than it could read at once, and if it may not have fit, the diagnostic report says so (see below). Writing in Korean, or in Cyrillic, Greek, Arabic, Hebrew, Devanagari or Thai script, is measured as it really is, so the room chosen for it is enough.

What the diagnostic report shows

If answers keep getting cut off, or suggestions are slow to appear, Help ▸ Save Diagnostic Report… shows it. In its Local AI section, under the heading QUESTIONS ASKED SINCE MOJOPAD OPENED, you will find:

  • How many questions were asked, and how each one ended — finished, cut off, ended early, did not fit, stopped by you, timed out, used every step, or failed — and which machine answered them. A run of answers cut off usually means your questions want more writing than the model has room for; did not fit means too many pages were going with each question.
  • How often a model on this Mac had to be loaded again between one request and the next, and why: a question needed a different amount of room than the model was loaded with, it had sat unused, or something else. A separate count says how often the follow-up suggestions did it. Both should stay low.
  • The work MojoPad did on its own — summaries, names and the like — and how that ended.
  • The latest question answered on this Mac, in detail: how it was answered, how many pages it was given out of how many, how much it read and wrote, how long until its first words, and whether it may not have fit. Then one line each for the latest answered by your own agent and by your provider.
  • Up to fifty recent questions, newest first, one line each.

It never includes a question, a page name, a search word, or what a model thought — only counts, times, how things ended, and which model on this Mac answered — and the last line of that part says so. The report's copy of the recent log is kept the same way: a line about a tool you connected keeps which tool and how long it took, but not what it was asked or what a failing tool said back. And an answer that did not simply finish adds one line of its own to the log — the same counts, never the words.

Summarize and tag a page

In the drawer's This page scope, ✦ Summarize this page condenses the open page to bullet points — and it works on PDF and ePub attachments too. Long documents are summarized in full: the book is read part by part (progress checks off in the chat), then the part summaries are distilled into one digest of the whole work. A full-length book takes some minutes of local crunching — start it, make coffee, come back to an executive summary. If one part stops short along the way, the lines it did finish are used and the reading carries on, and the digest ends with a note saying how many parts stopped short — so an hour of reading is not lost to one bad minute, and you know the digest has a gap. ✦ Suggest tags proposes tags you can add to the page with a click.

Semantic search and Related

This one needs nothing installed. Finding a page by what it is about, rather than by the words that happen to be in it, uses a small model MojoPad brings with it. The first time you ask for it, it says so and fetches the model once — about 35 MB, roughly a podcast episode — and after that it works here with no connection at all, and nothing you write is ever sent anywhere. Ask for pottery firing and the note that says fired the kiln overnight at cone six comes back, though it shares not one word with what you typed.

Which model is being used, and how to change it

The setting is Settings ▸ AI ▸ Search by meaning, and it offers three kinds of thing:

  • Automatic — the default. If you have your own embedding models installed, one of those is used. MojoPad's own is used only when you have none. The word embedding is doing real work there: a Mac with a shelf full of chat models has none of these, and Automatic quietly resolves to MojoPad's own. So automatic means yours when yours can do this job, and ours when they cannot.
  • MojoPad's own — runs on this Mac — always offered, whether or not you have anything else. Choose this to use the small model MojoPad brings, even when your own models are available.
  • Models you have installed — pick a specific one by name. A larger one may read your writing more finely.

Changing this rebuilds each wiki's meaning index from scratch, quietly, in the background. Two models don't measure alike, so nothing carries over — see below. The index made with the model you had is kept beside the new one, so changing back reads only the pages you have edited since, not every page again.

Either way MojoPad indexes your pages (the index lives inside the document and updates as you edit). You get:

  • the pages about your search that do not use its words, in Searching (see Finding pages by what they are about), and
  • the Related palette — pages whose content resembles the current one, with similarity bars. Old notes resurface exactly when they're relevant again.

More AI — beyond the drawer

Several of MojoPad's most useful AI features live outside the drawer:

  • Edit with AI. Select text, say what you want, and a model proposes a rewrite you review and apply. See Edit with AI.
  • Dictation. Speak into a page or into the chat, fully on-device. See Dictation.
  • Fill in properties. The model reads a page and suggests values for your typed fields. See Properties.
  • The Graph is now an AI workspace. Open it (⌃⌘G) and the ✦ AI… menu lets you chat with your wiki (a multi-turn, cited conversation), group pages into AI-named Territories, Explain this graph, Find issues to fix, and suggest links and pages to create. See The Graph.
  • Links suggest themselves as you write. With an embedding model present, pausing mid-sentence surfaces existing pages your paragraph relates to by meaning — one click inserts the link. See Pages and Linking.

Both run on the same local model and embedding index as everything else here.

Telling what the AI made

So future-you always knows which pages came from your own hand and which MojoPad assembled, AI-built pages are marked in the list: an auto-built index page carries an accent ✦, a Map of Content a ✧, and answers you saved from Ask are flagged too. The page list's filter menu can show only AI-built pages, so a quick audit of “what did the machine write?” is one click away.

Privacy, precisely

Everything happens on this Mac. Encrypted pages are excluded from retrieval and indexing; in password-protected documents the semantic index is itself encrypted.

The single exception is Bring your own model, above, which is off until you turn it on and confirm. With it on, the pages behind a question you ask go to your provider; everything automatic still runs here, and locked pages are still never sent. The AI drawer says so on screen whenever it is on.

Changing the model rebuilds the index

Two models do not measure alike, so nothing carries over when you switch: the wiki's meaning index is built again from scratch, quietly, in the background. That is deliberate. Comparing numbers from one model against numbers from another does not produce a wrong answer you could spot — it produces a confident one that means nothing. So MojoPad records which model wrote each index and refuses to mix them.

If searching by meaning ever comes back empty when you expect something, Help ▸ Save Diagnostic Report… names the model that built the index for each wiki, and how many pages are in it.