add-reactions
Add WhatsApp emoji reaction support — receive, send, store, and search reactions.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install gavrielc-nanoclaw-add-reactions
Repository
Skill path: .claude/skills/add-reactions
Add WhatsApp emoji reaction support — receive, send, store, and search reactions.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: gavrielc.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install add-reactions into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/gavrielc/nanoclaw before adding add-reactions to shared team environments
- Use add-reactions for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw 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 NanoClaw'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: ```bash 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 ```bash git remote -v ``` If `whatsapp` is missing, add it: ```bash git remote add whatsapp https://github.com/qwibitai/nanoclaw-whatsapp.git ``` ### Merge the skill branch ```bash git fetch whatsapp skill/reactions git merge whatsapp/skill/reactions ``` 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) - `container/skills/reactions/SKILL.md` (agent-facing documentation for the `react_to_message` MCP tool) - Reaction support in `src/db.ts`, `src/channels/whatsapp.ts`, `src/types.ts`, `src/ipc.ts`, `src/index.ts`, `src/group-queue.ts`, and `container/agent-runner/src/ipc-mcp-stdio.ts` ### Run database migration ```bash npx tsx scripts/migrate-reactions.ts ``` ### Validate code changes ```bash npm test npm run build ``` All tests must pass and build must be clean before proceeding. ## Phase 3: Verify ### Build and restart ```bash npm run build ``` Linux: ```bash systemctl --user restart nanoclaw ``` macOS: ```bash launchctl kickstart -k gui/$(id -u)/com.nanoclaw ``` ### Test receiving reactions 1. Send a message from your phone 2. React to it with an emoji on WhatsApp 3. Check the database: ```bash 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 NanoClaw 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