> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mira-app.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Skill Import & Export

> Share Skills as portable JSON files, restore previous versions, and collaborate across teams.

Skills are stored locally in `mira.db` and can be exported as self-contained JSON files for sharing, backup, or use across multiple MIRA installations.

## Exporting a Skill

<Steps>
  <Step title="Open Skills Studio">Press ⌘2 to open the Skills view.</Step>

  <Step title="Select the skill to export">
    Click the skill in the list, then click **⋮ → Export**.
  </Step>

  <Step title="Save the file">
    Choose a location and save as `[skill-name].json`. The file is self-contained and contains all
    configuration — no secrets are included.
  </Step>
</Steps>

## Importing a Skill

<Steps>
  <Step title="Open Skills Studio">Press ⌘2.</Step>
  <Step title="Click Import">Click the **Import** button at the top of the Skills list.</Step>

  <Step title="Select the JSON file">
    Pick the `.json` file exported from another MIRA instance. The skill appears in the list
    immediately.
  </Step>
</Steps>

## Skill JSON format

Exported skills are human-readable JSON. All fields are required unless marked optional.

```json theme={null}
{
  "name": "My Custom Skill",
  "description": "Short description shown in the skill picker.",
  "category": "Custom",
  "icon": "🔬",
  "color": "#10b981",
  "instructions": "## Active Skill Mode: My Custom Skill\n\nDescribe the persona, expertise, and behaviour rules here.",
  "modelOverrides": {
    "temperature": 0.3,
    "maxIterations": 20,
    "maxTokens": 8192,
    "temperatureEnabled": true,
    "maxIterationsEnabled": true,
    "maxTokensEnabled": false
  },
  "mcpAllowlist": [],
  "documentTemplates": [],
  "scope": "session",
  "isEnabled": true,
  "isBuiltin": false
}
```

### Field reference

| Field               | Type      | Required | Notes                                                                             |
| ------------------- | --------- | -------- | --------------------------------------------------------------------------------- |
| `name`              | string    | ✅        | Displayed in the skill picker and session header                                  |
| `description`       | string    | ✅        | One-line summary shown below the name                                             |
| `category`          | string    | ✅        | See valid values below                                                            |
| `icon`              | string    | ✅        | Any single emoji character                                                        |
| `color`             | string    | ✅        | Hex colour for the skill card accent (`#rrggbb`)                                  |
| `instructions`      | string    | ✅        | Full system-level instructions injected at session start. Supports Markdown.      |
| `modelOverrides`    | object    | ✅        | Per-skill model parameter overrides (see below)                                   |
| `mcpAllowlist`      | string\[] | ✅        | List of MCP server IDs allowed for this skill. Empty array = all servers allowed. |
| `documentTemplates` | string\[] | ✅        | Reserved for future use — set to `[]`                                             |
| `scope`             | string    | ✅        | `"session"` or `"global"`                                                         |
| `isEnabled`         | boolean   | ✅        | Whether the skill is selectable. Set to `true` for usable skills.                 |
| `isBuiltin`         | boolean   | ✅        | Always `false` for custom/imported skills                                         |

**`category` valid values:** `"Research"` · `"Coding"` · `"Domain Expert"` · `"Creative"` · `"Deterministic"` · `"Custom"`

**`scope` valid values:**

* `"session"` — skill is applied only to the current session and is not persisted across sessions
* `"global"` — skill is automatically available across all sessions

**`modelOverrides` fields:**

| Field                  | Type    | Notes                                                          |
| ---------------------- | ------- | -------------------------------------------------------------- |
| `temperature`          | number  | `0.0` – `2.0`. Lower = more deterministic.                     |
| `maxIterations`        | number  | Max reasoning iterations (RLM engine). Recommended: `10`–`30`. |
| `maxTokens`            | number  | Max tokens per response.                                       |
| `temperatureEnabled`   | boolean | If `false`, the provider default is used instead.              |
| `maxIterationsEnabled` | boolean | If `false`, the engine default is used instead.                |
| `maxTokensEnabled`     | boolean | If `false`, the provider default is used instead.              |

<Tip>
  Edit the exported JSON in any text editor, change the `name` and `instructions`, set `"isBuiltin":
      false`, then import — you have a new skill in seconds.
</Tip>

## Version history

Every time you save a skill, MIRA creates a new version automatically. To view and restore previous versions:

1. Open the skill in the editor
2. Click **⋮ → Version History**
3. A panel shows all saved versions with timestamps
4. Click any version to preview it
5. Click **Restore** to make that version current

Restoring creates a new version — the current version is not overwritten, it becomes the previous entry in the history.

## Sharing skills with your team

Skills can be committed to a shared repository as JSON files and distributed to teammates. Each team member imports the file into their own MIRA installation. Updates require re-exporting and re-importing — there is no live sync.
