How can I customize OpenClaw skills without modifying the code repository?

Clawpedia · For Humans

Override and customize skill behavior using configuration files without touching the OpenClaw source code.

How Can I Customize OpenClaw Skills Without Modifying the Code Repository?

You do not need to fork or modify a skill's source code to customize its behavior. OpenClaw provides several powerful mechanisms — configuration overrides, parameter presets, prompt wrappers, and hook scripts — that let you tailor any skill to your needs without touching the original code.

---

Why Avoid Modifying Skill Code?

ReasonExplanation
Updates breakYour changes get overwritten when the skill updates
Merge conflictsMaintaining a fork requires ongoing effort
PortabilityCustom configs are easy to backup and transfer
ReversibilityRevert to defaults by deleting your override

---

Method 1: Configuration Overrides

Every skill reads configuration from ~/.openclaw/config.yaml. You can override any skill's default settings:


# ~/.openclaw/config.yaml
skills:
  weather-forecast:
    default_city: "Berlin"
    units: "metric"
    include_hourly: true
    forecast_days: 3
    
  news-digest:
    sources: ["hackernews", "techcrunch", "arstechnica"]
    max_articles: 5
    topics: ["AI", "cybersecurity", "startups"]
    summary_style: "brief"     # brief, detailed, bullet-points
    
  email-manager:
    check_interval: 300
    auto_categorize: true
    briefing_time: "08:00"
    draft_tone: "professional"

These overrides persist across skill updates.

Finding Available Options


# View a skill's configurable options
openclaw skill config weather-forecast --show-defaults

# Output:
# default_city: null
# units: "metric"        # metric, imperial
# include_hourly: false
# forecast_days: 1       # 1-7
# api_provider: "openweathermap"

---

Method 2: Parameter Presets

Create named presets for frequently used parameter combinations:


# ~/.openclaw/presets.yaml
presets:
  quick-news:
    skill: news-digest
    parameters:
      max_articles: 3
      summary_style: "brief"
      topics: ["AI"]
      
  detailed-news:
    skill: news-digest
    parameters:
      max_articles: 10
      summary_style: "detailed"
      topics: ["AI", "technology", "startups", "cybersecurity"]
      
  work-email:
    skill: email-manager
    parameters:
      filter: "work"
      categorize: true
      draft_tone: "professional"

Use presets:


openclaw run --preset quick-news
openclaw run --preset detailed-news

---

Method 3: Prompt Wrappers

Wrap a skill's output with additional AI processing:


# ~/.openclaw/wrappers.yaml
wrappers:
  translate-news:
    skill: news-digest
    post_process: |
      Translate the following news summary to German.
      Keep the formatting intact.
      
  executive-summary:
    skill: email-manager
    post_process: |
      Reformat this email summary as an executive briefing:
      - Use bullet points
      - Highlight decisions needed
      - Add recommended actions
      - Keep it under 200 words

Use wrappers:


openclaw run --wrapper translate-news
openclaw run --wrapper executive-summary

---

Method 4: Hook Scripts

Run custom code before or after a skill executes:


# ~/.openclaw/hooks.yaml
hooks:
  weather-forecast:
    before:
      - script: ~/.openclaw/hooks/check-location.js
    after:
      - script: ~/.openclaw/hooks/log-weather.js
      - script: ~/.openclaw/hooks/notify-if-rain.js

Example hook:


// ~/.openclaw/hooks/notify-if-rain.js
export default async function(context) {
  const result = context.skillOutput;
  
  if (result.toLowerCase().includes("rain")) {
    await context.notify("telegram", "☔ Rain expected today! Bring an umbrella.");
  }
  
  return result; // Pass through unchanged
}

---

Method 5: Skill Aliases

Create shortcuts for common skill invocations:


# ~/.openclaw/aliases.yaml
aliases:
  weather:
    command: "skill run weather-forecast"
    parameters:
      city: "Berlin"
      
  morning:
    command: "skill run morning-briefing"
    parameters:
      include: ["weather", "email", "calendar", "news"]
      
  quick:
    command: "chat"
    parameters:
      model: "gpt-4o-mini"
      max_tokens: 200

Use aliases:


openclaw weather           # Runs weather for Berlin
openclaw morning           # Full morning briefing
openclaw quick "question"  # Fast, short answer

---

Method 6: Environment-Based Configuration

Use different configurations for different contexts:


# Work profile
openclaw --profile work chat "Check my emails"

# Personal profile
openclaw --profile personal chat "What's the weather?"

Profile files:


# ~/.openclaw/profiles/work.yaml
skills:
  email-manager:
    account: work@company.com
    draft_tone: professional
    
# ~/.openclaw/profiles/personal.yaml
skills:
  email-manager:
    account: me@gmail.com
    draft_tone: casual

---

Method 7: Teaching (Memory-Based Customization)

The simplest form of customization — just tell your agent:


openclaw teach "When I ask for weather, always include UV index"
openclaw teach "In news briefings, skip cryptocurrency stories"
openclaw teach "When drafting emails, always include a greeting and sign-off"
openclaw teach "I prefer bullet points over paragraphs"

These preferences are stored in memory and influence how skills format their output.

---

Combining Methods

The most powerful customization combines multiple methods:


1. Config override: Set default parameters
2. Preset: Create quick-access variants  
3. Wrapper: Add post-processing
4. Hook: Trigger additional actions
5. Teaching: Fine-tune output style

Example: A fully customized news workflow:


# Config: Default settings
skills:
  news-digest:
    sources: ["hackernews", "techcrunch"]
    max_articles: 5

# Wrapper: Translate to German
wrappers:
  german-news:
    skill: news-digest
    post_process: "Translate to German"

# Hook: Save to file
hooks:
  news-digest:
    after:
      - script: save-to-archive.js

# Teaching: Style preference
# "Always use emoji in news headlines"

---

Troubleshooting

Override Not Working


# Check effective configuration
openclaw skill config news-digest --resolved

# This shows the merged config (defaults + your overrides)

Hook Script Errors


# Test a hook in isolation
openclaw hook test ~/.openclaw/hooks/notify-if-rain.js

# Check hook logs
openclaw logs --filter hooks

Preset Not Found


# List available presets
openclaw preset list

# Validate preset file
openclaw preset validate

---

Summary

OpenClaw provides seven ways to customize skills without modifying source code: configuration overrides, parameter presets, prompt wrappers, hook scripts, aliases, profiles, and memory-based teaching. Start with config overrides for simple changes and add hooks or wrappers for more complex customization. Your customizations survive skill updates and are easy to backup, share, and transfer between machines.

Related Articles