VectorCode
A code repository indexing tool to supercharge your LLM experience.
Davidyz
README
VectorCode
VectorCode is a code repository indexing tool. It helps you write better prompt for your coding LLMs by indexing and providing information about the code repository you're working on. This repository also contains the corresponding neovim plugin because that's what I used to write this tool.
[!NOTE] This project is in beta quality and only implements very basic retrieval and embedding functionalities. There are plenty of rooms for improvements and any help is welcomed.
[!NOTE] Chromadb, the vector database backend behind this project, supports multiple embedding engines. I developed this tool using SentenceTransformer, but if you encounter any issues with a different embedding function, please open an issue (or even better, a pull request :D).
<!-- mtoc-start -->
<!-- mtoc-end -->
Why VectorCode?
LLMs usually have very limited understanding about close-source projects, projects
that are not well-known, and cutting edge developments that have not made it into
releases. Their capabilities on these projects are quite limited. Take my little
toy sudoku-solving project as an example: When I wrote the first few lines and
want the LLM to fill in the list of solvers that I implemented in
solver_candidates
, without project context, the completions are simply random
guesses that might be part of another sudoku project:
But with RAG context provided by VectorCode, my completion LLM was able to
provide completions that I actually implemented:
This makes the completion results far more usable.
A similar strategy
is implemented in continue, a popular AI completion
and chat plugin available on VSCode and JetBrain products.
Documentation
[!NOTE] The documentation on the
main
branch reflects the code on the latest commit (apologies if I forget to update the docs, but this will be what I aim for). To check for the documentation for the version you're using, you can check out the corresponding tags.
- For the setup and usage of the command-line tool, see the CLI documentation;
- For neovim users, after you've gone through the CLI documentation, please refer to the neovim plugin documentation for further instructions.
If you're trying to contribute to this project, take a look at the contribution guide, which contains information about some basic guidelines that you should follow and tips that you may find helpful.
TODOs
- [x] query by ~file path~ excluded paths;
- [x] chunking support;
- [x] add metadata for files;
- [x] chunk-size configuration;
- [x] smarter chunking (semantics/syntax based), implemented with py-tree-sitter and tree-sitter-language-pack;
- [x] configurable document selection from query results.
- [x] ~NeoVim Lua API with cache to skip the retrieval when a project has not been indexed~ Returns empty array instead;
- [x] job pool for async caching;
- [x] persistent-client;
- [-] proper remote Chromadb support (with authentication, etc.);
- [x] respect
.gitignore
; - [x] implement some sort of project-root anchors (such as
.git
or a custom.vectorcode.json
) that enhances automatic project-root detection. Implemented project-level.vectorcode/
and.git
as root anchor - [ ] ability to view and delete files in a collection (atm you can only
drop
andvectorise
again); - [x] joint search (kinda, using codecompanion.nvim/MCP).
Credit
- Thank @milanglacier (and minuet-ai.nvim) for the support when this project was still in early stage;
- Thank @olimorris for the help (personally and from codecompanion.nvim) when this project made initial attempts at tool-calling;
- Thank @ravitemer for the help to interface VectorCode with MCP.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.