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
foomethod in thebarclass, following the patterns seen in other subclasses ofbaz.
- Use
@Folderto 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
@Folderinstead 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
foofunction is calledâ - âReview our codebase and find any spelling mistakesâ
- âFind everywhere where the
- Refactoring tasks
- âAdd a new parameter to the
barfunction 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â.