Slap My Bot
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
npm install -g https://github.com/para1992/slap-my-bot/releases/latest/download/slap-my-bot.tgz
slap-my-bot installRestart 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:
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:
slap-my-bot demoMistake | 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.
slap-my-bot off # Pause feedback
slap-my-bot on # Enable feedback
slap-my-bot uninstall # Disconnect from CodexNo 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:
Check for Node.js 22.12+ and a local desktop. Run the two installation commands above. Use the installer to preserve existing Codex configuration.
Run
slap-my-bot statusto check desktop readiness. If Electron is missing, runslap-my-bot setupand check again.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_mistakeonce 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
severityby the mistake's impact, using the table above. Give a brief Englishreasonwithout secrets. Batch the call with normal task tools when possible.Continue the original task immediately.
queuedmeans the request was accepted; it does not prove that any slaps were delivered. Do not poll or retry.Use
set_slap_enabledwhen the user asks to turn feedback off or on. Useget_slap_statusonly when asked to diagnose.
The MCP server supplies its own instructions. There is no separate skill to install.
npm ci
npm test
npm run test:desktopThe 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.