Swirl Search is a free, open source ai interaction & interfaces project written in Python and released under Apache-2.0. It has 3,046 GitHub stars, 286 forks and 1 open issues, and was last pushed 12 days ago. On this registry it ranks #55 of 76 tracked projects in AI Interaction & Interfaces, with 5 head-to-head comparisons available. It gained 2 stars over the last 6 tracked days.

What is Swirl Search?

What it is

Swirl Search is an open-source federated AI search and retrieval-augmented generation (RAG) platform written in Python and built on Django. It lives in the AI and machine learning ecosystem, specifically the AI interaction and interface space, and is distributed under the Apache 2.0 license as SWIRL Community. The project queries more than 100 connected sources live, ranks the combined results, and optionally generates an answer with citations using a large language model of the operator's choice. It ships with the Galaxy UI, the same interface used by the commercial SWIRL Enterprise edition.

The concrete problem it solves is the data duplication that most AI search stacks require. Conventional approaches ask an operator to stand up a vector database, copy content into it, build ETL pipelines, and then govern that second copy forever. Swirl Search skips the copy entirely: it queries sources in place, with the user's own permissions enforced at the source, so no vector database, no ETL, and no duplicate dataset to secure and audit are introduced. It is a metasearch and federated-query engine first, with RAG layered on top.

Key capabilities

  • Federated search and RAG across 100+ connectors, with source data left in place.
  • Real-time RAG with clickable citations, driven by the operator's own OpenAI key.
  • Microsoft 365 integration using OAuth2.
  • Re-ranking with cosine vector similarity using the spaCy large model plus NLTK.
  • Duplicate detection and result mixers for combining ranked output.
  • A pipelined Processor architecture for transforming queries, responses, and results.
  • Synchronous or asynchronous federation exposed over a REST API.

Who uses it and how

  • Teams that need answers from company knowledge spread across many apps without centralizing it.
  • Operators who must keep data under existing source permissions rather than a new copy.
  • Users who want a ranked, deduplicated result set across sources, with an optional generated answer and citations.
  • Deployments that need programmatic access, calling the REST API synchronously or asynchronously.
  • Organizations that want the Galaxy UI for interactive question-and-answer workflows.

Getting started

The README documents a Docker quick start: download the compose file from the repository, optionally export OPENAI_API_KEY for real-time RAG, then run docker-compose pull && docker-compose up and log in with admin / password. Arxiv, European PMC, and Google News are searchable out of the box; a persistent install is covered in the Quick Start Guide.

When to use it — and when not to

Swirl Search Community is the free, self-hosted option, while SWIRL Enterprise adds a three-pass reranker, canonical answers, an MCP server for agents, and managed support, so teams needing those should look there. A self-hoster runs the Docker deployment and, for RAG, supplies an OpenAI key; note that the Docker version does not retain data or configuration when shut down, so a persistent install is required for real use.

project readme (upstream, from github) — read inline

SWIRL

SWIRL Community

Federated AI search and RAG across your stack, without moving your data

Ask a question. SWIRL searches your apps live, ranks the results, and returns an answer with sources you can click through to. Data stays where it lives. No vector database, no ETL, no second copy to govern. Open source, Apache 2.0, running on your machine in about two minutes.

License: Apache 2.0 GitHub Release GitHub Stars Website

SWIRL Galaxy UI: ask a question, get an answer with sources

⚡ Quick Start · 🧱 What you get · 🆚 Community vs Enterprise · 🔌 Connectors · 🤝 Contribute

This repository is SWIRL Community, Apache 2.0 and free to self-host. There is also SWIRL Enterprise, which adds a three-pass reranker, canonical answers, an MCP server for agents, and managed support. The comparison below lays out the difference, so you can tell which one you need.

🤔 Why SWIRL?

Most "AI search" asks you to copy everything into a vector database first, then govern that copy forever. SWIRL skips the copy. It queries your sources live, with the user's own permissions, re-ranks the results, and optionally generates an answer with citations using the LLM of your choice.

❌ The usual way ✅ With SWIRL
Stand up a vector database No vector DB needed
Move and duplicate your data Data stays in place
Build ETL pipelines Query live, in place
Weeks of infrastructure work One Docker command, about 2 minutes
A new copy to secure and audit Permissions enforced at the source

🔥 Quick Start: Docker in 2 minutes

Make sure the Docker app is installed and running.

Download the compose file:

curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml

Optional, to enable real-time RAG with your own OpenAI key:

export MSAL_CB_PORT=8000
export MSAL_HOST=localhost
export OPENAI_API_KEY='<your-OpenAI-API-key>'

Start SWIRL:

docker-compose pull && docker-compose up

Then open , log in with admin / password, and run a search. SWIRL comes ready to search Arxiv, European PMC and Google News out of the box.

SWIRL Galaxy UI: federated, ranked results across your sources

Note: the Docker version does not retain data or configuration when shut down. For a persistent install, see the Quick Start Guide. Watch the 60-second video tutorial to get going.

🧱 What SWIRL Community gives you

Apache 2.0, free, yours to run anywhere:

  • Federated search and RAG across 100+ connectors, with your data left in place.
  • The Galaxy UI, the same interface that powers SWIRL Enterprise.
  • Real-time RAG with citations using your own OpenAI key.
  • Microsoft 365 integration with OAuth2.
  • Re-ranking with cosine vector similarity (spaCy large model plus NLTK), duplicate detection, and result mixers.
  • A pipelined Processor architecture for transforming queries, responses and results.
  • Synchronous or asynchronous federation over a clean REST API.
  • Results stored in SQLite or Postgres for post-processing and analytics.
  • Easily extensible Connector and Mixer objects, so adding a source is straightforward.

What teams build with it

  • Knowledge base search across SharePoint, Confluence and Drive, with source links.
  • Customer support assistants that search docs and tickets and draft grounded responses.
  • Developer assistants over GitHub, Jira and documentation.
  • Unified search across every tool, with results that respect existing permissions.

🆚 Community vs SWIRL 5 Enterprise

Community is genuinely useful and genuinely open. SWIRL 5 Enterprise is what you graduate to when search becomes infrastructure. We keep the line honest so you always know what you are running.

Capability Community (Apache 2.0) SWIRL 5 Enterprise
Federated search and RAG, no data movement Yes Yes
Galaxy UI Yes Yes
100+ connectors Yes Yes, plus managed connectors
RAG with your own LLM key Yes Yes
Relevancy ranking Cosine similarity (spaCy, NLTK) Three-pass pipeline: BM25, then E5 embeddings with hybrid fusion, then a cross-encoder
Canonical answers and Pinned Results Not included Yes
First-class MCP server for agents Not included Yes
Hallucination warning on generated answers Not included Yes
Business console with AI-Yield analytics, semantic cache and dedup at scale Not included Yes
SOC-2 hosting, managed connectors, and support Not included Yes

If you outgrow cosine ranking, want canonical answers, or need your agents to call SWIRL over MCP, that is SWIRL 5.

When you outgrow Community

Plenty of teams run Community in production and never need more. If you do reach its edges, where you want the three-pass reranker, canonical answers, an MCP server for your agents, the hallucination warning, or managed connectors and support, that is what SWIRL Enterprise adds.

If that is where you are heading, you can talk to us for a walkthrough on your own systems. Nothing leaves your environment, and there is no obligation.

🔌 Connectors

The full, current list lives at swirlaiconnect.com/connectors. Connectors are easily extensible; see the Connector objects and the Developer Guide. To request a connector, email [email protected].

📖 Documentation

Full docs: docs.swirlaiconnect.com. Start with the Quick Start Guide, then the User Guide and Developer Guide.

🤝 Contributing

SWIRL is built in the open and we welcome contributions. Good places to start:

  • Browse open issues and look for good first issue.
  • Join GitHub Discussions to ask questions and share what you are building.
  • Write a connector or a mixer; the objects are designed to be extended.

Please read the Code of Conduct and Contributing guide in the repo before opening a pull request.

👷 Support and community

License

SWIRL Community is licensed under the Apache License 2.0. See LICENSE and NOTICE for details.

Frequently asked questions

Is Swirl Search free to use?

Swirl Search is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Swirl Search do?

Get instant answers from your company knowledge

What is Swirl Search written in?

Swirl Search is primarily written in Python. Its source is publicly available at https://github.com/swirlai/swirl-search, and it has 3,046 GitHub stars.