Rules are used to provide instructions to the model for Chat, Edit, and Agent requests.
Rules provide instructions to the model for Chat, Edit, and Agent requests.
Rules are not included in autocomplete or apply.
You can view the current rules by clicking the pen icon above the main toolbar:
To form the system message, rules are joined with new lines, in the order they appear in the toolbar. This includes the base chat system message (see below).
Below is a quick example of setting up a new rule file:
.continue/rules
at the top level of your workspacepirates-rule.md
to this folder.pirates-rule.md
and save.Now test your rules by asking a question about a file in chat.
Rules can be added locally using the “Add Rules” button while viewing the Local Assistant’s rules.
Automatically create local rule blocks: When in Agent mode, you can prompt the agent to create a rule for you using the create_rule_block
tool if enabled.
For example, you can say “Create a rule for this”, and a rule will be created for you in .continue/rules
based on your conversation.
Rules can also be added to an Assistant on the Continue Hub.
Explore available rules here, or create your own in the Hub.
Rules were originally defined in YAML format (demonstrated below), but we introduced Markdown for easier editing. While both are still supported, we recommend Markdown.
Rules blocks can be simple text, written in YAML configuration files, or as Markdown (.md
) files. They can have the following properties:
name
(required for YAML): A display name/title for the ruleglobs
(optional): When files are provided as context that match this glob pattern, the rule will be included. This can be either a single pattern (e.g., "**/*.{ts,tsx}"
) or an array of patterns (e.g., ["src/**/*.ts", "tests/**/*.ts"]
).regex
(optional): When files are provided as context and their content matches this regex pattern, the rule will be included. This can be either a single pattern (e.g., "^import .* from '.*';$"
) or an array of patterns (e.g., ["^import .* from '.*';$", "^export .* from '.*';$"]
).description
(optional): A description for the rule. Agents may read this description when alwaysApply
is false to determine whether the rule should be pulled into context.alwaysApply
: Determines whether the rule is always included. Behavior is described below:
true
: Always included, regardless of file contextfalse
: Included if globs exist AND match file context, or the agent decides to pull the rule into context based on its descriptionundefined
(default behavior): Included if no globs exist OR globs exist and match.continue/rules
folderYou can create project-specific rules by adding a .continue/rules
folder to the root of your project and adding new rule files.
Rules files are loaded in lexicographical order, so you can prefix them with numbers to control the order in which they are applied. For example: 01-general.md
, 02-frontend.md
, 03-backend.md
.
Continue includes a simple default system message for Chat and Agent requests, to help the model provide reliable codeblock formats in its output.
This can be viewed in the rules section of the toolbar (see above), or in the source code here.
Advanced users can override this system message for a specific model if needed by using chatOptions.baseSystemMessage
. See the config.yaml
reference.
.continuerules
.continuerules
will be deprecated in a future release. Please use the
.continue/rules
folder instead.
You can create project-specific rules by adding a .continuerules
file to the root of your project. This file is raw text and its full contents will be used as rules.