When deploying a DeepSeek Harness agent locally, the model usually cannot directly access smartphone SMS. To solve this problem, a local HTTP service is needed to receive data from SMS forwarding apps and expose the stored data for model queries. huaxiren6/dsh-sms-webhook is exactly such a plugin.

What It Is

This is an SMS forwarding Webhook plugin for DeepSeek Harness, maintained by user huaxiren6. It receives pushes from mobile SMS forwarding apps (such as SMS Forwarder), stores SMS content on disk, and provides the sms_recent and sms_search tools for the model to call.

Core Features

  • Receive and Store: Receives SMS messages and persists them.
  • Model Tools: Provides the sms_recent tool to query recent SMS messages and the sms_search tool for full-text search.
  • Verification Code Extraction: Automatically extracts verification codes (generates an otp field).
  • Filtering Mechanism: Supports filtering by a keyword whitelist.
  • Data Format: Stored in JSONL format, with automatic trimming supported (limit of 5000 messages).

Installation and Enablement

Install it with the official command:

dsh plugin --profile web add dsh-sms-webhook

After installation, the plugin listens on a local port and waits for POST requests sent from the mobile device.

Typical Usage

Mobile Device Configuration

Use any app that supports “forwarding SMS to HTTP”, such as SMS Forwarder, Tasker, or iOS Shortcuts. Set the forwarding target address to:

POST http://<电脑IP>:8899/
Content-Type: application/json

The JSON data being sent supports common aliases:

{
  "from": "10086",
  "body": "您的验证码是 123456,5 分钟内有效。",
  "receivedAt": 1787180000000,
  "device": "Pixel 8"
}

The from field can be written as sender, number, or phone, and body can be written as text, message, or content. If no timestamp is provided, the server uses the current time.

HTTP Interface

Method/Path Purpose
POST / Receive SMS (200=stored, 202=filtered by keywords)
GET /?limit=20&q=验证码 Query recent SMS (optional q filter)
GET /health Health check probe

Configuration Description

The plugin supports the following configuration options (usually set in a configuration file):

Key Default Value Meaning
host 0.0.0.0 Listening address
port 8899 Listening port
store $DSH_HOME/data/dsh-sms-webhook/messages.jsonl Storage file path
keywords [] When not empty, only accepts messages containing these words (e.g., ["验证码", "code"])

Use Cases and Notes

  • Use Scenarios: Suitable for developers who need to read SMS verification codes or historical SMS content with a local model.
  • Security Note: A listening address of 0.0.0.0 means anyone on the local network can initiate POST requests. It is recommended to restrict the source in the mobile app or use it only in trusted networks.
  • Storage Limit: The storage file is limited to 5000 messages; older data is automatically trimmed when the limit is exceeded.

The plugin is released under the MIT License.

Summary

This plugin solves the pain point of reading SMS with a local agent by implementing SMS reception, storage, and query through a simple Webhook interface. For scenarios requiring processing of verification codes or SMS information, this is a ready-to-use solution.