Skip to content

Customize OpenClaw Skills and Automate Tasks Efficiently

Managing automation and custom skills can feel like a constant battle between keeping your workspace clean and getting things to work exactly how you want. If you’ve ever found yourself manually editing core files just to change a prompt, or watching your bot freeze up during a long task, you’re in the right place.

How do I customize skills without keeping the repo dirty?

Section titled “How do I customize skills without keeping the repo dirty?”

You should use managed overrides instead of editing the repo copy directly. Just put your changes in ~/.openclaw/skills/<name>/SKILL.md. If you have a specific folder you prefer, you can add it via skills.load.extraDirs in your ~/.openclaw/openclaw.json.

The system follows a specific order of precedence: <workspace>/skills comes first, then ~/.openclaw/skills, and finally the bundled versions. This way, your managed overrides win every time without touching git. You should only edit the repo directly if you’re planning to submit a PR.

Yes, you can. You just need to add those extra directories to skills.load.extraDirs in your ~/.openclaw/openclaw.json. Keep in mind that this has the lowest precedence.

The full order is: <workspace>/skills → ~/.openclaw/skills → bundled → skills.load.extraDirs.

How can I use different models for different tasks?

Section titled “How can I use different models for different tasks?”

Right now, you have a few supported ways to handle this:

  • Cron jobs: You can set a specific model override for each isolated job.
  • Sub-agents: You can route tasks to separate agents that have different default models.
  • On-demand switch: Just use the /model command to swap the current session model whenever you want.

The bot freezes while doing heavy work. How do I offload that?

Section titled “The bot freezes while doing heavy work. How do I offload that?”

When you have long or parallel tasks, you should use sub-agents. They run in their own separate sessions and return a summary when they’re done, which keeps your main chat responsive.

You can ask your bot to “spawn a sub-agent for this task” or just use the /subagents command.

A quick tip on tokens: both long tasks and sub-agents use them. If you want to save on costs, you can set a cheaper model for your sub-agents in agents.defaults.subagents.model.

Cron or reminders do not fire. What should I check?

Section titled “Cron or reminders do not fire. What should I check?”

The cron system runs inside the Gateway process. If your Gateway isn’t running continuously, your scheduled jobs won’t fire.

Checklist:

  • Confirm cron is enabled (cron.enabled) and you haven’t set OPENCLAW_SKIP_CRON.
  • Ensure the Gateway is running 24/7 without sleeping or restarting.
  • Verify your timezone settings for the job (compare --tz against your host timezone).

Debug:

Terminal window
openclaw cron run <jobId> --force
openclaw cron runs --id <jobId
```bash
openclaw cron run \<jobId\> --force
openclaw cron runs --id \<jobId\> --limit 50
Terminal window
npm i -g clawhub
# or
pnpm add -g clawhub
Terminal window
openclaw browser extension install
openclaw browser extension path
OpenClaw

OpenClaw Expert

Still stuck?

If this page didn't answer your case, ask OpenClaw Expert for step-by-step guidance.