FA

Farfalle

Open-source AI search engine with local model support

Search Engines ★ 3.5k stars Medium setup Apache-2.0

Farfalle is an open-source AI-powered search engine that can run with local language models. It provides conversational, sourced answers while keeping queries on your own infrastructure.

Key features

  • Run with local or cloud LLMs
  • Cited conversational answers
  • Self-hostable search pipeline
  • Expert agent modes

Pros & cons

Strengths

  • Supports fully local operation
  • Clean UI

Trade-offs

  • Newer project with rough edges

Farfalle replaces

Last reviewed Sep 13, 2026 · 864 words

Farfalle is a pipeline rather than a product: a search backend fetches 5 to 10 web results, a language model reads them and writes a cited answer, and a chat UI shows you both. Every one of those pieces can stay on your own hardware, which is the entire point. Run it with SearXNG as the search provider and Ollama as the model, and you have a Perplexity-style answer engine in which no query leaves your network. Run it with the cloud options it also supports (OpenAI, Groq, Tavily, Serper) and you have a nicer front end to services that already see your queries, which is a legitimate but different thing.

What the fully local stack costs

The listed 1 GB minimum is for Farfalle itself: a Next.js frontend, a FastAPI backend and an optional Redis for rate limiting. The model is the expensive part and it is not included in that number. An 8B-parameter model at 4-bit quantisation, which is the floor for answers that do not embarrass you, wants about 6 GB of RAM or VRAM through Ollama and produces 5 to 15 tokens a second on a modern CPU, or 40 plus on a mid-range GPU. Add SearXNG at around 200 MB. Realistically that is a 16 GB machine for a usable local setup and a GPU if you want answers in under 10 seconds. Sizing models is its own topic; the short version is that a 3B model makes Farfalle feel fast and wrong, and a 70B model makes it feel right and slow.

Setup is a compose file and an env file

Clone the repository, copy .env-template to .env, and set three things: SEARCH_PROVIDER=searxng, SEARXNG_BASE_URL pointing at your instance, and OLLAMA_HOST (the default assumes host.docker.internal:11434, which works on Docker Desktop and needs an extra_hosts entry on Linux). Then docker compose -f docker-compose.dev.yaml up -d starts the frontend on port 3000 and the backend on 8000. In the UI, pick a local model from the dropdown; the project ships presets for the Llama 3, Gemma, Mistral and Phi-3 families and reads whatever else Ollama has pulled. SearXNG needs its JSON output format enabled in settings.yml (formats: [html, json]) or the backend gets HTML and returns nothing; that single line is the most common reason a first run produces empty answers.

Expert mode is the interesting feature and the slowest one

Ordinary mode does one search and one generation. Expert mode has the model first decompose your question into sub-queries, search each, then synthesise, which turns "compare the power draw of an N100 and a Raspberry Pi 5 under load" from a shallow paragraph into an answer with numbers from several pages. It also multiplies model calls by 3 to 5, so on CPU inference a query can take a minute or more. It is worth it for research questions and wasteful for lookups; toggle it per query rather than leaving it on. Answers cite sources inline and show the fetched pages in a sidebar, and related-question suggestions appear after each answer, which are the two Perplexity habits people miss most when they switch.

The rough edges, stated plainly

This is a 2024 project largely built by one developer, and the pace of commits has been uneven since. There is no user system, no history beyond what the browser keeps locally, and no admin panel; configuration is the env file and a restart. Error handling when a model times out is thin. Search quality is entirely SearXNG's, so tune SearXNG's engines first if results look poor. If you need multi-user accounts, saved chats and a maintained release cadence, the comparable projects are Morphic, which is the same idea with a more active codebase, and Perplexica, which adds more search modes. Farfalle wins on simplicity of the stack and a UI that gets out of the way, and loses on everything that requires ongoing maintenance. Check the commit log before you commit to it.

What it is a replacement for

The honest framing is not Google Search but Perplexity. Farfalle does not index the web; it borrows results from engines through SearXNG and adds a synthesis layer. What it replaces is sending your questions to a hosted answer engine that retains them. If that is your concern, the Perplexity alternatives list is the right starting point and Farfalle is the smallest thing on it that works fully offline.

What I'd do

Run it if you already have SearXNG and Ollama up and a GPU with 8 GB or more of VRAM; it is a compose file and 20 minutes on top of that stack, and the local-only answer engine it gives you is genuinely useful for research questions. Without the GPU, try it with a cloud model key to see if you like the interface, but do not expect a CPU-only box to make it pleasant. If you want a project that will still be getting releases in a year, look at Morphic first and keep Farfalle as the lighter alternative.

Compare Farfalle

16 head-to-head comparisons.

Similar search engines apps