VectorCode is a code repository indexing tool. It helps you build 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).
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. With
VectorCode, you can easily (and programmatically) inject task-relevant context
from the project into the prompt. This significantly improves the quality of the
model output and reduce hallucination.
[!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.
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.
.gitignore
;.git
or a custom
.vectorcode.json
) that enhances automatic project-root detection.
Implemented project-level .vectorcode/
and .git
as root anchordrop
and vectorise
again);