MojoPad

Local AI

MojoPad's AI runs entirely on your Mac through Ollama. No accounts, no API keys, no tokens — and no page content ever leaves your machine.

Setup

  1. Install Ollama from ollama.com.
  2. Pull a chat model — ollama pull qwen3 is a great current default. MojoPad automatically prefers the newest capable model you have installed.
  3. For semantic features, pull an embedding model too: ollama pull nomic-embed-text (or mxbai-embed-large for higher quality).

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, 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.

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.

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, and double-clicking the edge resets it). 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 what you're asking:

  • 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 asks the model directly — its own general knowledge, no retrieval — for a definition, a translation, or a starting point that isn't in your wiki yet.

All four stay entirely on your Mac, and MojoPad remembers which scope you used last. And the ✦ Persona chip beside the scope picker changes how answers are written — see AI Personas.

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.

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 twenty: 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. 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 and links to the source pages. Those 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. Answers from Anything scope are stamped as the model's own knowledge instead — so future-you knows which pages came from your notes and which came from a machine.

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 ticks 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. ✦ Suggest tags proposes tags you can add to the page with a click.

Semantic search and Related

With an embedding model installed, MojoPad quietly indexes your pages (the index lives inside the document and updates as you edit). You get:

  • the “Related by meaning” section in Searching, 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 the local 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 against 127.0.0.1. Encrypted pages are excluded from retrieval and indexing; in password-protected documents the semantic index is itself encrypted. If Ollama isn't running, every AI surface degrades gracefully and the rest of MojoPad is unaffected.