Skip to content
Back to skills

1889 Tools Skills Hooks Aae323da

ASecurity

Control what the agent can do:

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 11, 2026
ai-agentstypescriptbashnodeexpressapidocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 1889-tools-skills-hooks_aae323da --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1889 Tools Skills Hooks Aae323da?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1889 Tools Skills Hooks Aae323da
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-1889-tools-skills-hooks-aae323da/badge)](https://www.skillsdirectory.com/skills/tools-only-1889-tools-skills-hooks-aae323da)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# OpenClaw Tools, Skills & Hooks

## Tool Policy

Control what the agent can do:

```json5
{
  tools: {
    profile: "full",             // minimal|coding|messaging|full
    allow: ["tool-name"],        // allowlist
    deny: ["tool-name"],         // denylist (deny wins over allow)
    // Per-provider overrides:
    byProvider: {
      "openai/gpt-5.2": { deny: ["exec"] }
    }
  }
}
```

**Tool groups:** `group:runtime`, `group:fs`, `group:sessions`, `group:memory`, `group:web`, `group:ui`, `group:automation`, `group:messaging`, `group:nodes`, `group:openclaw`

**Elevated access:**
```json5
{
  tools: {
    elevated: {
      enabled: true,
      allowFrom: {
        whatsapp: ["+15555550123"],
        telegram: ["username"]
      }
    }
  }
}
```

**Web tools:**
```json5
{
  tools: {
    web: {
      search: {
        enabled: true,
        apiKey: "${BRAVE_API_KEY}",
        maxResults: 5
      },
      fetch: {
        enabled: true,
        maxChars: 50000,
        readability: true,
        firecrawl: { enabled: true, apiKey: "${FIRECRAWL_API_KEY}" }
      }
    }
  }
}
```

**Exec tool:**
```json5
{
  tools: {
    exec: {
      backgroundMs: 10000,      // auto-background timeout
      timeoutSec: 1800,         // kill timeout
      applyPatch: { enabled: true }
    }
  }
}
```

## Skills System

Skills extend agent capabilities through SKILL.md files with YAML frontmatter.

### Loading Hierarchy (highest to lowest priority)
1. Workspace skills: `<workspace>/skills/`
2. Managed skills: `~/.openclaw/skills/`
3. Bundled skills (shipped with OpenClaw)
4. Extra dirs: `skills.load.extraDirs`

### Skill Structure
```
skill-name/
├── SKILL.md          (required — frontmatter + instructions)
├── scripts/          (executable code)
├── references/       (docs loaded on demand)
└── assets/           (files used in output)
```

### Configuration
```json5
{
  skills: {
    allowBundled: ["skill-1", "skill-2"],
    load: {
      extraDirs: ["/path/to/more/skills"],
      watch: true,
      watchDebounceMs: 250
    },
    entries: {
      "skill-name": {
        enabled: true,
        apiKey: "SECRET",
        env: { CUSTOM_VAR: "value" }
      }
    }
  }
}
```

### Multi-Agent Skills
Each agent has its own workspace skills. Shared skills in `~/.openclaw/skills/` are available to all agents.

### ClawHub
Browse and install community skills:
- `clawhub install <skill-slug>`
- `clawhub update --all`
- `clawhub sync --all`

## Hooks System

Event-driven automation scripts that run when things happen in the gateway.

### Hook Structure
```
hook-name/
├── HOOK.md           (metadata + documentation)
└── handler.ts        (TypeScript implementation)
```

### Event Types
- **Command events**: `/new`, `/reset`, `/stop`
- **Agent events**: `agent:bootstrap` (before workspace injection)
- **Gateway events**: `gateway:startup` (when channels initialize)
- **Tool result hooks**: Synchronous tool result modification

### Discovery Locations (priority order)
1. Workspace: `<workspace>/hooks/`
2. Managed: `~/.openclaw/hooks/`
3. Bundled (shipped with OpenClaw)

### Bundled Hooks
- **session-memory**: Saves last 15 lines of conversation to `memory/YYYY-MM-DD.md`
- **command-logger**: Logs commands to `~/.openclaw/logs/commands.log` (JSONL)
- **boot-md**: Executes BOOT.md instructions at gateway startup
- **soul-evil**: Probabilistically swaps SOUL.md with SOUL_EVIL.md (fun/chaos)

### Configuration
```json5
{
  hooks: {
    internal: {
      enabled: true,
      entries: {
        "session-memory": { enabled: true },
        "my-hook": {
          enabled: true,
          env: { CUSTOM_VAR: "value" }
        }
      }
    }
  }
}
```

### CLI
- `openclaw hooks list`
- `openclaw hooks enable <name>`
- `openclaw hooks disable <name>`
- `openclaw hooks info <name>`
- `openclaw hooks check` — verify eligibility

### Writing Custom Hooks

Handler example (TypeScript):
```typescript
const handler: HookHandler = async (event) => {
  if (event.type !== "command" || event.action !== "new") return;
  // Access: event.sessionId, event.timestamp, event.messages, event.workspace
  event.messages.push("Session started!");
};
export default handler;
```

## Cron Jobs

Built-in scheduler for recurring/delayed agent tasks.

### Two Modes
- **Main session**: Enqueue system events into heartbeat flow
- **Isolated**: Dedicated agent turns in `cron:<jobId>` sessions with optional delivery

### Schedule Types
- `at` — one-shot ISO 8601 timestamp
- `every` — fixed interval in ms
- `cron` — 5-field cron expression with optional timezone

### CLI Examples
```bash
# Morning brief to Slack
openclaw cron add --name "Morning brief" --cron "0 7 * * *" \
  --tz "America/Los_Angeles" --session isolated \
  --message "Summarize overnight updates." \
  --announce --channel slack --to "channel:C1234567890"

# Weekly deep analysis
openclaw cron add --name "Deep analysis" --cron "0 6 * * 1" \
  --session isolated --message "Weekly analysis" \
  --model "opus" --thinking high \
  --announce --channel whatsapp --to "+15555550123"

# One-shot reminder
openclaw cron add --name "Remind me" \
  --at "2026-02-08T18:00:00Z" \
  --session main --system-event "Time to review PRs" \
  --wake now --delete-after-run
```

### Delivery Options
- `announce` — post to target channel + brief to main session
- `none` — internal only
- Channels: `slack`, `discord`, `telegram`, `whatsapp`, `signal`, `imessage`, `mattermost`, `last`

## Memory System

Two layers:
1. **Daily logs** (`memory/YYYY-MM-DD.md`): Append-only daily context
2. **Long-term** (`MEMORY.md`): Curated persistent facts (private sessions only)

**Vector search** (semantic + BM25 keyword):
```json5
{
  memorySearch: {
    provider: "local",           // local|openai|gemini|voyage
    local: { modelPath: "path/to/model.gguf" },
    extraPaths: ["/path/to/more/markdown"]
  }
}
```

Auto memory flush before compaction preserves durable memories.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.