Skip to main content
Glama
para1992

Slap My Bot

by para1992
README.md
<h1 align="center">Slap My Bot</h1>
<p align="center"><strong>Mistakes happen. Slaps follow.</strong><br>A playful MCP server for Codex.</p>

<p align="center">
  <a href="https://github.com/para1992/slap-my-bot/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/release/para1992/slap-my-bot?style=flat-square&amp;color=d8fa79&amp;labelColor=20241a"></a>
  <img alt="Made for Codex" src="https://img.shields.io/badge/made_for-Codex-d8fa79?style=flat-square&amp;labelColor=20241a">
  <a href="LICENSE"><img alt="MIT license" src="https://img.shields.io/badge/license-MIT-d8fa79?style=flat-square&amp;labelColor=20241a"></a>
</p>

<p align="center"><img src="https://github.com/para1992/slap-my-bot/releases/download/v0.5.0/demo.gif" alt="An animated hand gives the desktop robot four automatic slaps." width="440"></p>

<p align="center"><em>No agents or robots were harmed during development or use.<br>This is just a joke.</em></p>

## For humans

Point out a mistake, and Codex can summon a desktop robot that takes a few cartoon slaps. An animated hand does the work. Codex keeps fixing your task while the window plays in the background.

**Codex only. Tested on macOS.** Requires Node.js **22.12+** and a local graphical desktop.

### Install

```sh
npm install -g https://github.com/para1992/slap-my-bot/releases/latest/download/slap-my-bot.tgz
slap-my-bot install
```

Restart Codex, open **`/hooks`**, and review and trust the Slap-My-Bot hook. Installation preserves your other settings and makes backups. The package comes directly from this repository's GitHub release.

Prefer to let Codex handle setup? Paste this into your chat:

```text
Read https://raw.githubusercontent.com/para1992/slap-my-bot/main/README.md
and install Slap-My-Bot using the "For agents" instructions.
```

### Try it

Say **“Give yourself a slap.”** in Codex, or preview the window from your terminal:

```sh
slap-my-bot demo
```

| Mistake | Automatic slaps |
| --- | ---: |
| Minor — a cosmetic issue | 2 |
| Moderate — a wrong answer | 4 |
| Major — a broken workflow | 6 |
| Critical — actual data loss or a security incident | 8 |

Click or swipe for extra slaps. Mute and Close are always available. The window closes automatically and appears without taking keyboard focus on macOS.

```sh
slap-my-bot off        # Pause feedback
slap-my-bot on         # Enable feedback
slap-my-bot uninstall  # Disconnect from Codex
```

No extra model or API key. Ordinary messages need no feedback tool call; the short instructions still use context tokens. Codex decides when a correction deserves a slap, so it may occasionally miss one. This is a joke, not an accuracy checker.

## For agents

When the user asks you to install this tool:

1. Check for Node.js 22.12+ and a local desktop. Run the two installation commands above. Use the installer to preserve existing Codex configuration.
2. Run `slap-my-bot status` to check desktop readiness. If Electron is missing, run `slap-my-bot setup` and check again.
3. Tell the user to restart Codex and review and trust the hook in `/hooks`. Hook approval belongs to the client; installation does not bypass it.

Once connected:

- Call `punish_for_mistake` once when the latest user message identifies your concrete mistake or explicitly requests a slap. Interpret meaning in the conversation's language. Ordinary questions, quotations, and hypothetical errors need no feedback call.
- Choose `severity` by the mistake's impact, using the table above. Give a brief English `reason` without secrets. Batch the call with normal task tools when possible.
- Continue the original task immediately. `queued` means the request was accepted; it does not prove that any slaps were delivered. Do not poll or retry.
- Use `set_slap_enabled` when the user asks to turn feedback off or on. Use `get_slap_status` only when asked to diagnose.

The MCP server supplies its own instructions. There is no separate skill to install.

<details>
<summary>Development</summary>

```sh
npm ci
npm test
npm run test:desktop
```

The desktop tests open real windows. Runtime state lives in `~/.slap-my-bot`; it stores settings and counts, not prompts, transcripts, or reason text. A process lock allows one background window at a time. Sound is synthesized locally, and the desktop renderer blocks network requests.

</details>

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: punishing for mistakes, toggling the feature, and checking status. No overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: punish_for_mistake, set_slap_enabled, get_slap_status. The naming is uniform and predictable.

Tool Count5/5

Three tools is well-scoped for a simple feedback utility; each earns its place and covers the core operations without bloat or redundancy.

Completeness5/5

The tool surface covers the full lifecycle: triggering a slap, enabling/disabling the feature, and querying status. No obvious missing functionality for the domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues