CodeRecall/README.md

2.9 KiB
Raw Blame History

Heres a polished README.md for your project CodeRecall:


🧠 CodeRecall

Context-aware local AI assistant for developers using Ollama, ChromaDB, and VS Codes Continue extension.

CodeRecall ingests your entire codebase — including Git history and diffs — into a local vector database (ChromaDB), enabling RAG-augmented queries via Ollama models right inside VS Code.

No cloud APIs. No latency. Full control.


🚀 Features

  • 🔍 Semantic code search across multiple languages
  • 📜 Git commit + diff embedding for code evolution awareness
  • 🤖 RAG integration with local Ollama models (e.g. LLaMA 3)
  • 💻 VS Code Continue extension support
  • ⚙️ Configurable with a simple config.ini

🧩 Project Structure

CodeRecall/
├── chroma_ingest.py           # Ingest codebase + Git into ChromaDB
├── chroma_context_provider.py # VS Code Continue context provider
├── config.ini                 # Ollama + Chroma settings
├── chroma-db/                 # ChromaDB persistence directory
└── config.json                # Continue extension config

🔧 Setup

1. Install dependencies

pip install chromadb requests

Make sure you have:

  • 🦙 Ollama installed and running
  • Continue Extension for VS Code
  • 🐙 Git repo initialized (optional but recommended)

2. Configure config.ini

[ollama]
url = http://localhost:11434

[chroma]
persist_directory = ./chroma-db

📥 Ingest your project

python chroma_ingest.py

This loads:

  • Source code in common languages
  • Markdown and text docs
  • Git commit messages and full diffs

🧠 Add as a VS Code Context Provider

config.json for Continue

{
  "models": [
    {
      "title": "LLaMA 3 (Ollama)",
      "provider": "ollama",
      "model": "llama3",
      "apiBase": "http://localhost:11434"
    }
  ],
  "contextProviders": [
    {
      "title": "ChromaDB Search",
      "provider": "custom",
      "path": "./chroma_context_provider.py"
    }
  ]
}

Usage

  1. Launch VS Code.
  2. Open the Continue sidebar.
  3. Set "ChromaDB Search" as your context provider.
  4. Ask your model questions about your codebase, architecture, or commits.

Example prompt:

“How does the Git ingestion pipeline work?”


📌 Notes

  • Default embedding model is nomic-embed-text (via Ollama).
  • Change n_results in chroma_context_provider.py for broader/narrower context.
  • Works offline, no API keys required.

🧪 Roadmap Ideas

  • Add OpenAPI spec ingestion
  • Enable full-text search fallback
  • Support for multi-repo ingestion
  • Optional chunking for large diffs or files

🛡 License

Creative Commons Attribution-NonCommercial 4.0 International license.