· 6 min read

How AI typeahead works in noodl, and what it sends

Ghost text, the Tab key, caching and the offline fallback: a plain explanation of how suggestions are made and exactly which text is sent to the AI provider.

Every node in noodl, in both the outline and the mind map, can suggest how to finish what you are typing. This post explains what you see, which keys do what, and, because it matters, exactly what text is sent to Google and when.

What you see

Type at least two characters into a node and pause. The most likely ending appears after your caret in grey: that is ghost text. Next to it is a small marigold Tab chip. Below the node, a dropdown lists up to five suggestions. Suggestions made by the AI come first; matches from your own notes fill the rest and are marked with a file icon and the note they came from.

Marigold is reserved for AI throughout the app. If something is yellow, AI made it or is offering it. Your own words are never shown in that colour.

The keys

Keys while a suggestion is showing
KeyWhat it does
TabAccepts the ghost text. With no ghost text showing, Tab adds a child node as usual.
↑↓Moves through the dropdown.
EnterUses the suggestion you picked with the arrows. Otherwise it commits the node and adds a sibling.
EscHides suggestions until you change the text. A second Esc stops editing.

Why Tab, when Tab already means “add a child”?

Because Tab is where your hand already is. The conflict is resolved by one rule: Tab accepts only while ghost text is visibly on screen, and the Tab chip makes that state explicit. After accepting, the ghost disappears, so the next Tab branches as normal. In practice it reads as one rhythm: Tab accepts, Tab again branches. Screen readers announce each suggestion and that Tab accepts it.

How a suggestion is made

  1. Local first. As you type, the app looks for phrases you have already written in any of your notes that start with the same letters. This runs on your device, instantly, and costs nothing.
  2. Wait for a pause. The AI is only asked once you stop typing for a moment (about a third of a second), so a fast typist doesn't send a request per keystroke.
  3. Ask the model with context. The request includes where the node sits in the tree, so the same letters finish differently under Fixes than under Budget. It asks for full node texts that start with exactly what you typed and that don't repeat a sibling.
  4. Cancel stale work. Every new keystroke cancels the request in flight. An answer that arrives for text you have already changed is thrown away.
  5. Remember. Results are cached, so deleting back to something you typed a moment ago shows the same suggestions without asking again.

Typing is never blocked. If the AI is slow, you keep typing and the local matches stay visible.

Exactly what is sent

Only when you are signed in with AI switched on, and only when the app decides to ask, one request goes from your browser to a small noodl function, which checks your session and passes it on to Groq (or Google Gemini as a backup). For a typeahead suggestion it contains:

  • what you have typed in the current node so far;
  • the texts of the nodes from the root (the note's title) down to this node's parent, for example Heat islands › Fixes;
  • the texts of the node's siblings;
  • a fixed instruction asking for a short list of completions as JSON.

Nothing else. Not the rest of the note, not your other notes, not your folders, not your account details. Here is a representative request for the example above:

Mind map branch (root first):
- Heat islands
  - Fixes

Existing sibling nodes:
- Cool roofs
- Street trees

The user is typing a new node and has written: "Pocket par"
Give 4 suggestions for the full node text…

The other AI features send what they need and no more: Generate sends your prompt, Summarize sends the text you pasted, and Rewrite sends the node, the path above it and your instruction.

Offline, AI off, or out of quota

Suggestions never just stop. They fall back to your own notes:

  • Offline: the dropdown says so and shows only matches from your notes. No request is attempted.
  • AI off in Settings › AI: the same local matches, and nothing is ever sent to an AI provider.
  • Rate-limited: if Google reports that the quota is used up, AI suggestions pause for about a minute while local matches carry on, then resume on their own.

Local matches are often what you want anyway: names, places and terms you have used before come out spelled the same way every time.

The short version

Ghost text is a suggestion, never an edit. Tab takes it, typing ignores it, Esc hides it. With AI on, the node's path and siblings are sent to the AI provider to make it smarter; with AI off, nothing leaves your device. The full details are in the privacy notice.

Start with one idea.

Type a topic and press Tab to branch it. Everything stays on this device.

Free in your browser. Works offline. No account until you want sync or AI.