{"id":"4487903c-56bc-4323-b9ed-fe63885387f0","entityType":"agent","slug":"clawhub-hajekt2-android-sms-gateway-local","name":"android-sms-gateway-local","canonicalUrl":"https://www.xpersona.co/agent/clawhub-hajekt2-android-sms-gateway-local","canonicalPath":"/agent/clawhub-hajekt2-android-sms-gateway-local","generatedAt":"2026-10-10T01:14:10.106Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":null},"description":"Send and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17dmjpd250973tjtpk2e7fdmx885wc8:android-sms-gateway-local","sourceUrl":"https://clawhub.ai/hajekt2/android-sms-gateway-local","homepage":"https://clawhub.ai/hajekt2/skills/android-sms-gateway-local","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/hajekt2/android-sms-gateway-local","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/hajekt2/skills/android-sms-gateway-local","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":69,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"android-sms-gateway-local technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":null},"stars":null,"forks":null,"downloads":2938,"packageName":null,"latestVersion":"0.1.0","tractionLabel":"2.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T10:39:47.024Z","lastCrawledAt":"2026-10-09T10:39:47.024Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T10:39:47.024Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.0","createdAt":"2026-07-25T22:24:44.737Z","changelog":"android-sms-gateway-local v0.1.0 - Initial release. - Enables sending and receiving SMS/MMS using the Android SMS Gateway app in Local Server mode via Basic Auth. - Supports actions: send SMS, receive SMS via webhook, export inbox, and check message status. - Includes instructions for gathering required inputs and validating connection to the gateway device. - Provides script references for core actions, including message sending, webhook management, and inbox export.","fileCount":18,"zipByteSize":10108}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dmjpd250973tjtpk2e7fdmx885wc8:android-sms-gateway-local","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17dmjpd250973tjtpk2e7fdmx885wc8:android-sms-gateway-local` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/hajekt2/android-sms-gateway-local before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T01:14:10.106Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hajekt2-android-sms-gateway-local/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":null},"readme":"Skill: android-sms-gateway-local\n\nOwner: hajekt2\n\nSummary: Send and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks.\n\nTags: latest:0.1.0\n\nVersion history:\n\nv0.1.0 | 2026-07-25T22:24:44.737Z | auto\n\nandroid-sms-gateway-local v0.1.0\n\n- Initial release.\n- Enables sending and receiving SMS/MMS using the Android SMS Gateway app in Local Server mode via Basic Auth.\n- Supports actions: send SMS, receive SMS via webhook, export inbox, and check message status.\n- Includes instructions for gathering required inputs and validating connection to the gateway device.\n- Provides script references for core actions, including message sending, webhook management, and inbox export.\n\nArchive index:\n\nArchive v0.1.0: 18 files, 10108 bytes\n\nFiles: .gitignore (71b), LICENSE (1068b), README.md (882b), references (0b), references/api.md (2553b), scripts (0b), scripts/delete_webhook.sh (546b), scripts/export_inbox.sh (886b), scripts/get_message.sh (536b), scripts/health.sh (419b), scripts/list_devices.sh (420b), scripts/list_messages.sh (954b), scripts/list_webhooks.sh (421b), scripts/register_webhook.sh (874b), scripts/send_sms.sh (1774b), skill-card.md (2362b), SKILL.md (2522b), _meta.json (144b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: android-sms-gateway-local\ndescription: Send and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks.\n---\n\n# Android SMS Gateway (Local)\n\nUse this skill when working with the Android SMS Gateway app in Local Server mode. Keep the flow minimal and confirm missing inputs before calling the API.\n\n## Gather Inputs\n\nAsk for any missing details:\n- Device local IP and port (default port is 8080)\n- Local Server username and password\n- Action: send SMS, receive SMS (webhook), export inbox, or check status\n- For sending: phone numbers, message text, optional `deviceId` and `simNumber`\n- For receiving: webhook URL and whether HTTPS is available\n- For exporting inbox: `deviceId` and a time window (`since`, `until`)\n\n## Connect and Validate\n\n- Base URL for Local Server is `http://<device_ip>:<port>`.\n- Local Server supports Basic Auth only; include credentials in every request.\n- Validate connectivity first with `GET /health`, then list devices with `GET /devices`.\n\n## Send SMS\n\n- Use `POST /messages` with `phoneNumbers` and `textMessage.text` (preferred) or `dataMessage` if requested.\n- Include `deviceId` or `simNumber` when the user wants to target a specific device or SIM.\n- Use `withDeliveryReport: true` if the user needs delivery confirmation.\n\n## Receive SMS\n\n- Register a webhook with `POST /webhooks` and `event: \"sms:received\"` (optionally scope to a `deviceId`).\n- The webhook receiver must support HTTPS for private IPs unless it is `http://127.0.0.1`.\n- To fetch historical inbox messages, call `POST /messages/inbox/export` after the webhook is registered.\n\n## Status Tracking\n\n- Use `GET /messages/{id}` to read the message `state` and other fields.\n- Consider also registering `sms:sent`, `sms:delivered`, and `sms:failed` webhooks for near-real-time status updates.\n\n## References\n\n- Use `{baseDir}/references/api.md` for endpoint summaries, payload shapes, and event names.\n\n## Scripts\n\n- Use `{baseDir}/scripts/health.sh` and `{baseDir}/scripts/list_devices.sh` to verify connectivity.\n- Use `{baseDir}/scripts/send_sms.sh` to send a text message.\n- Use `{baseDir}/scripts/get_message.sh` and `{baseDir}/scripts/list_messages.sh` to check status.\n- Use `{baseDir}/scripts/register_webhook.sh`, `{baseDir}/scripts/list_webhooks.sh`, and `{baseDir}/scripts/delete_webhook.sh` to manage webhooks.\n- Use `{baseDir}/scripts/export_inbox.sh` to replay inbox messages.\n\nFile v0.1.0:README.md\n\n# Android SMS Gateway Local Skill\n\nThis repo contains a skill for OpenClaw that sends and receives SMS via the Android SMS Gateway app in Local Server mode with Basic Auth.\n\n**Contents**\n- `SKILL.md`\n- `references/api.md`\n- `scripts/*.sh`\n\n**Install**\n1. Clone this repo.\n2. Copy the skill folder into your OpenClaw skills directory.\n\nExample:\n```bash\n# Replace $OPENCLAW_SKILLS with your configured skills directory\ncp -R . \"$OPENCLAW_SKILLS/android-sms-gateway-local\"\n```\n\n**Usage**\n```bash\nchmod +x scripts/*.sh\nexport SMS_GATE_BASE_URL=\"http://192.168.1.10:8080\"\nexport SMS_GATE_USER=\"your-user\"\nexport SMS_GATE_PASS=\"your-pass\"\nexport PHONE_NUMBERS=\"+15551234567\"\nexport MESSAGE_TEXT=\"Hello from Local Server\"\n./scripts/send_sms.sh\n```\n\n**Security**\nNever commit credentials. Use environment variables or a local `.env` file that is ignored by git.\n\n**License**\nSee `LICENSE`.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn79sz4h2hzc5wxxtarf1zr47980m8bj\",\n  \"slug\": \"android-sms-gateway-local\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785018284737\n}\n\nFile v0.1.0:references/api.md\n\n# API Reference (Local Mode)\n\nUse this as a compact reminder. For full details, consult the official docs.\n\n## Base URL and Auth\n\n- Local Server base: `http://<device_ip>:<port>` (default `8080`).\n- Local Server supports Basic Auth only.\n\nNote: The Local Server quickstart shows `POST /message`, while the OpenAPI spec lists `/messages`. Prefer `/messages`; if you see 404 on Local Server, try `/message`.\n\n## Health and Devices\n\n- `GET /health`\n- `GET /devices`\n\n## Send SMS (Text)\n\n- `POST /messages`\n- Required: `phoneNumbers` (array)\n- Preferred payload: `textMessage: { \"text\": \"...\" }`\n- Optional fields: `deviceId`, `simNumber`, `priority`, `ttl`, `validUntil`, `withDeliveryReport`\n- Query params: `skipPhoneValidation` (bool), `deviceActiveWithin` (hours)\n\nExample (text message):\n```json\n{\n  \"phoneNumbers\": [\"+15551234567\"],\n  \"textMessage\": { \"text\": \"Hello from Local Server\" },\n  \"withDeliveryReport\": true\n}\n```\n\n## Message Status\n\n- `GET /messages/{id}`\n- `GET /messages` with query params: `from`, `to`, `state`, `deviceId`, `limit`, `offset`\n- States: `Pending`, `Processed`, `Sent`, `Delivered`, `Failed`\n- `Delivered` is only available if `withDeliveryReport` was enabled at send time.\n\n## Receive SMS (Webhooks)\n\n- `POST /webhooks` with body `{ \"url\": \"https://...\", \"event\": \"sms:received\", \"deviceId\": \"...\" }`\n- Events: `sms:received`, `sms:data-received`, `mms:received`, `sms:sent`, `sms:delivered`, `sms:failed`, `system:ping`\n- HTTPS is required for private IPs; only `http://127.0.0.1` can be used without TLS.\n\n## Inbox Export (Historical Receive)\n\n- `POST /messages/inbox/export` with `deviceId`, `since`, `until`\n- Requires a registered `sms:received` webhook; the device will replay inbox messages to the webhook URL.\n\n## Webhooks Management\n\n- `GET /webhooks`\n- `DELETE /webhooks/{id}`\n\n## Test Scripts (Bash + curl)\n\nAll scripts live in `{baseDir}/scripts/` and use `curl.exe`.\n\nRequired env vars for all scripts:\n- `SMS_GATE_BASE_URL` (example: `http://192.168.1.10:8080`)\n- `SMS_GATE_USER`\n- `SMS_GATE_PASS`\n\nLinux tip: `chmod +x {baseDir}/scripts/*.sh` before running.\n\nPer-script env vars:\n- `send_sms`: `PHONE_NUMBERS` (comma-separated), `MESSAGE_TEXT`, optional `DEVICE_ID`, `SIM_NUMBER`, `WITH_DELIVERY_REPORT`\n- `get_message`: `MESSAGE_ID`\n- `list_messages`: optional `MSG_FROM`, `MSG_TO`, `MSG_STATE`, `DEVICE_ID`, `MSG_LIMIT`, `MSG_OFFSET`\n- `register_webhook`: `WEBHOOK_URL`, optional `WEBHOOK_EVENT`, `DEVICE_ID`\n- `delete_webhook`: `WEBHOOK_ID`\n- `export_inbox`: `DEVICE_ID`, `INBOX_SINCE`, `INBOX_UNTIL`\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nSend and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[hajekt2](https://clawhub.ai/user/hajekt2)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and operators use this skill to help an agent configure and call an Android SMS Gateway device in Local Server mode for sending SMS/MMS, checking message status, managing webhooks, and exporting inbox messages.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can send SMS, access message status, register webhooks, and replay inbox messages when given gateway credentials.\n\nMitigation: Confirm the intended action, destination numbers, webhook URL, device scope, and inbox export time window before running commands.\n\nRisk: Gateway credentials and SMS contents may be exposed if Local Server traffic crosses an untrusted network.\n\nMitigation: Use the skill only on a trusted network or behind TLS, VPN, or loopback protection, avoid shared Wi-Fi, and rotate credentials if they may have been sent over an untrusted network.\n\nRisk: Webhook registration can forward received SMS/MMS content to an unintended endpoint.\n\nMitigation: Verify webhook ownership and HTTPS support before registration, and remove webhooks that are no longer needed.\n\n## Reference(s):\n\n- [API Reference (Local Mode)](references/api.md)\n- [Server-resolved GitHub source](https://github.com/hajekt2/android-sms-gateway-local)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON payload examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses environment variables for gateway URL, Basic Auth credentials, phone numbers, message text, webhook URLs, device identifiers, and time windows.]\n\n## Skill Version(s):\n\n0.1.0 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Tomas Hajek\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeExcerpt":"Skill: android-sms-gateway-local Owner: hajekt2 Summary: Send and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks. Tags: latest:0.1.0 Version history: v0.1.0 | 2026-07-25T22:24:44.737Z | auto android-sms-gateway-local v0.1.0 - Initial release. - Enables sending and receiving SMS/MMS using ","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# Replace $OPENCLAW_SKILLS with your configured skills directory\ncp -R . \"$OPENCLAW_SKILLS/android-sms-gateway-local\""},{"language":"bash","snippet":"chmod +x scripts/*.sh\nexport SMS_GATE_BASE_URL=\"http://192.168.1.10:8080\"\nexport SMS_GATE_USER=\"your-user\"\nexport SMS_GATE_PASS=\"your-pass\"\nexport PHONE_NUMBERS=\"+15551234567\"\nexport MESSAGE_TEXT=\"Hello from Local Server\"\n./scripts/send_sms.sh"},{"language":"json","snippet":"{\n  \"phoneNumbers\": [\"+15551234567\"],\n  \"textMessage\": { \"text\": \"Hello from Local Server\" },\n  \"withDeliveryReport\": true\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: android-sms-gateway-local\ndescription: Send and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks.\n---\n\n# Android SMS Gateway (Local)\n\nUse this skill when working with the Android SMS Gateway app in Local Server mode. Keep the flow minimal and confirm missing inputs before calling the API.\n\n## Gather Inputs\n\nAsk for any missing details:\n- Device local IP and port (default port is 8080)\n- Local Server username and password\n- Action: send SMS, receive SMS (webhook), export inbox, or check status\n- For sending: phone numbers, message text, optional `deviceId` and `simNumber`\n- For receiving: webhook URL and whether HTTPS is available\n- For exporting inbox: `deviceId` and a time window (`since`, `until`)\n\n## Connect and Validate\n\n- Base URL for Local Server is `http://<device_ip>:<port>`.\n- Local Server supports Basic Auth only; include credentials in every request.\n- Validate connectivity first with `GET /health`, then list devices with `GET /devices`.\n\n## Send SMS\n\n- Use `POST /messages` with `phoneNumbers` and `textMessage.text` (preferred) or `dataMessage` if requested.\n- Include `deviceId` or `simNumber` when the user wants to target a specific device or SIM.\n- Use `withDeliveryReport: true` if the user needs delivery confirmation.\n\n## Receive SMS\n\n- Register a webhook with `POST /webhooks` and `event: \"sms:received\"` (optionally scope to a `deviceId`).\n- The webhook receiver must support HTTPS for private IPs unless it is `http://127.0.0.1`.\n- To fetch historical inbox messages, call `POST /messages/inbox/export` after the webhook is registered.\n\n## Status Tracking\n\n- Use `GET /messages/{id}` to read the message `state` and other fields.\n- Consider also registering `sms:sent`, `sms:delivered`, and `sms:failed` webhooks for near-real-time status updates.\n\n## References\n\n- Use `{baseDir}/references/api.md` for endpoint summaries, payload shapes, and event names.\n\n## Scripts\n\n- Use `{baseDir}/scripts/health.sh` and `{baseDir}/scripts/list_devices.sh` to verify connectivity.\n- Use `{baseDir}/scripts/send_sms.sh` to send a text message.\n- Use `{baseDir}/scripts/get_message.sh` and `{baseDir}/scripts/list_messages.sh` to check status.\n- Use `{baseDir}/scripts/register_webhook.sh`, `{baseDir}/scripts/list_webhooks.sh`, and `{baseDir}/scripts/delete_webhook.sh` to manage webhooks.\n- Use `{baseDir}/scripts/export_inbox.sh` to replay inbox messages."},{"path":"README.md","content":"# Android SMS Gateway Local Skill\n\nThis repo contains a skill for OpenClaw that sends and receives SMS via the Android SMS Gateway app in Local Server mode with Basic Auth.\n\n**Contents**\n- `SKILL.md`\n- `references/api.md`\n- `scripts/*.sh`\n\n**Install**\n1. Clone this repo.\n2. Copy the skill folder into your OpenClaw skills directory.\n\nExample:\n```bash\n# Replace $OPENCLAW_SKILLS with your configured skills directory\ncp -R . \"$OPENCLAW_SKILLS/android-sms-gateway-local\"\n```\n\n**Usage**\n```bash\nchmod +x scripts/*.sh\nexport SMS_GATE_BASE_URL=\"http://192.168.1.10:8080\"\nexport SMS_GATE_USER=\"your-user\"\nexport SMS_GATE_PASS=\"your-pass\"\nexport PHONE_NUMBERS=\"+15551234567\"\nexport MESSAGE_TEXT=\"Hello from Local Server\"\n./scripts/send_sms.sh\n```\n\n**Security**\nNever commit credentials. Use environment variables or a local `.env` file that is ignored by git.\n\n**License**\nSee `LICENSE`."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn79sz4h2hzc5wxxtarf1zr47980m8bj\",\n  \"slug\": \"android-sms-gateway-local\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785018284737\n}"},{"path":"references/api.md","content":"# API Reference (Local Mode)\n\nUse this as a compact reminder. For full details, consult the official docs.\n\n## Base URL and Auth\n\n- Local Server base: `http://<device_ip>:<port>` (default `8080`).\n- Local Server supports Basic Auth only.\n\nNote: The Local Server quickstart shows `POST /message`, while the OpenAPI spec lists `/messages`. Prefer `/messages`; if you see 404 on Local Server, try `/message`.\n\n## Health and Devices\n\n- `GET /health`\n- `GET /devices`\n\n## Send SMS (Text)\n\n- `POST /messages`\n- Required: `phoneNumbers` (array)\n- Preferred payload: `textMessage: { \"text\": \"...\" }`\n- Optional fields: `deviceId`, `simNumber`, `priority`, `ttl`, `validUntil`, `withDeliveryReport`\n- Query params: `skipPhoneValidation` (bool), `deviceActiveWithin` (hours)\n\nExample (text message):\n```json\n{\n  \"phoneNumbers\": [\"+15551234567\"],\n  \"textMessage\": { \"text\": \"Hello from Local Server\" },\n  \"withDeliveryReport\": true\n}\n```\n\n## Message Status\n\n- `GET /messages/{id}`\n- `GET /messages` with query params: `from`, `to`, `state`, `deviceId`, `limit`, `offset`\n- States: `Pending`, `Processed`, `Sent`, `Delivered`, `Failed`\n- `Delivered` is only available if `withDeliveryReport` was enabled at send time.\n\n## Receive SMS (Webhooks)\n\n- `POST /webhooks` with body `{ \"url\": \"https://...\", \"event\": \"sms:received\", \"deviceId\": \"...\" }`\n- Events: `sms:received`, `sms:data-received`, `mms:received`, `sms:sent`, `sms:delivered`, `sms:failed`, `system:ping`\n- HTTPS is required for private IPs; only `http://127.0.0.1` can be used without TLS.\n\n## Inbox Export (Historical Receive)\n\n- `POST /messages/inbox/export` with `deviceId`, `since`, `until`\n- Requires a registered `sms:received` webhook; the device will replay inbox messages to the webhook URL.\n\n## Webhooks Management\n\n- `GET /webhooks`\n- `DELETE /webhooks/{id}`\n\n## Test Scripts (Bash + curl)\n\nAll scripts live in `{baseDir}/scripts/` and use `curl.exe`.\n\nRequired env vars for all scripts:\n- `SMS_GATE_BASE_URL` (example: `http://192.168.1.10:8080`)\n- `SMS_GATE_USER`\n- `SMS_GATE_PASS`\n\nLinux tip: `chmod +x {baseDir}/scripts/*.sh` before running.\n\nPer-script env vars:\n- `send_sms`: `PHONE_NUMBERS` (comma-separated), `MESSAGE_TEXT`, optional `DEVICE_ID`, `SIM_NUMBER`, `WITH_DELIVERY_REPORT`\n- `get_message`: `MESSAGE_ID`\n- `list_messages`: optional `MSG_FROM`, `MSG_TO`, `MSG_STATE`, `DEVICE_ID`, `MSG_LIMIT`, `MSG_OFFSET`\n- `register_webhook`: `WEBHOOK_URL`, optional `WEBHOOK_EVENT`, `DEVICE_ID`\n- `delete_webhook`: `WEBHOOK_ID`\n- `export_inbox`: `DEVICE_ID`, `INBOX_SINCE`, `INBOX_UNTIL`"},{"path":"skill-card.md","content":"## Description:\n\nSend and receive SMS/MMS via SMS Gateway for Android (android-sms-gateway / sms-gate) using Local Server mode with Basic Auth, including webhooks, inbox export, and message status checks.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[hajekt2](https://clawhub.ai/user/hajekt2)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and operators use this skill to help an agent configure and call an Android SMS Gateway device in Local Server mode for sending SMS/MMS, checking message status, managing webhooks, and exporting inbox messages.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can send SMS, access message status, register webhooks, and replay inbox messages when given gateway credentials.\n\nMitigation: Confirm the intended action, destination numbers, webhook URL, device scope, and inbox export time window before running commands.\n\nRisk: Gateway credentials and SMS contents may be exposed if Local Server traffic crosses an untrusted network.\n\nMitigation: Use the skill only on a trusted network or behind TLS, VPN, or loopback protection, avoid shared Wi-Fi, and rotate credentials if they may have been sent over an untrusted network.\n\nRisk: Webhook registration can forward received SMS/MMS content to an unintended endpoint.\n\nMitigation: Verify webhook ownership and HTTPS support before registration, and remove webhooks that are no longer needed.\n\n## Reference(s):\n\n- [API Reference (Local Mode)](references/api.md)\n- [Server-resolved GitHub source](https://github.com/hajekt2/android-sms-gateway-local)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON payload examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses environment variables for gateway URL, Basic Auth credentials, phone numbers, message text, webhook URLs, device identifiers, and time windows.]\n\n## Skill Version(s):\n\n0.1.0 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1555,"uniquenessScore":40,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T10:39:47.024Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:14:10.106Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}