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

Custom agent frontmatter

Custom agents are markdown files that spawn as sub-agents. Create them from Settings or the project Agents tab. Run them with / in the chat input. How-to: Custom agents.

Locations and names

ScopePath
Personal~/.vixl/agents/{slug}.md
Project<repo>/.vixl/agents/{slug}.md

The id is the filename stem (reviewer.md is reviewer). Creating from the UI slugifies the name (lowercase, hyphens). Project agents overlay personal agents with the same name (case-insensitive). Home chats, and a workspace rooted at your user home directory, see personal agents only.

Reserved slash names ask, plan, agent, and orchestrator are chat modes, not custom agents. Those names are hidden from /. Spawn still accepts any other agentName: if it matches a catalog agent, that definition is used; otherwise it is a generic helper labeled with that name.

The repo's .vixl/agents/bugfinder.md is a real project agent you can copy.

Document shape

Vixl parses YAML between the first pair of --- lines as frontmatter. The rest is the agent body, which becomes the sub-agent system prompt. Missing or invalid frontmatter loads as empty.

---
name: "bugfinder"
description: "Review the diff vs HEAD for bugs and inconsistencies"
model: "anthropic::claude-sonnet-4-5"
reasoning: high
tools: ["read_file", "grep", "glob_files", "git_diff", "git_status", "lsp"]
---

Review uncommitted changes against HEAD. Report defects. Do not fix code or commit.

Fields

All frontmatter fields are optional.

FieldTypeDefault when omittedEffect
namestring, min length 1Filename stemCatalog label and / name
descriptionstring, min length 1name, else the filename stemShown in / and in Available subagents
modelstring, min length 1UnsetModel ref providerId::modelId used on spawn unless a call model or an Orchestrate lock is set
reasoningreasoning levelUnsetReasoning for that spawn. Invalid values are dropped
toolsstring arrayUnsetIntersects the spawn allowlist. Absent keeps the full read-only or write set for that spawn

reasoning must be one of: provider-default, none, minimal, low, medium, high, xhigh, max.

tools may be a JSON array (["read_file", "grep"]) or a comma-separated string (read_file, grep). Names that are not on the spawn allowlist are dropped.

A /agent mention does not dump the body into the parent prompt. The parent is told to call spawn_subagent with that catalog name.

Spawn allowlist

Default spawn capabilities are read-only. Ask and Plan cannot spawn write sub-agents. Nested agents get a subset of harness tools. Optional tools intersect that nested allowlist; names that are not on it are dropped. The nested tool lists are on Chat modes.

If the chat has a locked sub-agent model (Orchestrate), spawn ignores both the call model and this file's model.

Edit this page
Last Updated: 10/6/26, 8:58 PM
Prev
mcp.json
Next
SKILL.md format