--- # 🧠 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 ### 1. Install dependencies ```bash pip install lancedb ``` Make sure you have: - πŸ¦™ [Ollama](https://ollama.com/) installed and running - βœ… [Continue Extension](https://marketplace.visualstudio.com/items?itemName=Continue.continue) for VS Code - πŸ™ Git repo initialized (optional but recommended) ### 2. Configure `config.ini` ```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 ```bash 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 ```yaml 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 1. Launch VS Code. 2. Open the Continue sidebar. 3. Set `"@HTTP"` 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 `lancedb_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.