Managing Agent Skills

Learn how to create, browse, edit, and organize your Agent Skills in Command Code.


Use the /skills slash command to view all your skills:

Open skills browser

# In Command Code interactive session /skills

This opens an interactive menu showing:

  • All user-level skills with (user) label
  • All project-level skills with (project) label
  • Skill names and descriptions

Navigation:

  • ↑/↓ arrow keys to navigate
  • Enter to open skill in your editor
  • Esc to close and return to conversation

User-level skills

User-level skills are available across all your projects.

Location: ~/.commandcode/skills/

Create a user skill

# Create the directory mkdir -p ~/.commandcode/skills/my-skill # Create the SKILL.md file cat > ~/.commandcode/skills/my-skill/SKILL.md << 'EOF' --- name: my-skill description: What this skill does and when to use it --- # My Skill Instructions for Claude... EOF

Use cases:

  • Personal coding preferences
  • General development workflows
  • Cross-project best practices
  • Your own code style guidelines

Example:

Code review skill

mkdir -p ~/.commandcode/skills/code-review cat > ~/.commandcode/skills/code-review/SKILL.md << 'EOF' --- name: code-review description: Perform thorough code reviews checking for bugs, security issues, and best practices --- # Code Review Checklist ## Security - [ ] No hardcoded credentials or API keys - [ ] Input validation on all user data - [ ] Proper authentication and authorization ## Code Quality - [ ] Clear, descriptive variable names - [ ] Functions do one thing well - [ ] No code duplication ## Performance - [ ] No unnecessary loops - [ ] Efficient data structures - [ ] Optimized queries ## Testing - [ ] Unit tests cover main functionality - [ ] Edge cases tested - [ ] Error conditions handled EOF

Project-level skills

Project-level skills are available only in that specific project.

Location: .commandcode/skills/ (in your project root)

Create a project skill

# Create the directory mkdir -p .commandcode/skills/my-skill # Create the SKILL.md file cat > .commandcode/skills/my-skill/SKILL.md << 'EOF' --- name: my-skill description: What this skill does and when to use it --- # My Skill Instructions for Claude... EOF

Use cases:

  • Project-specific patterns
  • Team conventions
  • Architecture guidelines
  • Domain-specific workflows

Example:

API guidelines skill

mkdir -p .commandcode/skills/api-guidelines cat > .commandcode/skills/api-guidelines/SKILL.md << 'EOF' --- name: api-guidelines description: API design patterns and conventions for this project --- # API Guidelines ## Endpoint naming - Use plural nouns: `/users`, `/posts` - Use kebab-case: `/user-profiles` - Version in URL: `/v1/users` ## Response format Always return JSON with this structure: \```json { "data": { ... }, "meta": { "count": 10, "page": 1 }, "errors": [] } \``` ## Error codes - 400: Bad request (validation errors) - 401: Unauthorized (missing/invalid token) - 403: Forbidden (insufficient permissions) - 404: Not found - 500: Server error ## Authentication All endpoints require Bearer token in Authorization header except: - POST /v1/auth/login - POST /v1/auth/register EOF

Using the /skills command

  1. Type /skills in Command Code
  2. Navigate to the skill you want to edit
  3. Press Enter

This opens the SKILL.md file in your default editor (configured via $EDITOR environment variable).

Manual editing

You can also edit skills directly:

Edit a skill

# Edit user-level skill code ~/.commandcode/skills/my-skill/SKILL.md # Edit project-level skill code .commandcode/skills/my-skill/SKILL.md

After editing, the changes are immediately available - no restart required.


The /skills command uses your $EDITOR environment variable to open files.

Configure $EDITOR

macOS/Linux (bash)

# Add to ~/.bashrc and reload echo 'export EDITOR="code"' >> ~/.bashrc source ~/.bashrc

macOS (zsh)

# Add to ~/.zshrc and reload echo 'export EDITOR="code"' >> ~/.zshrc source ~/.zshrc

Windows (PowerShell)

# Set permanently (restart terminal after) setx EDITOR "code"

Common editors:

  • code - Visual Studio Code
  • vim - Vim
  • nano - Nano
  • emacs - Emacs
  • subl - Sublime Text
  • atom - Atom

Single skill per directory

Each skill must be in its own directory:

.commandcode/skills/ ├── code-review/ │ └── SKILL.md ├── api-guidelines/ │ └── SKILL.md └── testing-patterns/ └── SKILL.md

Adding supporting files

Skills can include additional files:

my-skill/ ├── SKILL.md # Required ├── scripts/ # Executable code │ ├── process.py │ └── validate.sh ├── references/ # Additional docs │ ├── API_REFERENCE.md │ └── EXAMPLES.md └── assets/ # Templates, resources ├── template.json └── schema.sql

Reference these files in your SKILL.md:

See [API Reference](references/API_REFERENCE.md) for details. Run the validation script: \```bash scripts/validate.sh \```

Skill names

  • Use lowercase letters, numbers, and hyphens only
  • Max 64 characters
  • Must not start or end with hyphen
  • No consecutive hyphens

Good names:

code-review api-guidelines testing-patterns commit-messages

Bad names:

CodeReview # uppercase not allowed code_review # underscores not allowed -code-review # cannot start with hyphen code--review # consecutive hyphens

Directory names

The directory name must match the skill name field:

code-review/ # Directory name └── SKILL.md # Must have: name: code-review

Skills not appearing in /skills menu

Problem: Skills don't show up in the menu

Solutions:

  1. Check directory structure:

    ls ~/.commandcode/skills/ ls .commandcode/skills/
  2. Verify SKILL.md exists:

    cat ~/.commandcode/skills/my-skill/SKILL.md
  3. Validate frontmatter format:

    --- name: my-skill description: A description ---
  4. Check for YAML syntax errors (missing quotes, invalid characters)

  5. Ensure description is ≤1024 characters

Editor not opening

Problem: Pressing Enter in /skills doesn't open the file

Solutions:

  1. Check $EDITOR is set:

    echo $EDITOR
  2. Set $EDITOR if missing (see Setting up your editor)

  3. Verify editor is in PATH:

    which code # or your editor

Skill not being used by Command Code

Problem: Command Code doesn't use a skill even though it's relevant

Solutions:

  1. Make the description more specific with keywords:

    # Better description: Unit testing with Vitest. Use when writing tests, test files, or when user mentions testing, test coverage, or Vitest. # Less effective description: Testing
  2. Ensure the skill instructions are clear and actionable

  3. Ask Command Code explicitly: "Use the testing-patterns skill to write tests"


Writing effective descriptions

Good descriptions help Command Code know when to use a skill:

Specific and keyword-rich:

description: Extract text and tables from PDF files using pdfplumber. Use when user mentions PDFs, pdf files, document extraction, or needs to read PDF content.

Too vague:

description: PDF tools

Keep skills focused

Each skill should do one thing well:

Focused:

  • code-review - Code review checklist
  • commit-messages - Commit message format
  • testing-patterns - Testing conventions

Too broad:

  • development - All development tasks

Use progressive disclosure

Keep SKILL.md concise. Move detailed content to references/:

# API Guidelines Quick reference of our API patterns. For complete documentation, see: - [Authentication details](references/AUTH.md) - [Error handling guide](references/ERRORS.md) - [Versioning strategy](references/VERSIONING.md)

Version control

Track your skills in Git:

Git tracking

# Add skills to git git add .commandcode/skills/ # Commit git commit -m "Add API guidelines skill" # Share with team git push

Don't ignore .commandcode/skills/ - these should be shared with your team.