VixlVixl
Docs
Changelog
GitHub
Docs
Changelog
GitHub
  • Get Started

    • Overview
    • Philosophy
    • Installation
    • Set up providers and models
    • Add a project
    • Create a project group
    • Your first chat
  • Concepts

    • How Vixl works
    • Chat modes
    • Permissions and approvals
    • Projects and home chats
    • Models and roles
    • Context
    • Code graphs
    • The .vixl directory
  • Using Vixl

    • Manage chats
    • Queue and stop messages
    • Review and restore changes
    • Compact and hand off long chats
    • Export a transcript
    • Work with plans
    • Orchestrate sub-agents
    • Best practices
    • Use the workbench
    • Shortcuts and the command palette
  • Customize

    • Providers
    • Models
    • MCP servers
    • Skills
    • Custom agents
    • Rules and AGENTS.md
    • Language servers
    • Appearance
    • Permission settings
  • Reference

    • settings.json
    • mcp.json
    • Custom agent frontmatter
    • SKILL.md format
    • Keyboard shortcuts
    • Chat statuses
    • .vixl layout
    • Managed components
  • Resources

    • Troubleshooting
    • FAQ
    • Privacy
    • Comparison
    • Roadmap
    • Brand and press
    • Changelog

SKILL.md format

A skill is a folder that contains SKILL.md. Agents see a short catalog, then load the body with load_skill. You can attach one from the chat input with /. How-to: Skills.

Locations and names

ScopePath
Personal~/.vixl/skills/{slug}/SKILL.md
Project<repo>/.vixl/skills/{slug}/SKILL.md
Built-inshipped with the app

The list name is the folder name, not the frontmatter name. Creating from the UI slugifies the name (lowercase, hyphens). Description comes from YAML description.

Reserved slash names cannot run via /: ask, plan, agent, orchestrator. Those are chat modes.

SKILL.md document

---
name: "deploy"
description: "Ship the app"
---

Steps to deploy this repo.

Frontmatter schema:

FieldTypeRequiredEffect
namestring, min length 1yesDisplay name inside the file. The catalog still keys off the folder name
descriptionstring, min length 1yesShown in / and in Available skills

There are no other frontmatter fields. The create form JSON-stringifies name and description. Body is free markdown.

Loaders strip frontmatter and inject the body. If the loaded body is longer than 4000 characters, it is truncated and the agent is told characters were omitted.

How a name is resolved

Load by name (case-insensitive): built-in first, then project, then personal.

/ and the Available skills list merge in this order: vendored command skills first, then personal, then project overlay (project wins over personal). Home chats, and a workspace rooted at your user home directory, skip the project overlay. Vendored command skills cannot be overridden by a same-named user or project skill.

Vendored command skills: create-agent, create-skill, create-rule, create-plan. They are listed in / and in Available skills, including on home chats. The matching built-in mode skill (ask, plan, agent, orchestrator) is inlined for that chat mode and omitted from Available skills.

What / versus Available skills shows on a home chat versus a project chat is on Context. Selecting / inserts a skill mention. The agent loads the full text with load_skill. Missing name, unknown name, and catalog load failures return errors.

See Custom agent frontmatter for the sibling agent file format.

Edit this page
Last Updated: 10/6/26, 8:58 PM
Prev
Custom agent frontmatter
Next
Keyboard shortcuts