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
Open Skills Studio
Press ⌘2 to open the Skills view.
Select the skill to export
Click the skill in the list, then click ⋮ → Export.
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.
Importing a Skill
Open Skills Studio
Press ⌘2.
Click Import
Click the Import button at the top of the Skills list.
Select the JSON file
Pick the .json file exported from another MIRA instance. The skill appears in the list
immediately.
Exported skills are human-readable JSON. All fields are required unless marked optional.
{
"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. |
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.
Version history
Every time you save a skill, MIRA creates a new version automatically. To view and restore previous versions:
- Open the skill in the editor
- Click ⋮ → Version History
- A panel shows all saved versions with timestamps
- Click any version to preview it
- 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.