Which coding agents support disable-model-invocation (manual-only skills)? A developer surveyed coding agents to determine which support the disable-model-invocation frontmatter field, which prevents AI models from automatically loading skills. The survey found that Claude Code, Cursor, VS Code Copilot, Factory, and pi support the field, while OpenAI Codex and OpenCode use alternative mechanisms. The developer also provided a deep dive into pi's implementation, noting that it strictly checks for the boolean true and only suppresses the skill from the system prompt, not from manual invocation. Claude Code's Agent Skills format has an optional frontmatter field: disable-model-invocation — Set to true to prevent Claude from automatically loading this skill. Use for workflows you want to trigger manually with /name . Also prevents the skill from being preloaded into subagents. As of v2.1.196, also prevents the skill from running when a scheduled task fires with the skill as its prompt. Default: false . I went looking for which other agents support this or something equivalent . The agentskills.io https://agentskills.io open spec itself does not define this field — only name , description , and optionally license , compatibility , metadata , allowed-tools . So this is an extension various clients have converged on or diverged around . | Agent | Notes | |---|---| Claude Code | Origin of the field. Also blocks subagent preloading, and v2.1.196+ blocks scheduled-task triggers. | Cursor | Same name/semantics. true → only reachable via /skill-name . Their rules→skills migration auto-sets this for legacy slash commands. | VS Code Copilot | Same name. Paired with user-invocable default true , giving a 2×2 matrix: default, background-only, on-demand-only, or fully disabled. | Factory Droid CLI | Same name/semantics, also has the companion user-invocable field, same as VS Code. | pi | Implements it faithfully — see deep dive below. | | Agent | Mechanism | |---|---| OpenAI Codex | SKILL.md only supports name / description . Manual-only invocation is instead set in a sidecar agents/openai.yaml file: policy.allow implicit invocation: false . Explicit $skill invocation still works; implicit matching is disabled. | OpenCode | No per-skill frontmatter equivalent frontmatter only recognizes name , description , license , compatibility , metadata . Instead, access is controlled globally via opencode.json permissions: permission.skill.