Skip to content

[FEATURE]: Allow disabling individual default skill sources via config (skills.sources) #1561

Description

@juev

On startup MiMo-Code scans the skill directories of other agent tools — ~/.claude, ~/.agents, ~/.codex, ~/.opencode, plus their project-local counterparts (packages/opencode/src/skill/index.ts, EXTERNAL_DIRS). On a machine where several of these tools are installed side by side this causes a real problem: they often ship skills with the same name, and which copy wins depends on scan order. For the user the result looks non-deterministic — the duplicate only surfaces as a warning in the logs.

Disabling an individual source today is only possible via environment variables (MIMOCODE_DISABLE_CLAUDE_CODE_SKILLS, MIMOCODE_DISABLE_CODEX_SKILLS, MIMOCODE_DISABLE_OPENCODE_SKILLS), and:

  • the .agents directory has no switch at all;
  • env flags can't go into the config file, so the setting doesn't travel with mimocode.json between machines and doesn't live next to skills.paths.

The config already lets you add custom directories via skills.paths but can't disable the defaults. I would like to close that gap with a skills.sources section — one boolean per source:

{
  "skills": {
    "sources": {
      "claude": false,
      "codex": false
    }
  }
}

Keys: builtin, compose, claude, agents, codex, opencode. All default to true, so existing setups don't change. Disabling a source skips both its home- and project-local variants, so a half-disabled source can't keep producing collisions. The existing MIMOCODE_DISABLE_* flags keep working and win over the config (they can only disable, so an env-disabled source never gets re-enabled via config).

Related (not a duplicate): #1535 covers a different layer — external_directory permission blocking compose skills — but it's the same "control over skill sources" area.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions