SkillKit

Configuration

Configure SkillKit at project and user levels

Configuration

SkillKit uses a layered configuration system with five priority levels (lowest to highest):

  1. Default values in code
  2. Global user preferences (~/.skillkit/preferences.json)
  3. Project settings (skillkit.yaml)
  4. Environment variables
  5. 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-skills

Manifest 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 all

User Preferences

Global preferences in ~/.skillkit/preferences.json:

{
  "lastAgents": ["claude-code", "cursor"],
  "defaultAgent": "claude-code",
  "theme": "dark"
}

Environment Variables

VariablePurpose
SKILLKIT_AGENTOverride default agent
SKILLKIT_DIRCustom SkillKit directory
SKILLKIT_DEBUGEnable debug logging

CLI Settings

skillkit settings --set agent=cursor
skillkit settings --set autoSync=true
skillkit settings --get agent

Advanced 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/memory

Mesh 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: true

Messaging

# skillkit.yaml
messaging:
  enabled: true
  storagePath: ~/.skillkit/messages
  notifications: true
  autoArchive:
    enabled: true
    afterDays: 30

Primer

# 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
    - .next

Directory Structure

~/.skillkit/
├── preferences.json   # User preferences
├── 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: strict

Use profiles:

skillkit --profile production sync

Next Steps

On this page