# CodeRAG 🔍

![Demo of CodeRAG](./img/demo.webm)
A fully local Retrieval Augmented Generation (RAG) tool for enhancing software development workflows through contextual AI assistance.

## Overview

CodeRAG integrates directly into Neovim as a plugin, creating a seamless development experience with AI assistance that respects your privacy. It indexes your workspace files into a persistent Chroma vector store and exposes an interface to query locally running Ollama models with prompts augmented by relevant context from your code.

## Features

- **Fully Local Operation**: All operations run on your machine without sending code to external services
- **Contextual Understanding**: Uses RAG to provide AI responses informed by your codebase
- **Neovim Integration**: Designed to work within your existing editor workflow
- **Persistent Knowledge**: Maintains a vector store of your codebase for quick retrieval
- **Ollama Compatibility**: Works with any model available through Ollama


## Usage

```bash
poetry run code-rag --help
```

## Roadmap

- [x] Basic RAG implementation
- [ ] Neovim UI components
- [ ] Full Neovim integration with RAG tool
- [ ] Agent implementation for extended capabilities
- [ ] Performance optimizations for large codebases
- [ ] Support for project-specific configuration


## License

GPLv2 license

## Acknowledgements

- Built with [Ollama](https://github.com/ollama/ollama)
- Vector storage provided by [Chroma](https://github.com/chroma-core/chroma)
