3.9 KiB
3.9 KiB
🧠 CodeRecall
Context-aware local AI assistant for developers using Ollama, LanceDB, and VS Code’s Continue extension.
CodeRecall ingests your entire codebase — including Git history and diffs — into a local vector database (LanceDB), 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/
├── lancedb_ingest.py # Ingest codebase + Git into LanceDB
├── lancedb_context_provider.py # VS Code Continue context provider
├── config.ini.example # Ollama + LanceDB settings
├── lancedb-data/ # LanceDB persistence directory
└── config.yaml.example # Continue extension config
🔧 Setup
It seems you want to update the section 'Install dependencies' in your README.md file.
Here's an updated version of that section:
### 1. Install dependencies
pip install fastapi uvicorn pydantic lancedb ollama
Make sure you have:
- ✨ FastAPI installed
- 🚀 Uvicorn installed as the ASGI server
- 🔥 Pydantic for data modeling and validation
- 💻 Lancedb for vector database operations
- 🦙 Ollama installed and running
- ✅ Continue Extension for VS Code
- 🐙 Git repo initialized (optional but recommended)
2. Configure config.ini
[[ollama]
url = http://localhost:11434
[lancedb]
persist_directory = ./lancedb-data
[s3]
enable = True
bucket_name = my-s3-bucket
access_key_id = my-access-key
secret_access_key = my-secret-key
region = us-east-1
# Optional, if using third party s3 providers
endpoint = http://minio:9000
[server]
host = 0.0.0.0
port = 8080
📥 Ingest your project
python lancedb_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.yaml
for Continue
name: Local Assistant
version: 1.0.0
schema: v1
models:
- name: Ollama Autodetect
provider: ollama
model: AUTODETECT
apiBase: http://localhost:11434
- name: Ollama Autocomplete
provider: ollama
model: qwen2.5-coder:1.5b-base
apiBase: http://localhost:11434
roles:
- autocomplete
- name: Nomic Embed Text
provider: ollama
model: nomic-embed-text
apiBase: http://localhost:11434
roles:
- embed
context:
- provider: code
- provider: docs
- provider: diff
- provider: terminal
- provider: problems
- provider: folder
- provider: codebase
# LanceDB Context Provider
- provider: http
params:
url: http://localhost/retrieve
✨ Usage
- Launch VS Code.
- Open the Continue sidebar.
- Set
"@HTTP"
as your context provider. - 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
inlancedb_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.