Metadata-Version: 2.4
Name: axon-rag
Version: 0.2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Dist: numpy>=1.20.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: sentence-transformers>=3.0.0
Requires-Dist: tf-keras>=2.0.0
Requires-Dist: ollama>=0.1.0
Requires-Dist: openai>=1.0.0
Requires-Dist: google-genai>=1.4.0
Requires-Dist: rank-bm25>=0.2.2
Requires-Dist: httpx>=0.25.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: tqdm>=4.66.0
Requires-Dist: fastapi>=0.100.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: uvicorn>=0.22.0
Requires-Dist: python-docx>=1.0.0
Requires-Dist: python-pptx>=0.6.18
Requires-Dist: pymupdf>=1.24.0
Requires-Dist: pypdf>=4.0.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: pyarrow>=10.0.0
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: tiktoken>=0.7.0
Requires-Dist: lancedb>=0.8.0
Requires-Dist: tqdb>=0.2.1
Requires-Dist: streamlit>=1.30.0 ; extra == 'all'
Requires-Dist: chromadb>=0.4.0 ; extra == 'all'
Requires-Dist: qdrant-client>=1.7.0,<2.0.0 ; extra == 'all'
Requires-Dist: fastembed>=0.1.0,<1.0.0 ; extra == 'all'
Requires-Dist: networkx>=3.0 ; extra == 'all'
Requires-Dist: leidenalg>=0.11.0 ; extra == 'all'
Requires-Dist: igraph>=1.0.0 ; extra == 'all'
Requires-Dist: gliner>=0.2.0 ; extra == 'all'
Requires-Dist: llmlingua>=0.2.0 ; extra == 'all'
Requires-Dist: transformers>=4.20.0 ; extra == 'all'
Requires-Dist: ebooklib>=0.18 ; extra == 'all'
Requires-Dist: striprtf>=0.0.26 ; extra == 'all'
Requires-Dist: extract-msg>=0.28.0 ; extra == 'all'
Requires-Dist: chromadb>=0.4.0 ; extra == 'chroma'
Requires-Dist: pytest>=7.4.0,<8.0.0 ; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0,<1.0.0 ; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0,<5.0.0 ; extra == 'dev'
Requires-Dist: black==23.12.1 ; extra == 'dev'
Requires-Dist: ruff>=0.1.0,<1.0.0 ; extra == 'dev'
Requires-Dist: mypy>=1.5.0,<2.0.0 ; extra == 'dev'
Requires-Dist: pre-commit>=3.4.0,<4.0.0 ; extra == 'dev'
Requires-Dist: chromadb>=0.4.0 ; extra == 'dev'
Requires-Dist: deepeval>=0.21.0 ; extra == 'eval'
Requires-Dist: fastembed>=0.1.0,<1.0.0 ; extra == 'fastembed'
Requires-Dist: gliner>=0.2.0 ; extra == 'gliner'
Requires-Dist: networkx>=3.0 ; extra == 'graphrag'
Requires-Dist: leidenalg>=0.11.0 ; extra == 'graphrag'
Requires-Dist: igraph>=1.0.0 ; extra == 'graphrag'
Requires-Dist: llmlingua>=0.2.0 ; extra == 'llmlingua'
Requires-Dist: ebooklib>=0.18 ; extra == 'loaders'
Requires-Dist: striprtf>=0.0.26 ; extra == 'loaders'
Requires-Dist: extract-msg>=0.28.0 ; extra == 'loaders'
Requires-Dist: qdrant-client>=1.7.0,<2.0.0 ; extra == 'qdrant'
Requires-Dist: transformers>=4.20.0 ; extra == 'rebel'
Requires-Dist: streamlit>=1.30.0 ; extra == 'ui'
Provides-Extra: all
Provides-Extra: chroma
Provides-Extra: dev
Provides-Extra: eval
Provides-Extra: fastembed
Provides-Extra: gliner
Provides-Extra: graphrag
Provides-Extra: llmlingua
Provides-Extra: loaders
Provides-Extra: qdrant
Provides-Extra: rebel
Provides-Extra: ui
License-File: LICENSE
Summary: General-purpose open-source RAG engine with multi-LLM, hybrid retrieval, GraphRAG, and MCP support
Keywords: rag,llm,embeddings,vector-search,knowledge-base,mcp,ollama,graphrag
Author: Open Source Contributor
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: API Reference, https://github.com/jyunming/studio_brain_open/blob/main/docs/API_REFERENCE.md
Project-URL: Advanced RAG, https://github.com/jyunming/studio_brain_open/blob/main/docs/ADVANCED_RAG.md
Project-URL: AxonStore Guide, https://github.com/jyunming/studio_brain_open/blob/main/docs/AXON_STORE.md
Project-URL: Code RAG Guide, https://github.com/jyunming/studio_brain_open/blob/main/docs/CODE_RAG_GUIDE.md
Project-URL: Documentation, https://github.com/jyunming/studio_brain_open/tree/main/docs
Project-URL: Getting Started, https://github.com/jyunming/studio_brain_open/blob/main/docs/GETTING_STARTED.md
Project-URL: Governance Console, https://github.com/jyunming/studio_brain_open/blob/main/docs/GOVERNANCE_CONSOLE.md
Project-URL: Homepage, https://github.com/jyunming/studio_brain_open
Project-URL: Issue Tracker, https://github.com/jyunming/studio_brain_open/issues
Project-URL: MCP Tools, https://github.com/jyunming/studio_brain_open/blob/main/docs/MCP_TOOLS.md
Project-URL: Offline Guide, https://github.com/jyunming/studio_brain_open/blob/main/docs/OFFLINE_GUIDE.md
Project-URL: Packaging & Release, https://github.com/jyunming/studio_brain_open/blob/main/docs/packaging_release.md
Project-URL: Release Notes, https://github.com/jyunming/studio_brain_open/releases
Project-URL: Repository, https://github.com/jyunming/studio_brain_open
Project-URL: Security, https://github.com/jyunming/studio_brain_open/blob/main/SECURITY.md
Project-URL: Setup Guide, https://github.com/jyunming/studio_brain_open/blob/main/docs/SETUP.md

# axon-rag

**Your documents, answerable. On your hardware.**

Drop in PDFs, code, spreadsheets, or URLs — ask anything, get cited answers from a local LLM. Nothing leaves your machine.

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/jyunming/Axon/blob/main/LICENSE)
[![PyPI version](https://img.shields.io/pypi/v/axon-rag.svg)](https://pypi.org/project/axon-rag/)

---

![Axon REPL](https://raw.githubusercontent.com/jyunming/Axon/main/docs/assets/repl-animation.gif)

---

## Why Axon?

Most RAG tools make you choose between cloud power and data privacy. Axon can run entirely on your hardware — full capability, zero egress in local-only mode.

- **Private by default** — by default, inference runs locally via Ollama. No API key required, no upload, no telemetry. Cloud providers (OpenAI, Gemini, Grok, vLLM, GitHub Copilot) are also supported via API keys.
- **Ingest anything** — 54 file formats (PDF, DOCX, PPTX, Jupyter, code, images, URLs) with SHA-256 dedup.
- **Works in your tools** — `@axon` in Copilot Chat, MCP server for Claude Code / Codex / Gemini CLI / Cursor, Graph panel in VS Code.
- **Built for teams** — share your knowledge base with signed, revocable read-only keys.
- **Production-grade retrieval** — hybrid search, reranking, HyDE, multi-query expansion, RAPTOR, GraphRAG.

---

## Install

```bash
pip install axon-rag
```

Requires Python 3.10+. For local inference with the default config you'll also need [Ollama](https://ollama.com) running locally; cloud providers (OpenAI, Gemini, Grok, vLLM, GitHub Copilot) work via API keys and do not require Ollama.

### Optional extras

```bash
pip install axon-rag[ui]        # Streamlit web UI (axon-ui)
pip install axon-rag[chroma]    # ChromaDB vector store
pip install axon-rag[qdrant]    # Qdrant vector store
pip install axon-rag[graphrag]  # GraphRAG (networkx + leidenalg)
pip install axon-rag[loaders]   # Extra file loaders (EPUB, RTF, email)
pip install axon-rag[all]       # Everything above
```

---

## Quick Start

```bash
# Pull a model (first time only)
ollama pull llama3.2

# Launch the interactive REPL
axon

# Ingest a file or folder
axon ingest ~/docs/myreport.pdf
axon ingest ~/projects/myrepo/

# Ask a question
axon query "What are the key findings?"
```

---

## Entry Points

| Command | What it does |
|---------|-------------|
| `axon` | Interactive REPL — day-to-day exploration |
| `axon-api` | FastAPI REST server on port 8000 |
| `axon-mcp` | MCP stdio server — 30 tools for Claude Code, Codex, Gemini CLI, Cursor |
| `axon-ui` | Streamlit web UI on port 8501 (requires `[ui]` extra) |
| `axon-ext` | Install the bundled VS Code extension |

---

## VS Code Extension

![Axon Copilot](https://raw.githubusercontent.com/jyunming/Axon/main/docs/assets/AxonCopilot.gif)

Install the bundled extension to get the `@axon` chat participant, Knowledge Graph panel, Code Graph panel, and Governance dashboard directly inside VS Code alongside GitHub Copilot:

```bash
axon-ext
```

![Axon VS Code Graph Panel](https://raw.githubusercontent.com/jyunming/Axon/main/docs/assets/vscode-graph-panel.png)

---

## MCP Server

Connect any MCP-compatible agent to your local knowledge base:

```json
{
  "servers": {
    "axon": {
      "command": "axon-mcp"
    }
  }
}
```

30 tools available: ingest, query, search, project management, graph operations, sharing, and more.

---

## Configuration

On first run, Axon creates `~/.config/axon/config.yaml`. Key settings:

```yaml
llm:
  provider: ollama          # ollama | openai | gemini | grok | vllm | ollama_cloud | github_copilot
  model: llama3.2
  base_url: http://localhost:11434

embedding:
  provider: sentence_transformers
  model: BAAI/bge-small-en-v1.5

rag:
  top_k: 5
  hybrid: true
  rerank: false
  hyde: false
```

---

## Documentation

Full documentation is available on GitHub:

- [Getting Started](https://github.com/jyunming/Axon/blob/main/docs/GETTING_STARTED.md) — first-time walkthrough
- [Setup Guide](https://github.com/jyunming/Axon/blob/main/docs/SETUP.md) — install, models, VS Code, MCP
- [Admin Reference](https://github.com/jyunming/Axon/blob/main/docs/ADMIN_REFERENCE.md) — every endpoint, command, and config option
- [Advanced RAG](https://github.com/jyunming/Axon/blob/main/docs/ADVANCED_RAG.md) — HyDE, RAPTOR, GraphRAG, CRAG-Lite
- [Troubleshooting](https://github.com/jyunming/Axon/blob/main/docs/TROUBLESHOOTING.md) — common errors and fixes

---

## License

MIT — see [LICENSE](https://github.com/jyunming/Axon/blob/main/LICENSE)

