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

What is kotaemon?

What it is

kotaemon is an open-source, Apache-2.0 licensed Python project that provides a clean and customizable retrieval-augmented generation (RAG) UI for chatting with documents. It sits in the AI and machine learning ecosystem, specifically under AI interaction and interfaces, and is built on Gradio so that the interface itself can be extended or modified. The README frames the project as serving two distinct audiences at once: end users who want to do question answering over their own files, and developers who want to build their own RAG pipeline on top of the framework.

The concrete problem it solves is that a working RAG system normally demands stitching together document parsing, embedding, retrieval, re-ranking, citation rendering and an LLM provider integration before anyone can ask a single question. kotaemon supplies a sane default pipeline and a hosted-style web UI that covers those steps, so a self-hoster can organize files into private or public collections, collaborate on chats, and get answers with citations instead of assembling the same stack from scratch. It requires Python 3.10 or later.

Key capabilities

  • Self-hosted document QA web UI with multi-user login, private and public file collections, and shareable chats.
  • Support for both local LLMs and API providers, including OpenAI, Azure, Ollama and Groq.
  • Hybrid RAG pipeline combining full-text and vector retrieval with re-ranking as the default.
  • Multi-modal document parsing for documents containing figures and tables, selectable in the UI.
  • Citations with relevance scores viewable in an in-browser PDF viewer, plus a warning when retrieval returns low-relevance articles.
  • Complex reasoning support through question decomposition and agent-based methods such as ReAct and ReWOO.
  • Configurable settings UI covering retrieval, generation and prompts, with GraphRAG indexing support noted in the README.

Who uses it and how

  • End users run applications built with kotaemon to perform question answering over personal or team document sets.
  • Developers import kotaemon as a library to build and test their own RAG pipelines against the provided UI.
  • Teams deploy it for shared use with multi-user login and public or private collections.
  • Reviewers and analysts use the in-browser PDF viewer to check a citation and its relevance score against the highlighted source passage.
  • Users with complex or multi-hop questions enable question decomposition or ReAct and ReWOO agents.

Getting started

The README points to simple installation scripts, an online install path, a Colab notebook for local RAG, and two live demos hosted on Hugging Face Spaces. The project targets Python 3.10 or later.

When to use it — and when not to

kotaemon fits users who want a ready default pipeline plus the freedom to swap models and tune prompts, rather than a locked-down hosted product. A self-hoster must operate the full stack themselves, including document storage, the retrieval index and whichever LLM backend is chosen, whether a paid API provider or a local runtime such as Ollama or llama-cpp-python. The README does not specify bundled database or SMTP components, so those requirements should be confirmed against the installation documentation before deployment.

project readme (upstream, from github) — read inline

kotaemon

An open-source clean & customizable RAG UI for chatting with your documents. Built with both end users and developers in mind.

Preview

Cinnamon%2Fkotaemon | Trendshift

Live Demo #1 | Live Demo #2 | Online Install | Colab Notebook (Local RAG)

User Guide | Developer Guide | Feedback | Contact

Python 3.10+ Code style: black docker pull ghcr.io/cinnamon/kotaemon:latest download Featured|HelloGitHub

Introduction

This project serves as a functional RAG UI for both end users who want to do QA on their documents and developers who want to build their own RAG pipeline.

+----------------------------------------------------------------------------+
| End users: Those who use apps built with `kotaemon`.                       |
| (You use an app like the one in the demo above)                            |
|     +----------------------------------------------------------------+     |
|     | Developers: Those who built with `kotaemon`.                   |     |
|     | (You have `import kotaemon` somewhere in your project)         |     |
|     |     +----------------------------------------------------+     |     |
|     |     | Contributors: Those who make `kotaemon` better.    |     |     |
|     |     | (You make PR to this repo)                         |     |     |
|     |     +----------------------------------------------------+     |     |
|     +----------------------------------------------------------------+     |
+----------------------------------------------------------------------------+

For end users

  • Clean & Minimalistic UI: A user-friendly interface for RAG-based QA.
  • Support for Various LLMs: Compatible with LLM API providers (OpenAI, AzureOpenAI, Cohere, etc.) and local LLMs (via ollama and llama-cpp-python).
  • Easy Installation: Simple scripts to get you started quickly.

For developers

  • Framework for RAG Pipelines: Tools to build your own RAG-based document QA pipeline.
  • Customizable UI: See your RAG pipeline in action with the provided UI, built with Gradio .
  • Gradio Theme: If you use Gradio for development, check out our theme here: kotaemon-gradio-theme.

Key Features

  • Host your own document QA (RAG) web-UI: Support multi-user login, organize your files in private/public collections, collaborate and share your favorite chat with others.

  • Organize your LLM & Embedding models: Support both local LLMs & popular API providers (OpenAI, Azure, Ollama, Groq).

  • Hybrid RAG pipeline: Sane default RAG pipeline with hybrid (full-text & vector) retriever and re-ranking to ensure best retrieval quality.

  • Multi-modal QA support: Perform Question Answering on multiple documents with figures and tables support. Support multi-modal document parsing (selectable options on UI).

  • Advanced citations with document preview: By default the system will provide detailed citations to ensure the correctness of LLM answers. View your citations (incl. relevant score) directly in the in-browser PDF viewer with highlights. Warning when retrieval pipeline return low relevant articles.

  • Support complex reasoning methods: Use question decomposition to answer your complex/multi-hop question. Support agent-based reasoning with ReAct, ReWOO and other agents.

  • Configurable settings UI: You can adjust most important aspects of retrieval & generation process on the UI (incl. prompts).

  • Extensible: Being built on Gradio, you are free to customize or add any UI elements as you like. Also, we aim to support multiple strategies for document indexing & retrieval. GraphRAG indexing pipeline is provided as an example.

Preview

Installation

If you are not a developer and just want to use the app, please check out our easy-to-follow User Guide. Download the .zip file from the latest release to get all the newest features and bug fixes.

System requirements

  1. Python >= 3.10
  2. Docker: optional, if you install with Docker
  3. Unstructured if you want to process files other than .pdf, .html, .mhtml, and .xlsx documents. Installation steps differ depending on your operating system. Please visit the link and follow the specific instructions provided there.

With Docker (recommended)

  1. We support both lite & full version of Docker images. With full version, the extra packages of unstructured will be installed, which can support additional file types (.doc, .docx, ...) but the cost is larger docker image size. For most users, the lite image should work well in most cases.

    • To use the full version.

      docker run \
      -e GRADIO_SERVER_NAME=0.0.0.0 \
      -e GRADIO_SERVER_PORT=7860 \
      -v ./ktem_app_data:/app/ktem_app_data \
      -p 7860:7860 -it --rm \
      ghcr.io/cinnamon/kotaemon:main-full
      
    • To use the full version with bundled Ollama for local / private RAG.

      # change image name to
      docker run  ghcr.io/cinnamon/kotaemon:main-ollama
      
    • To use the lite version.

     # change image name to
     docker run  ghcr.io/cinnamon/kotaemon:main-lite
    
  2. We currently support and test two platforms: linux/amd64 and linux/arm64 (for newer Mac). You can specify the platform by passing --platform in the docker run command. For example:

    # To run docker with platform linux/arm64
    docker run \
    -e GRADIO_SERVER_NAME=0.0.0.0 \
    -e GRADIO_SERVER_PORT=7860 \
    -v ./ktem_app_data:/app/ktem_app_data \
    -p 7860:7860 -it --rm \
    --platform linux/arm64 \
    ghcr.io/cinnamon/kotaemon:main-lite
    
  3. Once everything is set up correctly, you can go to http://localhost:7860/ to access the WebUI.

  4. We use GHCR to store docker images, all images can be found here.

Without Docker

  1. Clone the repository:

    git clone https://github.com/Cinnamon/kotaemon
    cd kotaemon
    
  2. Setup the environment:

  • Option 1: Using uv (recommended)

    uv sync --python 3.10
    source .venv/bin/activate
    
  • Option 2: Using conda

    conda create -n kotaemon python=3.10
    conda activate kotaemon
    
    pip install -e "libs/kotaemon[all]"
    pip install -e "libs/ktem"
    
  1. Create a .env file in the root of this project. Use .env.example as a template.

    The .env file is there to serve use cases where users want to pre-config the models before starting up the app (e.g. deploy the app on HF hub). The file will only be used to populate the db once upon

readme truncated — read the full docs on github

Frequently asked questions

Is kotaemon free to use?

kotaemon 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 kotaemon do?

An open-source RAG-based tool for chatting with your documents.

What is kotaemon written in?

kotaemon is primarily written in Python. Its source is publicly available at https://github.com/Cinnamon/kotaemon, and it has 25,769 GitHub stars.