This feature is deprecated. The
@Codebase
context provider has been deprecated in favor of a more integrated approach to codebase awareness. Please refer to our Guide on Making Agent Mode Aware of Codebases and Documentation for the recommended approach.Migration Guide
If youâre currently using@Codebase
or @Folder
context providers, please migrate to the new approach outlined in our codebase and documentation awareness guide. The new approach provides:
- Better integration with Continueâs Agent mode features
- More intelligent context selection
- Improved performance and accuracy
Legacy Documentation
Below is the original documentation for the@Codebase
context provider, preserved for reference
Continue indexes your codebase so that it can later automatically pull in the most relevant context from throughout your workspace. This is done via a combination of embeddings-based retrieval and keyword search. By default, all embeddings are calculated locally using transformers.js
and stored locally in ~/.continue/index
.
Note:
transformers.js
cannot be used in JetBrains IDEs. However, you can
select a different embeddings model from the list
here.How to Use @Codebase and @Folder Context Providers
Currently, the codebase retrieval feature is available as the âcodebaseâ and âfolderâ context providers. You can use them by typing@Codebase
or @Folder
in the input box, and then asking a question. The contents of the input box will be compared with the embeddings from the rest of the codebase (or folder) to determine relevant files.
When @Codebase Context Provider Is Useful
Here are some common use cases where it can be useful:- Asking high-level questions about your codebase
- âHow do I add a new endpoint to the server?â
- âDo we use VS Codeâs CodeLens feature anywhere?â
- âIs there any code written already to convert HTML to markdown?â
- Generate code using existing samples as reference
- âGenerate a new React component with a date picker, using the same patterns as existing componentsâ
- âWrite a draft of a CLI application for this project using Pythonâs argparseâ
- âImplement the
foo
method in thebar
class, following the patterns seen in other subclasses ofbaz
.
- Use
@Folder
to ask questions about a specific folder, increasing the likelihood of relevant results- âWhat is the main purpose of this folder?â
- âHow do we use VS Codeâs CodeLens API?â
- Or any of the above examples, but with
@Folder
instead of@Codebase
When @Codebase Context Provider Is Not Useful
Here are use cases where it is not useful:- When you need the LLM to see literally every file in your codebase
- âFind everywhere where the
foo
function is calledâ - âReview our codebase and find any spelling mistakesâ
- âFind everywhere where the
- Refactoring tasks
- âAdd a new parameter to the
bar
function and update usagesâ
- âAdd a new parameter to the
How to Configure @Codebase Context Provider Settings
There are a few options that let you configure the behavior of the@codebase
context provider, which are the same for the @folder
context provider:
- YAML
- JSON
config.yaml
nRetrieve
Number of results to initially retrieve from vector database (default: 25)
nFinal
Final number of results to use after re-ranking (default: 5)
useReranking
Whether to use re-ranking, which will allow initial selection of nRetrieve
results, then will use an LLM to select the top nFinal
results (default: true)
How to Ignore Files During Indexing
Continue respects.gitignore
files in order to determine which files should not be indexed. If youâd like to exclude additional files, you can add them to a .continueignore
file, which follows the exact same rules as .gitignore
.
Continue also supports a global .continueignore
file that will be respected for all workspaces, which can be created at ~/.continue/.continueignore
.
If you want to see exactly what files Continue has indexed, the metadata is stored in ~/.continue/index/index.sqlite
. You can use a tool like DB Browser for SQLite to view the tag_catalog
table within this file.
If you need to force a refresh of the index, reload the VS Code window with cmd/ctrl + shift + p + âReload Windowâ.