Integrates self-hosted changedetection.io with NanoTars via API keys and webhooks to enable agents for website change detection, price monitoring, and stock alerts.
npx claudepluginhub terrifiedbug/nanotars-skills --plugin nanotars-changedetectionThis skill uses the workspace's default tool permissions.
Configures changedetection.io API access for agent containers and sets up webhook notifications so changes trigger the agent automatically.
Adds per-group webhook HTTP endpoints to NanoTars for external services like Home Assistant, uptime monitors, or Proxmox to POST events that trigger agent turns, avoiding cron polling.
Adds n8n workflow automation integration to NanoTars agents, enabling webhook-triggered monitoring workflows to avoid token-intensive polling. Guides n8n MCP server setup, API key config, and env variables.
Set up monitoring for API changes, changelogs, or documentation updates. Useful for tracking breaking changes in services you depend on.
Share bugs, ideas, or general feedback.
Configures changedetection.io API access for agent containers and sets up webhook notifications so changes trigger the agent automatically.
Before installing, verify NanoTars is set up:
[ -d node_modules ] && echo "DEPS: ok" || echo "DEPS: missing"
docker image inspect nanoclaw-agent:latest &>/dev/null && echo "IMAGE: ok" || echo "IMAGE: not built"
if grep -q "ANTHROPIC_API_KEY\|CLAUDE_CODE_OAUTH_TOKEN" .env 2>/dev/null || [ -f "$HOME/.claude/.credentials.json" ]; then echo "AUTH: ok"; else echo "AUTH: missing"; fi
If any check fails, tell the user to run /nanotars-setup first and stop.
/add-skill-webhook)grep "^CHANGEDETECTION_URL=" .env 2>/dev/null && echo "URL_SET" || echo "NEED_URL"
grep "^CHANGEDETECTION_API_KEY=" .env 2>/dev/null && echo "KEY_SET" || echo "NEED_KEY"
grep "^NANOCLAW_WEBHOOK_SECRET=" .env 2>/dev/null && echo "WEBHOOK_SET" || echo "NEED_WEBHOOK"
ls plugins/changedetection/plugin.json 2>/dev/null && echo "PLUGIN_EXISTS" || echo "NO_PLUGIN"
If NEED_WEBHOOK, tell the user to run /add-skill-webhook first -- changedetection.io needs somewhere to send notifications.
If both URL and KEY are set, ask if they want to reconfigure.
Ask the user:
Please provide your changedetection.io details:
- Instance URL (e.g.
http://192.168.1.100:5000orhttps://cd.yourdomain.com)- API key (found in Settings > API tab in the changedetection.io dashboard)
# Remove existing lines if present
sed -i '/^CHANGEDETECTION_URL=/d' .env
sed -i '/^CHANGEDETECTION_API_KEY=/d' .env
# Add the new values
echo 'CHANGEDETECTION_URL=THE_URL_HERE' >> .env
echo 'CHANGEDETECTION_API_KEY=THE_KEY_HERE' >> .env
cp -r ${CLAUDE_PLUGIN_ROOT}/files/ plugins/changedetection/
Ask the user which groups should have access to this plugin:
mainIf restricting, update plugins/changedetection/plugin.json to set "groups" to the list of group folder names.
Also ask about channel types. Leave "channels": ["*"] for all, or set to specific types (e.g., ["whatsapp"]).
source .env
curl -s "${CHANGEDETECTION_URL}/api/v1/watch" \
-H "x-api-key: ${CHANGEDETECTION_API_KEY}" | python3 -c "
import sys, json
r = json.load(sys.stdin)
if isinstance(r, dict):
print(f'OK - {len(r)} watch(es) found')
else:
print(f'FAILED - unexpected response: {str(r)[:200]}')
"
If the test fails:
Verify changedetection.io can reach NanoTars's webhook endpoint:
source .env
SECRET=$(grep "^NANOCLAW_WEBHOOK_SECRET=" .env | cut -d= -f2)
curl -s -X POST http://localhost:3457/webhook \
-H "Authorization: Bearer ${SECRET}" \
-H "Content-Type: application/json" \
-d '{"source": "changedetection-test", "text": "Test notification from changedetection.io setup"}' | python3 -c "
import sys, json
r = json.load(sys.stdin)
if r.get('ok'):
print('OK - webhook endpoint reachable')
else:
print(f'FAILED - {r}')
"
npm run build
nanotars restart # or launchctl on macOS
Ask the agent to:
When a watched page changes, changedetection.io will webhook NanoTars and the agent will notify you automatically.
If this plugin is already installed and you want different credentials for a specific group (e.g., a work account for one group, personal for another):
Check which groups exist:
ls -d groups/*/
Ask the user which group should get separate credentials.
Collect the new ChangeDetection credentials for that group.
Write to the group's .env file (creates if needed):
echo 'CHANGEDETECTION_URL=https://other-cd.example.com' >> groups/{folder}/.env
echo 'CHANGEDETECTION_API_KEY=api-key' >> groups/{folder}/.env
These values override the global .env for that group's containers only.
Restart NanoTars:
nanotars restart
rm -rf plugins/changedetection/sed -i '/^CHANGEDETECTION_URL=/d' .env
sed -i '/^CHANGEDETECTION_API_KEY=/d' .env