AI Features
Let AI discover patterns, suggest connections, and generate ideas across your garden.
Setting up AI
Neural Garden supports multiple AI providers — Claude (Anthropic), OpenAI, Grok (xAI), and Ollama (local). You bring your own API key. Go to Settings to configure your preferred provider and enter your API key (Grok keys come from console.x.ai). Ollama runs locally on your machine and requires no API key. Grok and OpenAI can also generate images — ask the Command-K assistant to draw something and it places the result on your canvas as an image node. Grok can also search the web and X for you (see below).
- 1Open Settings from the sidebar.
- 2Choose your AI provider (Claude, OpenAI, Grok, or Ollama).
- 3Enter your API key (not needed for Ollama).
- 4Click Test connection to verify the key works before saving.
- 5AI features are now available across the app.
Semantic indexing (embeddings)
Semantic search, related-thought suggestions, and clustering all rely on embeddings — numeric fingerprints of each thought's meaning. Turn on Automatic embeddings in Settings and Neural Garden indexes your thoughts in the background as your garden grows, re-clustering periodically. There's no manual 'Generate' step. It's off by default and needs a provider that supports embeddings — OpenAI (billed per request) or a local Ollama model. Claude and Grok can't produce embeddings, so the switch shows a warning until you pick a supported provider.
Command-K AI assistant
Press Cmd+K and type a natural language request to have AI act on your garden. You can create thoughts, connect nodes, nest and un-nest them, move and arrange nodes, duplicate a node (which places a linked reference — the same thought shown in two spots, kept in sync), create color regions and group nodes into them, edit properties, generate images ('draw a mind-map mascot' — available with Grok or OpenAI, which place the picture on the canvas as an image node), attach a generated image to an existing node ('add an image to this node' nests the picture inside it; 'connect an image to X' places it beside the node joined by an edge), write text into a thought's description without replacing what's there ('add a summary to this'), and ask questions — all through conversational prompts. AI understands commands like 'add rice inside dinner' (nesting), 'connect task under project' (edges), or 'make a Work region and move these into it'. It can also answer questions about your garden's content using garden intelligence. The assistant sees your whole canvas — every node and where it sits, all the connections between them, any color regions, and whatever you currently have selected (one node or several) — so requests like 'connect the two selected nodes' or 'what links these ideas?' work in context.
Web and X search with Grok
With Grok as your provider, the assistant can look beyond your garden: it searches the web and posts on X when a request needs current or outside information — 'what's the latest on this', 'is this claim true', 'what are people saying about X' — and folds what it finds into its reply, with the sources listed as links under the message. This works anywhere the assistant does: Cmd+K, the AI… entry in context menus, and /ai inside a description. It decides on its own when a search is worth it, so a plain canvas command ('connect these two') never triggers one. Both tools are on by default with Grok; switch either off in Settings under the Grok tab.
AI… in every context menu
Right-click (or long-press) anything on the canvas and the first entry is AI… (Cmd+K). It opens the assistant straight into AI mode with what you clicked pinned as its context: a node's menu talks about that node ("summarize this", "add an image to it"), a multi-selection's menu about those nodes ("connect these", "what do they have in common?"), an edge's menu about its two endpoints ("label this connection"), and the empty background about the whole garden. The pin lasts until you close the dock, so follow-ups stay about the same thing even if you click elsewhere in between.
/ai inside a description
While editing a thought's description, type /ai to ask the assistant from right there. A small prompt box opens at your cursor; what you type is sent to the Cmd+K assistant with this thought pinned as the context, so it can do everything the assistant does — create and connect nodes, edit properties, answer questions — plus two things only this path offers: writing into the description ("add a two-line summary", "continue this paragraph", "give me three bullet points") and drawing into it ("draw a diagram of this" — with Grok or OpenAI, the picture is inserted inline instead of becoming a separate node). While the editor is still open the text or picture lands at your cursor; if you've already closed it, it's appended to the end of the description. This works for a thought that isn't placed on the current canvas too — say the side panel opened it from search, a backlink, or Add to today: the assistant still sees its title, type, description and properties, and can write into the description while the panel is open, though it can't move or connect that thought on this canvas. The reply and the actions it took show in the dock as usual. To add a picture of your own, use /image instead (upload a file or paste an image URL).
Exploring vs. doing — grow a tree of ideas
Open Cmd+K with nothing typed and a 'Suggested' section offers AI commands fitted to the moment — select a thought and you'll see things like Expand on '[its name]'; on a busy canvas, theme and connection suggestions; on an empty one, an invitation to map out a topic. Pick one to send it straight to the assistant. Cmd+K also reads your intent. For direct commands (create, edit, connect, rename, or a question) it just does the thing. But when you ask it to explore — 'explore [topic]', 'go deeper', 'what else', 'brainstorm', 'map out X', or 'expand this' on a selected node — it becomes a Socratic guide and grows a hierarchy tree on the canvas (like a skill tree, mind map, or learning path), one tier at a time. Faint placeholders appear beside the node the moment you ask — the suggestion chip drawn as a ghost — and the tier fills them in as suggested nodes — real, movable nodes drawn dashed and connected to the node by dotted edges. Direction carries the meaning, so edges stay unlabelled: expanding grows children downstream, while asking about what comes before — 'explore parents', 'what does this require', 'prerequisites' — grows the tree upstream instead, suggesting prerequisites and broader context as parents of the node. Keep one (✓, or just start editing it) and it becomes an ordinary thought; dismiss one (✕) and a fresh path grows in its place. Each suggestion is a short opening rather than a full explanation — usually a Socratic question, but the guide reads the branch and switches form when the moment calls for it: a concrete next action on a planning branch, a compact answer when a node poses a direct question, or a counterpoint when an assumption deserves a challenge. The guide leaves deeper levels unopened so there's always a frontier, slips in one unexpected branch you hadn't considered, and ends with a question pointing at what to open next. When a branch gets dense, it suggests drilling into it as its own sub-garden. There's no mode to turn on — this is just how the assistant works.
New thoughts completed for you
When you create a thought without choosing a type, one AI call reads the title and whatever surrounds it and completes the thought on its own: it assigns the best matching type — so the type icon and colour appear a moment after you finish — and, when it's confident about what the thing is, also writes a short first description and fills in properties it knows as public facts (a book's author, a person's field). It works from both places thoughts are born: a new node on the canvas (using its title, any description you wrote, and the thoughts around it) and the + Create row in the [[wikilink]] picker (using the sentence you typed the link into, the thought you typed it inside, and the garden you’re in). That surrounding sentence is what settles the ambiguous cases — typing [[Mercury]] next to “the innermost planet” gets you a planet, not a Roman god. The AI only picks from types that already exist in your garden, and when nothing fits — or the title is too generic to call — it leaves the thought exactly as you made it: untyped, with nothing written. It never writes over you either: the description only lands while the field is still empty, and fills go into empty properties only. Everything is a starting point, never a lock: change the type from the chip, edit or delete the sentence like any text. Turn the whole thing off under Settings → AI autofill.
Complete a thought with the sparkle
While editing a thought — on the canvas card or in the side panel — a small sparkle sits on its own line just below the description (or below the Description placeholder while the field is still empty). One tap makes a single AI call that completes the thought: it writes one concise sentence about what the thing itself is (using well-known public facts for a recognizable book, person, place, or product — never a recap of the notes around it, which you can already see on the canvas), fills in empty properties it confidently knows (like author for a famous book), and picks a type if the thought doesn’t have one yet. Everything it does is additive: the sentence is appended after any description you already have, property values only land in empty fields, a type is only assigned to an untyped thought — nothing you wrote is ever replaced or removed. In the side panel, the type it picks and its fills join your unsaved draft, so Cancel discards them along with everything else.
AI connection suggestions
The AI can analyze your thoughts and suggest connections between ideas that you might not have noticed. Open the command bar (Cmd+K), type > and pick Suggest Connections, or open the garden intelligence panel to see AI-discovered relationships. Accept suggestions to create real connections — pairs you have already connected are never offered again. Re-running is quick: only thoughts whose text changed since the last run are re-examined, so the wait scales with what you have edited rather than with the size of your garden. (The sparkle button that used to sit in the bottom toolbar and the canvas menu now opens the assistant itself — see "AI… in every context menu" below.)
Suggested nodes
Suggested nodes are real, movable nodes drawn with a dashed outline at every zoom level, each connected to their thought by a dotted edge and packed in a column beside it. They arrive on their own when you select a thought (see Pre-think below), and on request — right-click a thought and pick Suggest Ideas, or ask the assistant to expand it. Direction is the meaning, so edges carry no labels: suggestions grow the idea downstream (a next step, a contrasting angle, a surprise), while asking for what comes before grows the tree upstream — prerequisites, broader context, and hidden assumptions suggested as parents of the thought. Writing a thought yourself is a separate act from being offered one: the + handle opens a title input and nothing else, and while you are naming it the thought you started from steps out of selection, so its suggestions wait instead of crowding the space you are typing into. Suggestions read the thought's whole neighborhood — the parent it grows out of, sibling branches (and what they collectively miss), children already explored, its typed properties, and your garden summary — and each picks the form the moment calls for: a Socratic question by default, a concrete action, a compact answer, or a counterpoint. They stay on the canvas, so you can arrange them, keep exploring, and decide later. Keep one with the ✓ (shown on the card at full zoom, and as a small ✓/✕ pill above the node when zoomed out; right-clicking a suggestion offers the same Accept and Dismiss — plus Delete, which removes the card without recording a rejection — so no replacement grows now, but that angle can be offered again later — and Accept and Dismiss are in the command bar too — or simply rename it; editing a suggestion makes it yours) and it turns into an ordinary thought with a solid connection. Dismiss one (✕) and it disappears while a fresh suggestion grows in its place, so the branch keeps offering paths. Dismissals are remembered on that thought — across sessions and devices — so a rejected angle is never offered again, and every future suggestion (live or pre-thought) is generated knowing what you turned down. Until you keep them, suggestions are read-only sketches: the regular node tools (open as garden, edit, properties, +) stay hidden, they can't be nested into other thoughts or receive nested children, can't be connected to anything or duplicated (Connect To… and Duplicate refuse them everywhere — the context menu, the selection pill, the command bar, and the ⌘K assistant — even when a box-select sweeps one up alongside real nodes), and they stay out of search, clustering, the My Gardens list in the sidebar, and your garden's intelligence — sketches in the margin, not part of your thinking yet. They also leave with their thought: deleting a thought sweeps away any suggestions still standing beside it (and any prepared inside its sub-garden). Being sketches, they skip the trash — restoring the thought brings it back alone, ready to grow a fresh tier. Occasionally a differently-tinted node appears below the column, labeled Coach: instead of a topic suggestion, it's an observation about your thinking process itself — a branch running deep with no synthesis, siblings all taking the same angle, or drift away from your garden's stated goal — with a suggested move. The coach is deliberately rare, and it works best when you've written a Goal in the garden intelligence panel. Keep it and it becomes a regular note; dismiss it and it simply disappears (nothing replaces it).
Inside the suggestion prompt (what the AI is asked)
There's no mystery box — every expand sends one request built from context your garden gathers locally: your thought (title, content, type, and typed properties), its branch path from root to here, its neighbors labeled by relationship (the parent as a frame to fit, siblings as ground already covered, children as places to go deeper or diverge), other nearby thoughts, your garden goal quoted verbatim, the AI-maintained summary and tags, and everything you've previously dismissed on that thought. The ask itself is small and strict — which is why the suggestions feel consistent:
- 1Propose exactly three openings playing distinct roles — a next step deeper along this path, an alternative angle unlike the existing children, and an adjacent surprise. (Expanding upstream flips the roles to: a prerequisite, a broader frame, a hidden assumption.)
- 2Pick each suggestion's form to fit the moment — a Socratic question by default, a concrete action for doing-branches, a compact answer when your thought asks a direct question, a counterpoint for an unexamined assumption — and set the node type to match.
- 3Stay small: 3–5 word titles like map labels, one-line bodies under ~15 words. Openings, never essays.
- 4Never duplicate or rephrase anything on the branch, nearby, previously suggested, or dismissed — rejected angles stay rejected.
- 5Finally, step back and assess the thinking itself against the garden goal; only when a clear signal appears (depth without synthesis, circling, goal drift) may ONE coach note be added. Most tiers get none.
Pre-think (instant suggestions)
Normally, asking for suggestions means waiting a moment while the AI thinks. Pre-think removes that wait: turn it on in Settings (it's off by default) and Neural Garden quietly prepares the next three suggestions for your most recently touched frontier thoughts — leaves at the edge of your thinking — while the canvas is idle. The prepared suggestions are stored on the thought itself, so simply selecting a prepared thought pops them out automatically (only ever from the cache; selection never triggers an AI call). Unaccepted suggestions appear as compact chips packed in a neat column beside their thought, like the tree arrangement's child rows, clear of the connect handles on either side. While the AI is still thinking, each chip stands in place as a faint outline of itself — same pill, same row, ghost text where the title will be — so the tier fills in rather than jumping about as answers land. The chips keep one readable screen size at every zoom level — zoomed out they don't shrink away like regular thoughts do — and the column re-arranges itself as you zoom or drag the parent, so a tier stays tidy on any screen, including mobile. Accepting one grows it into a full thought card. Suggestions stay tidy: a tier is visible only while its thought (or one of the suggestions) is selected — click elsewhere and it sinks away, reselect and it bubbles back, so exploring many branches never litters the canvas. Selecting several thoughts at once hides every tier: a multi-select is for moving or deleting, not reading, and stacking each thought's chips made a mess. Drag-selecting the chips themselves works as you'd expect — they stay put while you draw the box, and only step aside if the box catches a regular thought. Pre-think also thinks two steps ahead by default: each background pass drafts not just the next three suggestions but every suggestion's own next three, all in one AI call. That's why keeping a suggestion with ✓ feels instant — its children were already drafted alongside it and are handed down the moment you accept, ready to pop when you select your new thought. Behind the scenes the sweep immediately tops the accepted thought up to the full two levels again, so however deep you go, the garden stays one step ahead of you. (You can turn "Think two steps ahead" off in Settings to keep background calls smaller.) It's careful with your API budget: nothing regenerates unless the thought, its neighborhood, or your garden's goal or summary actually changed, and only a handful of recent thoughts (10 by default, adjustable) are prepared. Some places stay quiet automatically: the home canvas (your top-level garden view), Day entries, type definitions, and any garden on the Quiet gardens list in Settings (Inbox, Daily, and Types by default — edit the list to taste) never pre-think or pop suggestions on select, whether you're inside the garden or selecting its card on another canvas. Suggest Ideas works everywhere, with one guardrail: it tops a thought's tier up to three suggestions and won't stack more onto an already-full tier — selecting the thought re-shows its existing tier instead. To go beyond three, ask the AI assistant to expand the thought — the explicit route can always add more. If a prepared batch has gone stale, Suggest Ideas simply falls back to a normal live request. You can watch pre-think work in the Agent Tasks panel: it shows the sweep in progress, which thoughts have suggestions ready (selecting those is instant), and any failures — which retry on their own.
Clustering
AI groups your thoughts into clusters based on content similarity. With Automatic embeddings on, clustering refreshes on its own in the background; you can also open the clusters panel and run it manually. Clusters are color-coded and can be viewed as visual regions on the canvas. Clustering needs embeddings, so it requires OpenAI or Ollama.
Garden intelligence
The garden intelligence panel provides AI-generated summaries and insights about your entire garden. At the top sits the Goal field — your own statement of what this garden is for. Unlike the summary, the goal is yours alone: the AI never rewrites it, but it reads it everywhere — suggestions steer toward it, and the coach (see Suggested nodes) measures your progress against it. The summary is a rich-text field — generated summaries render with real headings and bullets, and you can edit them (or write your own) with the same editor used for thought descriptions. Whatever it says is fed to the AI as garden context, so keeping it accurate improves suggestions.
Privacy
Your API keys are stored locally in your browser. Claude and OpenAI requests go straight from your browser to the provider — they never touch the Neural Garden server. Grok is the one exception: xAI blocks direct browser connections, so Grok requests are relayed through the app server; your key travels with each request and is never stored or logged there. Grok requests also opt out of xAI's server-side conversation storage, so your prompts are not retained there beyond the request itself. When using any cloud provider, thought content is sent to that provider's API for analysis. For maximum privacy, use Ollama to run AI entirely on your own machine.