Configuration
Configure SkillKit at project and user levels
Configuration
SkillKit uses a layered configuration system with five priority levels (lowest to highest):
- Default values in code
- Global user preferences (
~/.skillkit/preferences.json) - Project settings (
skillkit.yaml) - Environment variables
- CLI flags
Project Configuration
Create skillkit.yaml in your project root:
version: 1
agent: cursor # Override auto-detection
autoSync: true # Sync on changes
enabledSkills:
- pdf
- xlsx
- react-patterns
disabledSkills:
- deprecated-skill
skillsDir: ./custom-skills # Custom directory
sources: # Default sources
- anthropics/skills
- vercel-labs/agent-skillsManifest File
The .skills file enables Git-based team sharing:
version: 1
skills:
- source: anthropics/skills
skills: [pdf, xlsx]
- source: vercel-labs/agent-skills
skills: [react-patterns]Commands:
skillkit manifest init # Create .skills
skillkit manifest add <skill> # Add skill
skillkit manifest install # Install allUser Preferences
Global preferences in ~/.skillkit/preferences.json:
{
"lastAgents": ["claude-code", "cursor"],
"defaultAgent": "claude-code",
"theme": "dark"
}Environment Variables
| Variable | Purpose |
|---|---|
SKILLKIT_AGENT | Override default agent |
SKILLKIT_DIR | Custom SkillKit directory |
SKILLKIT_DEBUG | Enable debug logging |
CLI Settings
skillkit settings --set agent=cursor
skillkit settings --set autoSync=true
skillkit settings --get agentAdvanced Configuration
Memory System
# skillkit.yaml
memory:
enabled: true
tier: personal # personal, project, global
compression:
minObservations: 10 # Compress after N observations
autoExport: true # Auto-export as skills
storage:
backend: cozodb # cozodb, sqlite, memory
path: ~/.skillkit/memoryMesh Network
# skillkit.yaml
mesh:
enabled: true
hostId: my-workstation
discovery:
method: local # local, tailscale, manual
port: 9876
security:
mode: secure # development, signed, secure, strict
keyPath: ~/.skillkit/mesh/keys
peers:
- id: laptop-dev
address: 192.168.1.100
trusted: trueMessaging
# skillkit.yaml
messaging:
enabled: true
storagePath: ~/.skillkit/messages
notifications: true
autoArchive:
enabled: true
afterDays: 30Primer
# skillkit.yaml
primer:
autoGenerate: true # Generate on changes
agents:
priority: [claude, cursor, windsurf]
customize:
tone: detailed # concise, detailed, technical
includeExamples: true
exclude:
- node_modules
- dist
- .nextLock File
SkillKit maintains a centralized lock file at ~/.skillkit/lock.json that tracks every installed skill. The lock file is written on install, updated on update, and cleaned on remove.
{
"version": 1,
"skills": {
"pdf": {
"source": "anthropics/skills",
"checksum": "sha256:abc123...",
"agents": ["claude-code", "cursor"],
"installedAt": "2026-04-01T12:00:00Z",
"updatedAt": "2026-04-08T09:30:00Z"
}
}
}| Field | Description |
|---|---|
source | The repository or local path the skill was installed from |
checksum | SHA-256 hash of the SKILL.md content at install time, used for update detection |
agents | Which agents the skill is installed for |
installedAt | ISO timestamp of initial installation |
updatedAt | ISO timestamp of the most recent update |
The update command compares the stored checksum against the source to skip unchanged skills. The remove command cleans up the corresponding lock entry.
Taps File
Custom skill source repositories are stored in ~/.skillkit/taps.json. Taps are managed via the skillkit tap commands.
{
"version": 1,
"taps": [
{
"source": "myorg/internal-skills",
"name": "Internal Skills",
"addedAt": "2026-04-05T10:00:00Z"
}
]
}Skills from tapped sources appear in marketplace search results and can be installed like any other source. See the tap command documentation for usage.
Directory Structure
~/.skillkit/
├── preferences.json # User preferences
├── lock.json # Installed skill tracking
├── taps.json # Custom skill sources
├── cache/ # Marketplace cache
├── memory/ # Learning storage
│ ├── observations/
│ ├── learnings/
│ └── index.json
├── mesh/ # Mesh network
│ ├── keys/ # Encryption keys
│ ├── peers.json # Known peers
│ └── config.json
└── messages/ # Inter-agent messages
├── inbox/
├── sent/
└── archived/
./project/
├── skillkit.yaml # Project config
├── .skills # Team manifest
├── skills/ # Local skills
└── .skillkit/ # Project-specific
├── cache/
├── primer-config.json
└── memory/Configuration Profiles
Create different profiles for different environments:
# skillkit.yaml
profiles:
development:
agent: claude
autoSync: true
mesh:
security:
mode: development
production:
agent: universal
autoSync: false
mesh:
security:
mode: strictUse profiles:
skillkit --profile production syncNext Steps
- Primer - Auto-generate instructions
- Memory System - Persistent learning
- Mesh Network - Multi-machine setup
- Team Collaboration - Team configuration