$git clone https://github.com/SPThole/CoexistAICoexistAI is a modular, developer-friendly research assistant framework. It enables you to build, search, summarize, and automate research workflows using LLMs, web search, Reddit, YouTube, git and mapping tools—all with simple API calls or Python functions.
| 1 | # CoexistAI |
| 2 | |
| 3 | CoexistAI is a modular, developer-friendly research assistant framework. It enables you to build, search, summarize, and automate research workflows using LLMs, web search, Reddit, YouTube, git and mapping tools—all with simple API calls or Python functions. |
| 4 | |
| 5 | <p align="center"> |
| 6 | <img src="artifacts/logo.jpeg" alt="CoexistAI Logo" width="200"/> |
| 7 | </p> |
| 8 | |
| 9 | ## 🎙️ New Features & Updates |
| 10 | - 🔥 _Docker Installation available (Thanks for all the feedback, hope this makes installations easy)_. For a containerized setup with Docker, follow the instructions in [README.docker.md](README.docker.md). |
| 11 | - **Text → Podcast**: Instantly turn written content into engaging podcast episodes—ideal for on-the-go listening or repurposing articles/notes/blogs. Example: Converted [this article](https://www.theatlantic.com/newsletters/archive/2025/08/ai-high-school-college/684057/) to a podcast. **[Listen here](output/podcasts/podcast_58fc33d6.wav)** |
| 12 | - **Text → Speech**: Convert text to high-quality audio using advanced TTS. Check [Notebook](coexist_tutorial.ipynb) for examples. |
| 13 | - **Flexible Integration**: Generate audio files via FastAPI or MCP—integrate with agents or use standalone. |
| 14 | - **Direct Location Search**: Search for any place, not just routes. |
| 15 | - **Advanced Reddit Search**: Custom phrases with BM25 ranking for sharper discovery. |
| 16 | - **YouTube Power-Up**: Search/summarize videos or URLs with custom prompts. |
| 17 | - **File/Folder Exploration**: Explore local folders/files with vision support for images (.png, .jpg, etc.). |
| 18 | - **Sharper Web Search**: More focused, actionable results. |
| 19 | - **MCP Support Everywhere**: Full integration with LM Studio and other MCP hosts. [See Guide](README_MCP.md) |
| 20 | - **GitHub & Local Repo Explorer**: Ask questions about codebases (GitHub or local). |
| 21 | |
| 22 | ## 🚀 Features |
| 23 | |
| 24 | - **Web Explorer**: Query the web, summarize results, and extract context using LLMs. |
| 25 | - **Reddit Explorer**: Fetch and summarize reddit via search phrase or subreddit focused queries |
| 26 | - **YouTube Transcript Explorer**: Search youtube with search phrases and summarise/QA any video |
| 27 | - **Map Explorer**: Generate maps, explore routes, locations with points of interest like hotels, cafes near given locations. |
| 28 | - **Github Explorer**: Explore/summarise/explain/QA any github or even local git codebases |
| 29 | - **Pluggable LLMs and Embedders**: Use any LLMs Google Gemini, OpenAI, Ollama, and any embedders |
| 30 | - **Async & Parallel**: Fast, scalable, and robust asynchronous execution. |
| 31 | - **Notebook & API Ready**: Use as a Python library or via a FAST API. |
| 32 | - **MCP ready**: Spins up the MCP server on the fly along with FAST API server |
| 33 | |
| 34 | --- |
| 35 | |
| 36 | ## 🛠️ Installation |
| 37 | **Prerequisite:** Make sure Docker is installed and the Docker daemon is running. |
| 38 | |
| 39 | ### Method 1: Docker (Recommended) New 🔥 |
| 40 | For a containerized setup with Docker, follow the instructions in [README.docker.md](README.docker.md). This method uses Method A (helper script) to automate the process and provides an Admin UI for easy configuration. |
| 41 | |
| 42 | ### Method 2: Local Setup |
| 43 | 1. **Clone the repository:** |
| 44 | ```sh |
| 45 | git clone https://github.com/SPThole/CoexistAI.git coexistai |
| 46 | cd coexistai |
| 47 | ``` |
| 48 | |
| 49 | 2. **Configure your model and embedding settings:** |
| 50 | |
| 51 | - [NEW] Edit `config/model_config.json` to set your preferred LLM and embedding model. |
| 52 | - Edit above file to set your preferred SearxNG host and port (if needed) |
| 53 | - Add LLM and Embedder API Key (for google mode both would be same) |
| 54 | - Example (for full local mode): |
| 55 | |
| 56 | ```json |
| 57 | { |
| 58 | "llm_model_name": "jan-nano", |
| 59 | "llm_type": "local", // based on baseurl dict given below |
| 60 | "embed_mode": "infinity_emb", |
| 61 | "embedding_model_name": "nomic-ai/nomic-embed-text-v1", |
| 62 | "llm_kwargs": { |
| 63 | "temperature": 0.1, |
| 64 | "max_tokens": null, |
| 65 | "timeout": null, |
| 66 | "max_retries": 2 |
| 67 | }, |
| 68 | "embed_kwargs": {}, |
| 69 | "llm_api_key": "dummy", |
| 70 | "HOST_APP": "localhost", |
| 71 | "PORT_NUM_APP": 8000, |
| 72 | "HOST_SEARXNG": "localhost", |
| 73 | "PORT_NUM_SEARXNG": 8080, |
| 74 | "openai_compatibl |