# grokbot-notify

An agent skill that lets your Claude Code agent message you in your Grok Bot chat.

## Setup

You need Claude Code and a Grok Bot account with its desktop app. Sending uses `curl` and `python3`.

Install the skill:

```bash
npx skills add AlexDemzz/skills --skill grokbot-notify -g
```

Then run the wizard in your own terminal. It needs you at the keyboard, so don’t hand it to an agent:

```bash
~/.claude/skills/grokbot-notify/scripts/setup-webhook
```

| Stage | What you do |
| --- | --- |
| Create the routine | Paste the prompt the wizard copied into your Bot’s chat in the desktop app, and send it. Skip this if the routine exists. |
| Webhook URL | Copy “POST to” from the routine’s Webhook section and paste it. |
| Authorization header | Copy “header” from the same section and paste it. |
| Test message | Send one test ping, or skip it. |

The wizard saves both values to `~/.config/grokbot/webhook.env`. Run it again when one changes: Enter keeps the others.

## What it does

Your agent tells you when it finishes a task, gets blocked or needs your decision. Leave a session running and hear back without watching it.

The agent runs one script, which POSTs a short JSON message to the webhook of a Grok Bot routine. Grok Bot relays it in your chat, in plain words, with the links the agent attached.

## When to reach for it

You don’t call it; the agent does, once per outcome, with `~/.claude/skills/grokbot-notify/scripts/grokbot-notify <status> "<summary>" [link …]`. Progress never earns a message.

| Status | Sent when |
| --- | --- |
| `done` | A meaningful task is finished. |
| `blocked` | The agent can’t go on without outside help. |
| `question` | The agent needs your decision. |
| `info` | Something else is worth an interruption. |

A new outcome earns a new message: blocked now, done an hour later.

## Common questions

**Why paste the header, not the key?**

The header already is `Bearer <key>`, so it carries the key. Paste the bare key instead and the wizard adds `Bearer` for you.

**Will it fail my agent’s task?**

No. The script always exits 0. When nothing went out, it prints a warning, and the agent tells you once to run the wizard, then carries on.

**Can I see what gets sent?**

Yes. One JSON object, with `from` set to `claude-code`, the repository’s folder as `project`, and the current `branch`:

```json
{
  "from": "claude-code",
  "project": "my-app",
  "branch": "fix-login-redirect",
  "status": "done",
  "message": "Fixed the login redirect loop. The PR is ready for review.",
  "links": ["https://github.com/owner/my-app/pull/42"]
}
```

**What stays out of a message?**

Secrets, tokens and customer data. The skill tells agents to send summaries and links only.

## It’s working if

Send the test message at the wizard’s last stage: Grok Bot tells you in your chat that it arrived. If the wizard shows a warning instead, check both values and run it again.

## Where it fits

grokbot-notify lives in [my skills repository on GitHub](https://github.com/AlexDemzz/skills/tree/master/grokbot-notify), next to [design-to-shadcn](https://alexandrejoly.me/skills/design-to-shadcn.md), which skins shadcn primitives from a reference design, and [shadcn-composition-patterns](https://alexandrejoly.me/skills/shadcn-composition-patterns.md), the compound-component laws for shadcn projects.

[Back to Alexandre Joly](https://alexandrejoly.me/index.md)
