Fruit Bat Docs

Echo (AI)

The AI side panel that runs on your computer: summaries, sources, history search and more.

Click Echo in the toolbar (Ctrl+Shift+E) for an AI side panel that runs on your own computer. Nothing you ask, and no page you ask about, leaves your computer.

Setting it up: open Echo and press Download Echo's AI. That's it.

Echo's built-in AI#

  • The model: Gemma 4 E2B by Google DeepMind (Apache 2.0). It's small (about 2B effective parameters) and good at summarizing, explaining and translating pages.
  • The engine: it runs on llama.cpp's llama-server (MIT license), which ships inside Fruit Bat. On Macs it uses the GPU (Metal).
  • The download: a one-time 2.8 GB download of the llama.cpp project's official 4-bit copy, ggml-org/gemma-4-E2B-it-GGUF. It's only downloaded when you click. It's checked against the SHA-256 Hugging Face publishes, and a file that doesn't match is deleted. If the download is interrupted, Continue download picks up where it stopped. Cancel works any time.
  • Memory: it needs a computer with at least 6 GB of memory, and 8 GB or more is recommended. Fruit Bat checks memory and disk space first.
  • Private to your computer: the engine only listens on 127.0.0.1, on a random port, and requires a random key on every request, so other programs and websites can't use it.
  • Starts and stops itself: the engine starts the first time you ask (the first answer takes a few seconds while the model loads) and stops after 10 idle minutes to give the memory back.
  • Settings › Echo shows its status, download progress and a Delete button. The model is stored in <profile>/models/.

Search my history (History › Ask Echo): describe a page you've visited ("that article about bats and echolocation from last week") and Echo finds it.

  • How it searches:
    1. Fruit Bat does a keyword search (BM25) of your history's titles and addresses, plus saved page text.
    2. Echo first adds related search words.
    3. Echo then picks the best matches from the top results, and closer-but-unsure matches are listed below them.
    4. Words like yesterday, last week, 3 days ago or in March narrow it to that time. If nothing matches in that time, it searches all your history.
  • Saved page text (Settings › Echo › Search my history) is off by default.
    • Pages from private or Vampire Bat windows, internal pages, and pages with a password box are never saved.
    • Forgetting a site or clearing history deletes the matching text. Turning the setting off deletes all of it.
    • Without it, Ask Echo still searches titles and addresses. Without any AI it works as a plain word search.
  • Safe from pages: the list Echo picks from is marked as untrusted website data, and Echo only answers with numbers from the list. Fruit Bat checks those numbers, so page text can't make Echo do anything else.
  • In the Echo panel: Find a page in your history… opens it.

Your own models instead: Echo also works with Ollama or LM Studio. Find it (the default) uses your own Ollama or LM Studio first, if it's running with a model, and the built-in AI otherwise. Settings › Echo can pick one: Built-in, Ollama, LM Studio, or Other.

What it does#

  • Quick actions: Summarize, Key facts, Explain simply, and Translate (pick a language), plus a box for any question about the page. Follow-up questions remember the conversation.
  • Right-click highlighted text: Ask Echo about this or Translate with Echo.
  • One conversation per tab. Moving to a new page adds a marker, and Echo reads the new page next time you ask.
  • Writing help: right-click in any text box › Echo writing help › Fix spelling & grammar, Make it shorter, Make it friendlier, Make it more formal, or Make it clearer. It works on what you've selected, or the whole box.
    • The model gets only your text: no page, no browser details.
    • Replace in text box puts the new text back the way typing would, so sites notice it and Ctrl/⌘+Z undoes it. If you've changed the box since asking, Echo won't overwrite it.
    • Never offered in password or payment boxes.
  • Videos: Summarize video (in the panel on YouTube and pages playing video, or right-click a video) summarizes from the captions, with times like [4:12]. Follow-up questions use the transcript.
    • On YouTube, captions come from YouTube's player.
    • Elsewhere, they come from the video's caption track.
    • A video with no captions says so.
  • PDFs: Summarize and questions work on PDFs, including files on your computer.
    • Web PDFs are fetched with the tab's own session (your sign-in; Tor in Vampire Bat).
    • It reads up to 80 pages; scanned PDFs without text say so.
  • Long PDFs and videos are read in parts: Echo takes notes on each part, then answers from its notes ("Reading part 3 of 6…").
  • Keep Echo ready (Settings › Echo): loads the built-in AI when Fruit Bat opens and keeps it loaded, so answers start at once. It uses about 3 GB of memory the whole time.
  • Answers stream in as they're written. Stop cuts them off and keeps what's there; Copy copies an answer.
  • Model picker in the panel header. Settings › Echo has the model app (Find it / Ollama / LM Studio / Other), the model, the translate-into language, and private/Vampire Bat rules.

What Echo knows about your browser: each time you ask, Fruit Bat tells Echo about the browser too, so you can ask things like "what time is it?", "which tab had the recipe?", "sort my tabs into groups", "how many trackers were blocked today?" or "is my download done?". It works on any tab, including New Tab. The panel has buttons for a few of these.

  • Date and time: the date, time, time zone and part of the day (morning, afternoon, evening or night), how long Fruit Bat has been open, and how long the tab has been on its page.
  • Tabs and tab groups: the title and address of each tab in this window (up to 40) and its group, which tab is current and which are loading or playing sound. Normal windows also see up to 15 tabs from other normal windows.
  • Blocker numbers, downloads and settings: Lime Blocker's count for this page, today and in total; downloads and how far along they are; Colony torrents; the search engine, HTTPS-only mode, whether history is saved, the number of bookmarks, the zoom level, Reader view, Tor's status in Vampire Bat, the Fruit Bat version and the operating system.
  • Recent history: the last 15 pages you visited, with times.
  • Each one can be switched off in Settings › Echo › What Echo can see. The panel says what Echo can currently see.
  • Windows stay separate: a private window only shares its own tabs and downloads: no history, no other windows, no all-time totals. A Vampire Bat window only shares itself. A normal window never sees private or Vampire Bat tabs.
  • Website-written text is screened: tab titles, file names and history titles are written by websites. They go in their own marked block, like page text, and titles aimed at AI are replaced with "[removed: text aimed at AI]".

How it stays safe#

  • Local only: Echo only talks to localhost, 127.x or ::1. Settings refuse any other server address, so it can't quietly become a cloud AI.
  • Reads only when asked: opening the panel doesn't read the page; asking does. The page is read in an isolated JavaScript world, so the page's scripts can't interfere.
  • Reads, never acts: Echo can't click, type, open links or buy anything. Its answers are drawn as plain text: model output can't create links, images or scripts in the panel.
  • Pages can't give it orders. Page text is sent wrapped in a random tag, with rules saying it's untrusted data. Sentences aimed at AI assistants ("ignore your previous instructions…"), including hidden ones (white-on-white, 1px text), are removed before the model sees them. You get a red "This page tried to give Echo orders" card showing what was hidden.
  • Private windows: on by default, since it's local-only, and can be turned off. Vampire Bat: off by default, and can be turned on.

Sources and @tabs#

  • Sources: answers carry numbered buttons. Click one to see the quote in Echo, and Fruit Bat scrolls to that passage and highlights it (in another tab if it came from one). PDFs show the quote only.
  • @tabs: type @ in Echo's box to add tabs, a group or "This tab" as chips. Echo reads them (6 at most) and answers across them; Backspace removes the last chip. Each mentioned tab goes to the model in its own untrusted <page-…> block.

Echo can use Roost#

Ask Echo to do something in the browser and it writes a short Roost script on a card. Nothing runs until you press Run script in Roost. The script then runs in the Roost panel, line by line.

set yt = $(tabs --site youtube.com)
if count($yt) > 0
  $yt | close
end
open "fruit bat facts" --here
wait-for "fruit bat"
click "Images"
  • After it runs the card shows how it went. What's next? (or Fix it if it stopped) sends Echo the result and the page you're on, and Echo answers with the next script, a fixed one, or "done". Each step is a new card you run yourself. The result goes to Echo as information only, with lines that look like instructions taken out.
  • Edit turns the card into an editor, checked with Echo's rules as you type. Done puts your version on the card (or on a new card if it already ran), and Echo is told it was your change. Open in Roost's editor runs it as your own. Save as script saves it under a name from what you asked.
  • Checked before you see it: every command in the script is checked, including ones inside $( … ) and ${ … }. Each line shows "just looks" or "changes things", and a script with any blocked line can't run.
  • Chat: Echo's scripts can read Chirp chats (chirp read); chirp say and chirp share ask you before every message.
  • Torrents: Echo can see torrents and pause or resume them, but never add or remove any.
  • Wallet: Echo can look at the wallet (wallet balance, wallet activity), but can never send money, switch networks or disconnect sites.
  • What Echo can use: the listing commands (tabs, page, links, history, bookmarks and others), the list tools, the tab commands, open, back, forward, click, fill, press, type, hover, scroll, wait-for, group, ungroup, collapse, expand, move, zoom, notify, bookmark, copy, sessions, and the whole scripting language.
  • What it can't use: forget, get, save, every, after, watch, kill, lime, alias, script, session rm, and your own aliases and scripts.
  • Limits for Echo's scripts:
    • At most 40 lines, 100 loop rounds and 2,000 steps.
    • At most 20 tabs opened and 20 clicks per run.
    • --yes is always removed, so Roost still asks before big changes. It asks in the panel: type y or n. Answering no, or Ctrl+C, stops the script.