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:
- Global market data: Supports US stocks, European stocks (including the Dutch AEX), Asian indices, foreign exchange, gold, crude oil, and cryptocurrency data.
- Today’s key news aggregation: Retrieves news via Google News and ranks it by source weight and timeliness.
- Macro calendar: Includes central bank meeting schedules such as FOMC and ECB (2026 data verified).
- Bilingual support: Supports Chinese and English; each delivery target can independently configure its language.
- Independent scheduling: Each bot or target can have its own send time and timezone.
- In-chat trigger: Use the
finreport_sendtool to immediately retrieve the daily report by sending a command in chat. - RPC endpoints: Provides the
report.generate,report.send, andreport.statusendpoints. - Web GUI: Provides a visual settings page for generating a preview or sending immediately.
- No runtime dependencies: Relies only on the built-in
fetchin 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¶
- Depends on proactive sending via dsh-im: The plugin depends on the
bot.sendTextproactive sending endpoint indsh-im. If you use@xmanrui/dsh-im@0.2.2, a patch is required to support proactive sending, or a customdeliverfunction must be provided. Some channels (such as DingTalk) may not be directly usable as delivery targets. - 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).
- Macro calendar: The macro calendar is a static configuration (verified for 2026), not automatically fetched;
events.jsonmust be maintained manually. - 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.