# Configuration

### Where settings are stored

Cora has two configuration scopes: **global** and **project**.

**Global settings** apply to every project you open. They live in extension storage directory:

```
~/.config/Code/User/globalStorage/codemateai.codemate-agent/settings/
```

**Project settings** apply only to the current workspace and take precedence over global settings when both exist. They live at the root of your project:

```
your-project/
  .cora/
    skills/
    rules/
    workflows/
    mcp_settings.json
```

Both locations use the same file formats Markdown for skills, rules, workflows, and system instructions; JSON for MCP servers.

***

### Global settings directory

The full structure of the global settings directory:

```
~/.config/Code/User/globalStorage/codemateai.codemate-agent/settings/
  skills/
    api-conventions.md
    testing-approach.md
  rules/
    security.md
    naming.md
  workflows/
    new-feature.md
    pr-prep.md
  mcp_settings.json
  system-instructions.md
```

Because these are plain files, you can version-control them, sync them across machines with a dotfiles manager, or share a set of skills and rules across a team.

***

### Global vs. project settings

Use **global settings** for conventions and tools that apply to everything you work on a personal coding style, preferred patterns, MCP servers for services you use everywhere like GitHub or Slack.

Use **project settings** for things specific to a codebase its domain vocabulary, its particular API conventions, its security rules, the MCP server for its specific database.

When both scopes define the same type of file (e.g., a `rules/security.md` in both global and project), the project-level file is used for that project. They don't merge line-by-line the project file takes precedence as a whole for that filename.

***

### Configuration types

| Type                | Format   | Purpose                                                           |
| ------------------- | -------- | ----------------------------------------------------------------- |
| Skills              | Markdown | Domain knowledge Cora draws on when relevant to the task          |
| Rules               | Markdown | Hard constraints applied unconditionally to every interaction     |
| Workflows           | Markdown | Step-by-step processes for recurring tasks                        |
| MCP servers         | JSON     | External tool and service integrations                            |
| System instructions | Markdown | Baseline behavior applied at the start of every session           |
| Auto-accept         | Setting  | Whether Cora applies file changes without asking for confirmation |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.codemate.ai/cora/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
