Inspiration
The idea came from tools like GitHub Copilot that can understand and assist with code, but I wanted to build something that works fully offline, lightweight, and private. The goal was to create a semantic search tool that can not only navigate through entire codebases and repositories but also search, retrieve, and explain code without relying on external services.
What it does
The project scans through an entire codebase, splits files into manageable chunks, and generates embeddings using all-minilm. These embeddings are stored in FAISS for efficient semantic search. When a developer asks a question or gives a prompt, the tool retrieves the most relevant code chunks and passes them to gpt-oss for reasoning using the RAG method.
The frontend is a CLI built in Go with the Bubbles TUI framework, which displays responses in a clean, markdown-rendered interface.
How we built it
- Frontend (CLI): Built using Golang and the Bubbles TUI framework for a terminal-based user experience.
- Core processing: Implemented in Python with LangChain, handling text splitting, embedding, and retrieval.
- Embedding: Done locally using all-minilm:33b for efficiency and lower memory usage.
- Vector storage & search: Managed by FAISS, enabling fast semantic lookups.
- Reasoning: Handled by gpt-oss, chosen for its lightweight memory requirements compared to larger models.
Challenges we ran into
- Performance tuning to handle different codebase sizes efficiently.
- Managing unwanted files and folders during scanning to avoid noisy embeddings.
- Designing a smooth and visually clean TUI while keeping it minimal and markdown-compatible.
- Time constraints limited advanced optimizations and additional feature development.
Accomplishments that we're proud of
- Successfully built a fully local semantic search system for codebases.
- Achieved scanning, embedding, and reasoning for small codebases within 1–1.5 minutes.
- Developed a beautiful, markdown-rendered TUI that makes interaction with AI responses simple and intuitive.
- Maintained a lightweight approach by choosing gpt-oss and all-minilm for memory efficiency.
What we learned
- How to combine multiple technologies (LangChain, FAISS, all-minilm, gpt-oss, Golang TUI) into a cohesive local-first workflow.
- The importance of chunking strategies and file filtering in building accurate embeddings.
- Practical trade-offs between performance, memory usage, and accuracy when choosing models and frameworks.
What's next for Semantic Codebase Search
- Docker support to make the tool portable and usable across different environments.
- Advanced file/folder exclusion rules to improve indexing efficiency.
- Adding performance optimizations for handling larger codebases.
- Expanding the feature set to provide a more Copilot-like developer experience while staying fully local.

Log in or sign up for Devpost to join the conversation.