Skip to content

The skill switch for OpenCode V2.

A native plugin that lists, inspects, disables and enables skills by writing one permission rule. Skill files are never moved, edited or deleted.
opencode v2
$ opencode plugin add opencode-skill-management
$ opencode plugin list --builtin
skill_management <version> opencode-skill-management@<version>

The context tax

Every installed skill is context you keep paying for.

OpenCode injects skill names and descriptions into the model’s context. Install enough of them and the list stops being useful: stale entries crowd out the work, a skill that will not load gives you no reason why, and deleting files to “turn one off” is a change you have to remember how to undo.

See the real state

list evaluates permissions for the agent that is actually calling, not a merged view of every agent.

Disable without deleting

One rule in the global config hides a skill and rejects loading. The skill file is never moved or edited.

Know why it is blocked

inspect quotes the rule that matched, shows per-agent differences and explains where the id came from.

Reverse it precisely

enable deletes the one blocking rule — not a guess, and only when it can be uniquely identified.

Four actions

A small, deliberate surface.

list
Every registered skill with its effective state for the caller, plus config and sidecar consistency notes. Read-only.
inspect
One skill in detail: conclusion, matched rule, per-agent results, id derivation. Read-only.
disable
Write one global skill permission rule. deny by default, ask for a soft disable, dryRun to preview.
enable
Delete the one exact global rule that blocks the skill. Refuses when the rule is ambiguous or out of scope.

The carrier

One rule. Same file. No side effects.

Disabling is not a special database or a rewritten skill file. It is a single entry appended to the global permissions array, with a same-line marker so it can be found again. Indentation, key order, line endings and BOM are preserved.

{
"permissions": [
{ "action": "skill", "resource": "windows-shell", "effect": "deny" } // skill_management
]
}

The same rule is what enable later removes. That is the whole state model.

OpenCode V2 · verified on 2.0.32 (Windows and Linux) and re-checked on 2.2.0 · Node 18+ · no third-party runtime dependencies.

Read the docs →