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?
| Reason | Explanation |
|---|
| Updates break | Your changes get overwritten when the skill updates |
|---|
| Merge conflicts | Maintaining a fork requires ongoing effort |
|---|
| Portability | Custom configs are easy to backup and transfer |
|---|
| Reversibility | Revert 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
- Modifying the OpenClaw Configuration File for Advanced Users — Deep dive into OpenClaw's configuration file with advanced settings for power users and developers.
- Finding and Installing OpenClaw Skills from ClawHub — Browse, evaluate, and install community-built skills from the ClawHub skill registry.
- Testing and Debugging OpenClaw Skills — Write tests and debug your OpenClaw skills systematically to ensure reliable agent behavior.
- Resolving Conflicts Between OpenClaw Skills — Fix skill conflicts and priority issues when multiple OpenClaw skills compete for the same triggers.
- E2B and Sandboxed Code Execution for AI Agents — How E2B and similar sandbox platforms let AI agents safely run generated code without endangering the host system.