{"id":46729954,"url":"https://github.com/robb99/clay-webhook-bridge","last_synced_at":"2026-03-23T16:01:06.456Z","repository":{"id":336169769,"uuid":"1148538738","full_name":"robb99/clay-webhook-bridge","owner":"robb99","description":"Event-driven Home Assistant -\u003e OpenClaw webhook bridge (webhook -\u003e gateway wake)","archived":false,"fork":false,"pushed_at":"2026-02-03T04:38:46.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-03T18:21:29.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robb99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-03T04:34:49.000Z","updated_at":"2026-02-03T04:38:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/robb99/clay-webhook-bridge","commit_stats":null,"previous_names":["robb99/clay-webhook-bridge"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/robb99/clay-webhook-bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robb99%2Fclay-webhook-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robb99%2Fclay-webhook-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robb99%2Fclay-webhook-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robb99%2Fclay-webhook-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robb99","download_url":"https://codeload.github.com/robb99/clay-webhook-bridge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robb99%2Fclay-webhook-bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30863009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-23T14:38:03.667Z","status":"ssl_error","status_checked_at":"2026-03-23T14:38:01.683Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-09T15:00:26.394Z","updated_at":"2026-03-23T16:01:06.436Z","avatar_url":"https://github.com/robb99.png","language":"Python","funding_links":[],"categories":["Skills vs Plugins: What's the Difference?"],"sub_categories":["Bundled Plugins"],"readme":"# clay-webhook-bridge\n\nEvent-driven Home Assistant -\u003e OpenClaw bridge. Receives POST webhooks, validates a shared token, and calls `clawdbot gateway call cron.wake` with a compact JSON payload. All requests (valid and invalid) are logged to a JSONL file.\n\n## Requirements\n- Python 3.10+ (works with 3.8+ but 3.10+ recommended)\n- `clawdbot` available in PATH on the VM\n\n## Install (Ubuntu VM)\n```bash\nsudo apt-get update\nsudo apt-get install -y python3 python3-venv\n\nsudo mkdir -p /opt/clay-webhook-bridge\nsudo chown $USER:$USER /opt/clay-webhook-bridge\n\ncd /opt/clay-webhook-bridge\npython3 -m venv .venv\n. .venv/bin/activate\npip install -r requirements.txt\n```\n\n## Run (CLI)\n```bash\nexport CLAY_WEBHOOK_TOKEN=\"your-shared-token\"\npython -m clay_webhook_bridge --host 0.0.0.0 --port 8789 --token-env CLAY_WEBHOOK_TOKEN --log /var/log/clay-webhook-bridge.jsonl \\\n  --gateway-url \"ws://YOUR_MAC_MINI_IP:PORT\" \\\n  --gateway-token-env CLAWDBOT_GATEWAY_TOKEN\n```\n\n## Test with curl\n```bash\nexport CLAY_WEBHOOK_TOKEN=\"your-shared-token\"\n\ncurl -X POST \"http://127.0.0.1:8789/webhook\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-Ping-Token: $CLAY_WEBHOOK_TOKEN\" \\\n  -d '{\"event_type\":\"test\",\"source\":\"home_assistant\",\"message\":\"hello\"}'\n```\n\n## Systemd (example)\nSee `examples/systemd/clay-webhook-bridge.service` for a unit file. Edit the `User`, `WorkingDirectory`, and `Environment` values to match your VM.\n\nTypical setup:\n```bash\nsudo cp examples/systemd/clay-webhook-bridge.service /etc/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable clay-webhook-bridge\nsudo systemctl restart clay-webhook-bridge\nsudo systemctl status clay-webhook-bridge\n```\n\n## Home Assistant examples\nSee `examples/home_assistant.yaml` for `rest_command` + automation samples. Make sure the `X-Ping-Token` header matches the shared token.\n\n## Logs\nEvery request is written to a JSONL file (valid and invalid). Each line includes timestamp, validation result, and either the error or the command + event payload.\n\n## Tests\n```bash\npytest\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobb99%2Fclay-webhook-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobb99%2Fclay-webhook-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobb99%2Fclay-webhook-bridge/lists"}