Skip to content

feat: allow hiding skills by name via config (disabled_skills) #1982

Description

@zicochaos

Problem

Many setups share a generic skill directory across tools (for example ~/.agents/skills/). Those directories often contain skills that are useful for other agents but should not appear in Kimi at all — not in the model listing, not via the Skill tool, and not in the slash menu.

Today the closest options are incomplete for that case:

  • Skill frontmatter disableModelInvocation: true only blocks automatic model invocation; the skill can still be slash-invoked and still shows up in listings.
  • A permission deny rule for Skill(...) can block the tool call, but the skill name can still remain visible in the model listing.
  • Removing or renaming files on disk breaks other tools that intentionally share the same directory.

Proposed solution

Add an optional top-level disabled_skills array in config.toml:

disabled_skills = ["grok-delegation", "pi-delegation"]

Behavior when a name matches (case-insensitive):

  • Hidden from model skill listing
  • Rejected by the Skill tool
  • Hidden from the slash menu / user activation paths
  • Files remain on disk for other tools

After editing, /reload or a new session applies the change.

Scope note

disabled_skills only covers the Skill surface. The agent may still reimplement a skill's workflow with other tools (for example Bash running a helper binary). Users who need that blocked should pair this with existing permission deny rules, which still apply in YOLO mode.

Why this fits Kimi Code

  • Opt-in, empty default — no behavior change for existing users
  • Complements rather than replaces disableModelInvocation and permission rules
  • Supports shared multi-tool skill directories without forking the skill tree per product
  • Same config surface for agent-core v1 and v2

Willingness to implement

I can open a focused PR with v1/v2 implementation, tests, bilingual docs, and a changeset if maintainers are open to this direction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions