$git clone https://github.com/Davidyz/VectorCodeVectorCode 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 that provides a set of APIs for yo
| 1 | # VectorCode |
| 2 | |
| 3 | [](https://codecov.io/github/Davidyz/VectorCode) |
| 4 | [](https://github.com/Davidyz/VectorCode/actions/workflows/test_and_cov.yml) |
| 5 | [](https://pypi.org/project/vectorcode/) |
| 6 | |
| 7 | VectorCode is a code repository indexing tool. It helps you build better prompt |
| 8 | for your coding LLMs by indexing and providing information about the code |
| 9 | repository you're working on. This repository also contains the corresponding |
| 10 | neovim plugin that provides a set of APIs for you to build or enhance AI plugins, |
| 11 | and integrations for some of the popular plugins. |
| 12 | |
| 13 | > [!NOTE] |
| 14 | > This project is in beta quality and is undergoing rapid iterations. |
| 15 | > I know there are plenty of rooms for improvements, and any help is welcomed. |
| 16 | |
| 17 | <!-- mtoc-start --> |
| 18 | |
| 19 | * [Why VectorCode?](#why-vectorcode) |
| 20 | * [Documentation](#documentation) |
| 21 | * [About Versioning](#about-versioning) |
| 22 | * [TODOs](#todos) |
| 23 | * [Credit](#credit) |
| 24 | * [Special Thanks](#special-thanks) |
| 25 | * [Star History](#star-history) |
| 26 | |
| 27 | <!-- mtoc-end --> |
| 28 | |
| 29 | ## Why VectorCode? |
| 30 | LLMs usually have very limited understanding about close-source projects, projects |
| 31 | that are not well-known, and cutting edge developments that have not made it into |
| 32 | releases. Their capabilities on these projects are quite limited. With |
| 33 | VectorCode, you can easily (and programmatically) inject task-relevant context |
| 34 | from the project into the prompt. This significantly improves the quality of the |
| 35 | model output and reduce hallucination. |
| 36 | |
| 37 | [](https://asciinema.org/a/8WP8QJHNAR9lEllZSSx3poLPD?t=3) |
| 38 | |
| 39 | ## Documentation |
| 40 | |
| 41 | > [!NOTE] |
| 42 | > The documentation on the `main` branch reflects the code on the latest commit. |
| 43 | > To check for the documentation for the version you're using, you can [check out |
| 44 | > the corresponding tags](https://github.com/Davidyz/VectorCode/tags). |
| 45 | |
| 46 | - For the setup and usage of the command-line tool, see [the CLI documentation](./docs/cli.md); |
| 47 | - For neovim users, after you've gone through the CLI documentation, please refer to |
| 48 | [the neovim plugin documentation](./docs/neovim/README.md) (and optionally the [lua API reference](./docs/neovim/api_references.md)) |
| 49 | for further instructions. |
| 50 | - Additional resources: |
| 51 | - the [wiki](https://github.com/Davidyz/VectorCode/wiki) for extra tricks and |
| 52 | tips that will help you get the most out of VectorCode; |
| 53 | - the [discussions](https://github.com/Davidyz/VectorCode/discussions) where |
| 54 | you can ask general questions and share your cool usages about VectorCode. |
| 55 | - If you're feeling adanvturous, feel free to check out |
| 56 | [the pull requests](https://github.com/Davidyz/VectorCode/pulls) for |
| 57 | WIP features. |
| 58 | |
| 59 | If you're trying to contribute to this project, take a look at [the contribution |
| 60 | guide](./docs/CONTRIBUTING.md), which contains information about some basic |
| 61 | guidelines that you should follow and tips that you may find helpful. |
| 62 | |
| 63 | ### About Versioning |
| 64 | |
| 65 | This project follows an adapted semantic versioning: |
| 66 | |
| 67 | - Until 1.0.0 is released, the _major version number_ stays 0 which indicates that |
| 68 | this project is still in early stage, and features/interfaces may change from |
| 69 | time to time; |
| 70 | - The _minor version number_ indicates __breaking changes__. When I decide to remove a |
| 71 | feature/config option, the actual removal will happen when I bump the minor |
| 72 | version number. Therefore, if you want to avoid breaking a working setup, you |
| 73 | may choose to use a version constraint like `"vectorcode<0.7.0"`; |
| 74 | - The _patch version number_ indicates __non-breaking changes__. This can include new |
| 75 | features and bug fixes. When I decide to deprecate things, I will make a new |
| 76 | release with bumped patch version. Until the minor version number is bumped, |
| 77 | the deprecated feature will still work but you'll see a warning. I |