Introduction

The philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When building workflows that require real-time financial information, manually curating market data, news aggregation, and macro calendars is inefficient. The dsh-finreport plugin automatically generates financial daily reports (Chinese/English bilingual) using free data sources and delivers them on schedule to any IM channel. The plugin is maintained by SkyloveQiu and follows the MIT license.

Installation and Activation

Install the plugin via the command line. After installation, restart the dsh web service and enable it in the Web interface.

# 从本地路径安装
dsh plugin --profile web add file:/path/to/dsh-finreport

# 或从 GitHub 安装
dsh plugin --profile web add github:SkyloveQiu/dsh-finreport

After installation, restart dsh web, then open “Settings → Plugins → Financial Daily Report” to access the settings page.

Core Features

The plugin provides the following capabilities:

  1. Global market data: Supports US stocks, European stocks (including the Dutch AEX), Asian indices, foreign exchange, gold, crude oil, and cryptocurrency data.
  2. Today’s key news aggregation: Retrieves news via Google News and ranks it by source weight and timeliness.
  3. Macro calendar: Includes central bank meeting schedules such as FOMC and ECB (2026 data verified).
  4. Bilingual support: Supports Chinese and English; each delivery target can independently configure its language.
  5. Independent scheduling: Each bot or target can have its own send time and timezone.
  6. In-chat trigger: Use the finreport_send tool to immediately retrieve the daily report by sending a command in chat.
  7. RPC endpoints: Provides the report.generate, report.send, and report.status endpoints.
  8. Web GUI: Provides a visual settings page for generating a preview or sending immediately.
  9. No runtime dependencies: Relies only on the built-in fetch in Node.js, with no third-party runtime dependencies.

Configuration

Plugin configuration is overridden through the cordis.patch.yml file of a profile. Configuration items include the global default send time, timezone, data directory, and delivery target list.

- id: dsh-finreport
  config:
    schedule: "08:00"              # 全局默认发送时间
    timezone: Europe/Amsterdam     # 全局默认时区
    enabled: true
    maxNews: 8
    dataDir: ~/.dsh/integrations/dsh-finreport
    baseUrl: http://127.0.0.1:3080
    delivery:
      - channel: whatsapp
        botId: whatsapp_xxxxxxxxxxxxxxxx
        jid: "31xxxxxxxxx@lid"
        language: zh
        schedule: "08:00"
        timezone: Europe/Amsterdam
      - channel: telegram
        botId: telegram_xxxxxxxxxxxxxxxx
        chatId: 123456789
        language: en
        schedule: "09:30"
        timezone: Asia/Shanghai

On first run, an events.json file is generated in dataDir, containing the central bank meeting schedule for 2026. Changes to this file take effect immediately without a restart.

Usage

In-Chat Trigger

The plugin registers the finreport_send tool with the agent. Send a command in a connected bot conversation to trigger it:

日报
英文日报
send the daily report in English

The bot will call the tool to generate the daily report. By default, it sends the report back to the current conversation; if the session cannot be identified, it is sent to all configured targets.

RPC Endpoint Calls

Call the RPC endpoints through the /finreport channel.

Endpoint Description
report.generate Generate report text
report.send Generate and push the report
report.status View scheduling status for each target

Example:

curl -X POST http://127.0.0.1:3080/finreport/report.send \
  -H 'Content-Type: application/json' \
  -d '{"type":"client-request","rpcId":"demo","method":"report.send","payload":{"language":"en"}}'

Web GUI

In the Web settings page at “Settings → Plugins → Financial Daily Report”, you can view status, generate a preview, or send immediately.

Notes

  1. Depends on proactive sending via dsh-im: The plugin depends on the bot.sendText proactive sending endpoint in dsh-im. If you use @xmanrui/dsh-im@0.2.2, a patch is required to support proactive sending, or a custom deliver function must be provided. Some channels (such as DingTalk) may not be directly usable as delivery targets.
  2. Data source rate limiting: The free Yahoo Finance interface is occasionally rate-limited; the plugin includes built-in retry and fallback mechanisms (cryptocurrency data is served by CoinGecko).
  3. Macro calendar: The macro calendar is a static configuration (verified for 2026), not automatically fetched; events.json must be maintained manually.
  4. Session lookup: In-chat triggering relies on the dsh-im state file to perform session lookup.

Closing

dsh-finreport is suitable for workflow developers who need automated financial information distribution. With appropriate configuration, you can achieve scheduled daily report delivery across multiple channels and languages, or retrieve reports instantly via chat commands. Please review the source code and license before installation.

Plugin Directory | GitHub Repository