Skills
Skills are knowledge base content for AI assistants. They are markdown documents with YAML or TOML frontmatter that follow the Agent Skills Specification.
Overview
Skills provide context and instructions to AI assistants, helping them understand how to perform specific tasks. Skills can be used by:
- The built-in knot web assistant
- External AI tools that connect via MCP
- Any AI system that supports the Agent Skills format
Knot supports two types of skills:
- Global Skills: Available to all users (with optional group restrictions)
- User Skills: Personal skills owned by individual users
User skills with the same name override (shadow) global skills, allowing users to customize behavior.
Managing Skills
Via Web Interface
Skills can be created and managed through the web interface under the Skills section. The editor supports:
- Markdown content with syntax highlighting
- YAML frontmatter editing
- Zone and group access control
Via CLI
# List skills
knot skills list
# Create a skill
knot skills create my-skill.md
# Get a skill
knot skills get my-skill
# Update a skill
knot skills update my-skill --file updated.md
# Delete a skill
knot skills delete my-skillVia Scripts
import knot.skill as skill
# Create a skill
skill.create("""---
name: "python-best-practices"
description: "Python coding best practices"
---
# Python Best Practices
- Follow PEP 8
- Use meaningful variable names
""")
# List skills
skills = skill.list()
# Search skills
results = skill.search("python")Skill Format
Skills are markdown documents with YAML frontmatter:
---
name: "my-skill"
description: "Brief description of what this skill does"
---
# Skill Content
Your markdown content here...Frontmatter Fields
| Field | Required | Description |
|---|---|---|
name |
Yes | Skill name (1-64 chars, lowercase letters/numbers/hyphens) |
description |
Yes | Brief description (1-1024 chars) |
Access Control
Zone Restrictions
Skills can be limited to specific zones:
- If no zones are specified, the skill is available in all zones
- Zones prefixed with
!are exclusions (e.g.,!us-west-1excludes that zone)
skill.create(content, zones=["us-east-1", "eu-west-1"])Group Restrictions
Global skills can be restricted to specific user groups. Only users in those groups can access the skill.
skill.create(content, global=True, groups=["dev-team", "ops-team"])Permissions
| Permission | Description |
|---|---|
MANAGE_OWN_SKILLS |
Create, update, and delete your own skills |
MANAGE_GLOBAL_SKILLS |
Create, update, and delete global skills |
Example Skills
Team Conventions
---
name: "team-conventions"
description: "Coding conventions and best practices for our team"
---
# Team Conventions
## Branch Naming
- Feature: `feature/<ticket-id>-<description>`
- Bugfix: `fix/<ticket-id>-<description>`
- Hotfix: `hotfix/<ticket-id>-<description>`
## Commit Messages
- Use conventional commits format
- Reference ticket numbers in commit messages
## Code Review
- All changes require at least one approval
- Reviewers should check for test coverageDeployment Guide
---
name: "deployment-guide"
description: "How to deploy applications to our environments"
---
# Deployment Guide
## Environments
- **dev**: Automatic deployment on merge to develop
- **staging**: Manual approval required
- **production**: Requires two approvals and change ticket
## Deployment Process
1. Create a release branch from main
2. Update version numbers
3. Run full test suite
4. Create pull request
5. After approval, merge to main
6. Tag the releaseWhat’s Next
- AI Assistant - Using the built-in AI assistant
- MCP Integration - Connecting external AI tools
- Scripts - Creating executable automation scripts