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&color=d8fa79&labelColor=20241a"></a>
<img alt="Made for Codex" src="https://img.shields.io/badge/made_for-Codex-d8fa79?style=flat-square&labelColor=20241a">
<a href="LICENSE"><img alt="MIT license" src="https://img.shields.io/badge/license-MIT-d8fa79?style=flat-square&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