Skip to content
Automation
Skill

/add-reactions

Add WhatsApp emoji reaction support — receive, send, store, and search reactions.

From plugin
claudeclaw
19427 skills

Claude Code

$ npx -y skills add sbusso/claudeclaw --skill add-reactions --agent claude-code

SKILL.md

add-reactions.SKILL.md
name: add-reactions
description: Add WhatsApp emoji reaction support — receive, send, store, and search reactions.

Add Reactions

This skill adds emoji reaction support to ClaudeClaw's WhatsApp channel: receive and store reactions, send reactions from the container agent via MCP tool, and query reaction history from SQLite.

Phase 1: Pre-flight

Check if already applied

Check if `src/status-tracker.ts` exists:

test -f src/status-tracker.ts && echo "Already applied" || echo "Not applied"

If already applied, skip to Phase 3 (Verify).

Phase 2: Apply Code Changes

Ensure WhatsApp fork remote

git remote -v

If `whatsapp` is missing, add it:

git remote add whatsapp https://github.com/qwibitai/claudeclaw-whatsapp.git

Merge the skill branch

git fetch whatsapp skill/reactions
git merge whatsapp/skill/reactions || {
  git checkout --theirs package-lock.json
  git add package-lock.json
  git merge --continue
}

This adds:

  • `scripts/migrate-reactions.ts` (database migration for `reactions` table with composite PK and indexes)
  • `src/status-tracker.ts` (forward-only emoji state machine for message lifecycle signaling, with persistence and retry)
  • `src/status-tracker.test.ts` (unit tests for StatusTracker)
  • `agent/skills/reactions/SKILL.md` (agent-facing documentation for the `react_to_message` MCP tool)
  • Reaction support in `src/orchestrator/db.ts`, `src/channels/whatsapp.ts`, `src/orchestrator/types.ts`, `src/orchestrator/ipc.ts`, `src/index.ts`, `src/group-queue.ts`, and `agent/runner/src/ipc-mcp-stdio.ts`

Run database migration

npx tsx scripts/migrate-reactions.ts

Validate code changes

npm test
npm run build

All tests must pass and build must be clean before proceeding.

Phase 3: Verify

Build and restart

npm run build

> **Service name:** Derived from the directory name: `com.claudeclaw.<dirname>` (macOS) / `claudeclaw-<dirname>` (Linux). For example, if cwd is `my-assistant`, the service is `com.claudeclaw.my-assistant`. Determine the correct service name before running service commands below.

Linux:

systemctl --user restart claudeclaw

macOS:

launchctl kickstart -k gui/$(id -u)/com.claudeclaw

Test receiving reactions

1. Send a message from your phone 2. React to it with an emoji on WhatsApp 3. Check the database:

sqlite3 store/messages.db "SELECT * FROM reactions ORDER BY timestamp DESC LIMIT 5;"

Test sending reactions

Ask the agent to react to a message via the `react_to_message` MCP tool. Check your phone — the reaction should appear on the message.

Troubleshooting

Reactions not appearing in database

  • Check ClaudeClaw logs for `Failed to process reaction` errors
  • Verify the chat is registered
  • Confirm the service is running

Migration fails

  • Ensure `store/messages.db` exists and is accessible
  • If "table reactions already exists", the migration already ran — skip it

Agent can't send reactions

  • Check IPC logs for `Unauthorized IPC reaction attempt blocked` — the agent can only react in its own group's chat
  • Verify WhatsApp is connected: check logs for connection status
Read more
@sbusso
Ships withclaudeclaw

Use Claude to orchestrate agents like OpenClaw

Stars on GitHub

Momentum

stars in total
194
Star history of sbusso/claudeclaw on GitHub, a chart by star-history.com

Other skills on claudeclaw.

agent-browser

agent-browser

Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data,…

@sbusso@sbussoInstall Skill
add-compact

add-compact

Add /compact command for manual context compaction. Solves context rot in long sessions by forwarding the SDK's built-in /compact…

@sbusso@sbussoInstall Skill
add-gmail

add-gmail

Add Gmail integration to ClaudeClaw. Can be configured as a tool (agent reads/sends emails when triggered from WhatsApp) or as a…

@sbusso@sbussoInstall Skill
add-image-vision

add-image-vision

Add image vision to ClaudeClaw agents. Resizes and processes WhatsApp image attachments, then sends them to Claude as multimodal…

@sbusso@sbussoInstall Skill
add-ollama-tool

add-ollama-tool

Add Ollama MCP server so the container agent can call local models for cheaper/faster tasks like summarization, translation, or…

@sbusso@sbussoInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about add-reactions.

Which coding agents can use add-reactions?
add-reactions installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.