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
- Type
/skillsin Command Code - Navigate to the skill you want to edit
- 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 Codevim- Vimnano- Nanoemacs- Emacssubl- Sublime Textatom- 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:
-
Check directory structure:
ls ~/.commandcode/skills/ ls .commandcode/skills/ -
Verify SKILL.md exists:
cat ~/.commandcode/skills/my-skill/SKILL.md -
Validate frontmatter format:
--- name: my-skill description: A description --- -
Check for YAML syntax errors (missing quotes, invalid characters)
-
Ensure description is ≤1024 characters
Editor not opening
Problem: Pressing Enter in /skills doesn't open the file
Solutions:
-
Check
$EDITORis set:echo $EDITOR -
Set
$EDITORif missing (see Setting up your editor) -
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:
-
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 -
Ensure the skill instructions are clear and actionable
-
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 checklistcommit-messages- Commit message formattesting-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.
- Learn more about Agent Skills
- Join our Discord community for support