Skip to content

[Feature] Add /skills command for skill listing, search, enable/disable management #48

@Prodesire

Description

@Prodesire

Problem or Motivation

The current skill system has no user-facing management interface. Users cannot see what skills are available, search them, or enable/disable specific skills. As the skill ecosystem grows, users need a way to discover and control skills — similar to how Claude Code provides /skills for interactive skill management.

Proposed Solution

1. /skills — Interactive skill management UI

Typing /skills opens a full-screen interactive picker (similar to the existing /resume picker), showing all discovered skills with their status:

Skills
5 skills · Space to cycle, Enter to save, / to search, t to sort, Esc to cancel

⊘ Search skills...

  ✓ on    iac-aliyun       · bundled · ~1.2k tok
  ✓ on    simplify         · bundled · ~800 tok
  ✓ on    team-review      · project · ~400 tok · .iac-code/skills/
  ✗ off   untrusted-skill  · project · ~300 tok · .iac-code/skills/
  ✓ on    my-deploy        · user    · ~600 tok

Features:

  • Fuzzy search — type to filter by name or description
  • Toggle on/off — Space to cycle enable/disable state
  • Sort — by name, source, or size
  • Save — Enter to persist changes; Esc to cancel

Disabled skills are persisted in ~/.iac-code/settings.yml:

disabled_skills:
  - untrusted-skill

2. $ prefix to invoke skills inline

Users can invoke a skill by typing $skill-name (with autocomplete), as a lightweight alternative to the model invoking skills via the SkillTool:

> $simplify

This is useful for user-invocable skills that don't need to be triggered by the model.

Related Area

Skills System

Additional Context

The skill discovery system (src/iac_code/skills/discovery.py) already collects skills from bundled, user, and project sources. The /skills UI would reuse the existing FuzzyPicker component from src/iac_code/ui/components/fuzzy_picker.py.

Security note: Project skills from untrusted repos can contain shell commands. The disable feature gives users a way to prevent these from executing without modifying the repository.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions