VT Code supports repository, user, admin, and bundled system skills using the open Agent Skills SKILL.md format.
VT Code discovers skills in this order:
- Nearest ancestor
.agents/skillsfrom the current working directory up to the git repository root ~/.agents/skills/etc/codex/skills- Bundled system skills
If multiple skills share the same name, the nearest repository skill wins, then user, then admin, then system.
VT Code also honors disabled entries from ~/.codex/config.toml:
[[skills.config]]
path = "/path/to/skill/SKILL.md"
enabled = falseEach skill is a directory containing a required SKILL.md file.
my-skill/
├── SKILL.md
├── scripts/
├── references/
└── assets/
scripts/, references/, and assets/ are optional.
VT Code accepts the core Agent Skills frontmatter fields plus the client-side
disable-model-invocation flag used to hide a skill from the model-facing startup catalog while
keeping it available for explicit harness activation:
---
name: my-skill
description: Explain what this skill does and when to use it.
license: Apache-2.0
compatibility: Requires git and network access
allowed-tools: Read Write Bash
metadata:
owner: platform-team
---Required fields:
namedescription
Optional fields:
licensecompatibilitymetadataallowed-toolsdisable-model-invocation
Legacy VT Code frontmatter such as version, author, when-to-use, when-not-to-use, model, mode, context, agent, network, permissions, container flags, and similar extensions is rejected.
VT Code does not support agents/openai.yaml. That file is Codex-specific and ignored by design.
- Explicit mention wins:
Use the my-skill skill - Implicit matching uses
description - Full
SKILL.mdbodies are loaded only when a skill is selected - Referenced resources are loaded on demand
List skills:
vtcode skills listInspect one skill:
vtcode skills info my-skillCreate a new skill scaffold:
vtcode skills create my-skillValidate a skill:
vtcode skills validate ./.agents/skills/my-skillShow configured paths:
vtcode skills configVT Code also exposes the interactive slash-command surface as skills.
- Canonical skill names use the
cmd-<slash-name>form, for examplecmd-statusorcmd-review. - The
/statusor/reviewslash command remains the primary interactive alias. - Built-in session/UI commands are surfaced as built-in command skills.
- Prompt-oriented slash commands are shipped as bundled system skills in the release binary and installed under the system skill cache at runtime.
- Command skills are intentionally excluded from the default prompt-side skill index to avoid spending context on slash-command metadata that is already exposed elsewhere in the harness.
- Built-in command skills support
infoanduse, but notload.
vtcode skills creategenerates a spec-firstSKILL.mdscaffold with optional commented guidance fordisable-model-invocation.- User-facing skill metadata in VT Code is limited to the strict
SKILL.mdfields above. - Bundled system skills are surfaced as
systemscope.