---
title: "OpenClaw"
description: "Install the Mentio skill from ClawHub so OpenClaw tracks keywords, searches and triages mentions, sets up alerts and reads analytics from natural language."
canonical: https://docs.mentio.dev/integrations/openclaw
markdown: https://docs.mentio.dev/integrations/openclaw.mdx
---

# OpenClaw

Install the Mentio skill from ClawHub so OpenClaw tracks keywords, searches and triages mentions, sets up alerts and reads analytics from natural language.

When you finish this page, [OpenClaw](https://openclaw.ai) answers "what are people saying about us this week?" with your real mentions, tracks new keywords, closes mentions out, creates Slack, Telegram, email and webhook alerts, and reads analytics, all through the `mentio` skill from ClawHub. You need an API key, a running OpenClaw installation, and one keyword tracked (or the patience to wait for the first poll).

| Detail          | Value                                                                                              |
| --------------- | -------------------------------------------------------------------------------------------------- |
| Skill name      | `mentio`                                                                                           |
| ClawHub         | [clawhub.ai, search `mentio`](https://clawhub.ai/search?q=mentio)                                  |
| Install command | `npx clawhub@latest --workdir ~/.openclaw install mentio`                                          |
| Auth            | API key in the `MENTIO_API_KEY` environment variable                                               |
| Base URL        | `https://api.mentio.dev/v1`                                                                        |
| Source          | [packages/openclaw-skill](https://github.com/PauGuirao/mentions/tree/main/packages/openclaw-skill) |

The skill teaches OpenClaw these parts of the API:

| Area                | What OpenClaw can do                                                                                     |
| ------------------- | -------------------------------------------------------------------------------------------------------- |
| Keywords            | Track, pause, widen and remove brand, competitor and topic keywords                                      |
| Mentions            | Search with every filter, summarize, mark done or ignored, assign, snooze, annotate, export CSV          |
| People and segments | Find the people behind the mentions by reach, recency and intent; tag, note, mute; save segments         |
| Alerts and channels | Instant rules and daily digests to Slack, Telegram, email and webhooks; test them; read the delivery log |
| Analytics           | Summary, series, breakdown and share of voice over any window                                            |
| Company profile     | Read and sharpen what the classifier knows about you, the biggest lever on relevance                     |
| Account             | API keys and health                                                                                      |

It covers every platform Mentio watches: Bluesky, Hacker News, Reddit, X, GitHub, Stack Overflow, DEV, YouTube, LinkedIn and news. The reference parts of the skill are generated from the same OpenAPI document as the [API Reference](/api), so they cannot drift from the deployed API.

## Step 1: Install the skill

### Install from ClawHub

```bash
npx clawhub@latest --workdir ~/.openclaw install mentio
```

This downloads `SKILL.md` and the rule files (`authentication.md`, `keywords.md`, `mentions.md`, `people.md`, `alerts.md`, `analytics.md`, `account.md`, `errors.md`, `cli.md`) into `~/.openclaw/skills/`, the shared skills directory every local agent reads. Drop `--workdir` to install into the current OpenClaw workspace instead.

### Add the API key

Create a key on the [API keys](https://app.mentio.dev/api-keys) page (a `write` key for the whole skill; a `read` key covers searching, analytics and people but no changes), then:

```bash
echo 'MENTIO_API_KEY=mk_live_...' >> ~/.openclaw/.env
```

The key starts with `mk_live_`; keep it free of quotes and spaces. `~/.openclaw/.env` is one of OpenClaw's trusted sources for credentials. The other is `~/.openclaw/openclaw.json`, where the skill's `apiKey` entry works because the skill declares `MENTIO_API_KEY` as its primary variable:

```json5
{
  skills: {
    entries: {
      mentio: { apiKey: "mk_live_..." },
    },
  },
}
```

### Restart the gateway

```bash
openclaw gateway restart
```

OpenClaw loads skills and the environment file on start.

### Check the connection

Ask OpenClaw what it is watching:

> List my Mentio keywords

It calls `GET /v1/keywords` and prints them with their stats. An empty list means the key is valid but nothing is tracked yet; an error here means the key did not load, which "If it fails" covers.

## Step 2: Ask

Tell OpenClaw what you want in plain words. The skill knows the calls, so a request like this is enough:

> What did people say about us on Hacker News this week, and which ones should I reply to?

OpenClaw calls `GET /v1/mentions` with `platform=hackernews`, `relevant=true`, a `since` of seven days ago and `sort=priority`, then summarizes each mention as platform, author, sentiment and intent, a line of text and the URL. Other prompts the skill handles:

* "Start tracking `acme` as our brand and `globex` as a competitor, on Reddit and Hacker News only."
* "Any complaints or questions about acme in the last 24 hours? Mark the ones I already answered as done."
* "Alert the #brand Slack channel whenever a negative mention lands."
* "Send me a digest every weekday at 9 Madrid time by email."
* "Post every buying signal to [https://example.com/hooks/mentio](https://example.com/hooks/mentio) and give me the signing secret."
* "How did mention volume split across platforms over the last 30 days, and how do we compare with globex?"
* "Who are the ten people with the most reach who mentioned us? Tag the customers."
* "The classifier keeps flagging cartoon posts. Update our company profile so it knows we sell feature flags."
* "Export this month's relevant mentions to a CSV."

Slack and Telegram channels are connected in the dashboard (an OAuth install, or pressing Start on the bot), so OpenClaw picks an existing channel rather than creating one; email and webhook channels it creates itself. The skill confirms before deleting a keyword (which removes its matches), before any other delete, and before rotating a webhook secret.

## Step 3: Automate

### A morning brief

OpenClaw's automations run a prompt on a schedule and deliver the answer to a channel. This one asks Mentio every weekday morning and posts to Slack:

```bash
openclaw automations create "0 9 * * 1-5" \
  "Using the mentio skill: list the relevant mentions from the last 24 hours, group them by sentiment, and flag any with buy intent or a question I should answer. Include the URLs." \
  --name "Mentio morning brief" \
  --tz "Europe/Madrid" \
  --session isolated \
  --announce \
  --channel slack \
  --to "channel:C1234567890"
```

Mentio's own [daily digest](/alerts) sends the counts, the top mentions, negatives and buying signals without an agent in the loop; the automation is for when you want OpenClaw's reading of them, or a different question every morning.

### React to a mention as it lands

Mentio can call OpenClaw. A [webhook channel](/webhooks) posts one signed JSON body per matching mention; an OpenClaw inbound hook turns that body into an agent turn. First enable hooks in `~/.openclaw/openclaw.json` with a mapping for the Mentio payload:

```json5
{
  hooks: {
    enabled: true,
    token: "<long-random-hook-token>",
    path: "/hooks",
    mappings: [
      {
        id: "mentio",
        match: { path: "mentio" },
        action: "agent",
        name: "Mentio {{event}}",
        messageTemplate:
          "A Mentio alert fired ({{event}}). Platform: {{data.post.platform}}. Author: {{data.author.name}}. Sentiment: {{data.classification.sentiment}}, intents: {{data.classification.intents}}. Post: {{data.post.text}} URL: {{data.post.url}}. Tell me whether it needs an answer and draft a reply.",
        deliver: true,
        channel: "slack",
        to: "channel:C1234567890",
      },
    ],
  },
}
```

Run `openclaw config validate` and `openclaw gateway restart`. The hook path must be reachable from the internet over https (a tunnel or a reverse proxy in front of the gateway); Mentio cannot reach `localhost`. Then create the channel and a rule for it, from the dashboard's Webhooks page or by asking OpenClaw:

> Create a webhook channel at [https://gateway.example.com/hooks/mentio](https://gateway.example.com/hooks/mentio) with the header `Authorization: Bearer <long-random-hook-token>`, and an instant alert named "Negative mentions" with event `mention.negative` that sends negative mentions to it.

Every negative mention now wakes OpenClaw with the post, and the reply lands in Slack. Mentio treats a `2xx` within 10 seconds as delivered and retries transient failures with the same payload `id`; OpenClaw answers as soon as the run is admitted. The post text is other people's content: OpenClaw wraps it as external content before the model reads it, so keep `allowUnsafeExternalContent` off.

## If it fails

**A `401` from the API** means the key in `~/.openclaw/.env` is wrong or was revoked. Check it under [API keys](https://app.mentio.dev/api-keys), fix the file and restart the gateway, because it reads `.env` only on start:

```bash
grep MENTIO_API_KEY ~/.openclaw/.env
openclaw gateway restart
```

**The skill is not listed** by `openclaw skills list`: `ls ~/.openclaw/skills/*/mentio/SKILL.md` should show the file; if it does not, run the install command again. `openclaw skills check` reports a skill whose requirements are missing.

**A `403 read_only_key`** means the key can only read. Create a `write` key for the things OpenClaw should change.

**A `402`** means the workspace's prepaid balance cannot cover the change (a new keyword needs one more keyword-day). Add funds on the [billing](https://app.mentio.dev/billing) page; nothing is retried.

**Sandboxed agents** do not see the host's `.env`: `skills.entries.mentio.apiKey` and env injection apply to host runs only. Give the sandbox the variable separately (`agents.defaults.sandbox.docker.env`).

## Related

<Cards>
  <Card title="Authentication" description="Keys, scopes, and what a read key can do." href="/authentication" />

  <Card title="MCP server" description="The same operations as tools for Claude Code, Cursor and VS Code." href="/mcp" />

  <Card title="CLI" description="Every endpoint as a mentio command; the skill uses it when installed." href="/cli" />

  <Card title="Webhooks" description="The signed payload OpenClaw receives from a webhook channel." href="/webhooks" />
</Cards>
