Scheduled bilingual financial reports for DSH: market quotes, news and macro calendar, with per-target timezones and delivery through eight dsh-im channels.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:SkyloveQiu/dsh-finreport
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
每日财经日报 — DeepSeek Harness (DSH) 插件:用免费数据源自动生成财经日报 (中/英双语),按计划定时推送到已接入的任意 IM 通道;也支持在聊天内随时要求 机器人发送日报。
特性
- 🌐 全球市场:美股 / 欧股(含荷兰 AEX)/ 亚洲指数、外汇、黄金原油、比特币以太坊
- 📰 今日要闻:Google News 聚合(美股 / 宏观 / 欧洲 / 亚洲),来源权重 + 时效排序
- 📅 宏观日历:FOMC / ECB 等央行会议日程(2026 已核实,
events.json可维护,含英文名) - 🌍 双语:每投递目标可独立配置
zh(中文)或en(English),指令可临时指定 - ⏰ 每目标独立定时:每个机器人/目标可拥有自己的发送时间与时区(DST 安全,无需 cron)
- 💬 聊天内随时触发:向任意已接入的机器人发送"日报 / 英文日报"等指令,
其 agent 会调用
finreport_send工具即时生成并推送(语言可临时指定) - 🔌 RPC 端点:
report.generate/report.send/report.status - 🖥 设置页:Web GUI「设置 → 插件 → 财经日报」查看状态、生成预览、立即发送(可选语言)
- 🚫 无任何第三方运行时依赖(仅 Node 内置
fetch),数据源全部免费、无需 API Key
依赖
- DeepSeek Harness
dsh web(@deepseek-ai/dsh-base提供 timer 与 tools 服务) - IM 主动发送:dsh-im 各通道的
bot.sendText主动发送端点(8 通道全支持: WhatsApp / Telegram / Discord / 飞书 / 钉钉 / 企业微信 / QQ / 微信)。@xmanrui/dsh-im@0.2.2原生只有"响应式"回复,需要打补丁(见patch/dsh-im/), 或在插件配置中提供自定义deliver函数。
dsh-im 补丁(全通道主动发送)
给 @xmanrui/dsh-im 的全部通道增加 bot.sendText 端点
(POST /<channel>/bot.sendText,payload {botId, target, text};
WhatsApp 为 {botId, jid, text})。补丁文件按包内路径镜像在
patch/dsh-im/,README 内有应用步骤与各通道 target 结构表。
安装
# 从本地/私有源安装
dsh plugin --profile web add file:/path/to/dsh-finreport
# 或从 GitHub(发布后)
dsh plugin --profile web add github:你的用户名/dsh-finreport
重启 dsh web,打开「设置 → 插件 → 财经日报」即可看到设置页。
配置
插件配置通过 profile 的 cordis.patch.yml 覆盖。投递目标为数组,每项目标
可独立指定通道、语言、发送时间与时区:
- id: dsh-finreport
config:
schedule: "08:00" # 全局默认发送时间(目标未指定 schedule 时使用)
timezone: Europe/Amsterdam # 全局默认时区(自动处理 DST)
enabled: true
maxNews: 8
dataDir: ~/.dsh/integrations/dsh-finreport # 状态与 events.json 所在目录
baseUrl: http://127.0.0.1:3080 # 本机 dsh web 地址
delivery:
- channel: whatsapp # WhatsApp
botId: whatsapp_xxxxxxxxxxxxxxxx
jid: "31xxxxxxxxx@lid"
language: zh # zh | en
schedule: "08:00" # 可选:本目标独立发送时间
timezone: Europe/Amsterdam # 可选:本目标独立时区
- channel: telegram # Telegram
botId: telegram_xxxxxxxxxxxxxxxx
chatId: 123456789
language: en # 这个机器人每天发英文日报
schedule: "09:30"
timezone: Asia/Shanghai
# 其他通道见 patch/dsh-im/README.md 的 target 结构表
# deliver: (text) => Promise<{sent: true}> # 可选:自定义投递函数(完全接管发送)
botId 可在「设置 → 插件 → IM机器人」页面查看对应机器人的 id;各通道的 target
(chatId/channelId/receiveId 等)来自对应平台的会话标识。旧配置
whatsapp: { baseUrl, botId, jid } 仍然兼容。
首次运行时会在 dataDir 生成 events.json(2026 央行会议日程 + 月度常规说明),
可自行增补其他宏观事件(nameEn 字段用于英文日报);修改后立即生效,无需重启。
聊天内触发(finreport_send 工具)
插件会向 agent 注册 finreport_send 工具。任何已接入的机器人会话(WhatsApp /
Telegram / Discord / …)里,向机器人发送类似指令即可即时获取日报:
日报
英文日报
send the daily report in English
机器人背后的 agent 会调用 finreport_send:默认把日报发回当前对话(按发起会话
所在通道与机器人投递,语言取该机器人的配置,指令可临时指定),若无法定位当前会话
则发送到全部配置目标。
工具参数:
| 参数 | 说明 |
|---|---|
language |
'zh'(中文)或 'en'(English);缺省用目标的配置语言 |
target |
可选:投递目标下标(见 report.status)或 'all';缺省为当前会话 |
RPC 端点(/finreport 通道)
| 端点 | 请求 | 响应 |
|---|---|---|
report.generate |
{language?, maxNews?} |
{text} 报告全文 |
report.send |
{language?, target?} |
生成并推送 {targets: [{channel, botId, sent, language}]};同日已发则 {skipped} |
report.status |
{} |
每目标调度/语言/最近发送/下次运行/工具注册状态 |
示例(本地调用):
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"}}'
开发
npm install # esbuild / react(仅构建需要)
npm run build # 构建 lib/index.js 与 lib/client.js
npm test # 功能自测(含真实网络生成,需可访问 Yahoo/Google News)
结构:
plugin-src/
├── host/
│ ├── index.mjs # cordis 插件:RPC + 每目标调度 + agent 工具 + 状态持久化
│ ├── report.mjs # 日报生成(中英双语;Yahoo / CoinGecko / Google News)
│ ├── delivery.mjs # 多通道投递(8 通道 payload 翻译;会话→目标转换)
│ ├── session-map.mjs# 会话 id → (通道, 机器人, 对话) 反查(聊天内触发)
│ └── test.mjs # 功能自测
└── client/
└── index.js # Web 设置页(状态 / 语言选择 / 生成预览 / 立即发送)
推送到 GitHub
git init
git add -A
git commit -m "feat: dsh-finreport — daily financial report plugin"
# 在 GitHub 新建空仓库(如 dsh-finreport),然后:
git remote add origin git@github.com:你的用户名/dsh-finreport.git
git push -u origin main
发布后即可通过 dsh plugin --profile web add github:你的用户名/dsh-finreport 安装。
数据源与局限
- Yahoo Finance 免费接口偶有限流(内置重试与降级:加密走 CoinGecko)
- Google News 按主题查询,个别标题可能有噪音,可在
report.mjs调整NEWS_QUERIES - 宏观日历为静态配置(FOMC/ECB 2026 已核实),非自动抓取;CPI/非农等以
"月度常规"说明形式给出,可按需增补
events.json - 聊天内触发依赖 dsh-im 的状态文件做会话反查;钉钉等个别通道的会话 id 无法直接 作为投递目标时,会回退为发送到全部配置目标
License
MIT
Links
More in this category
xmanrui/dsh-im★ 1583
Connect IM bots to DeepSeek Harness via QR codes or bot credentials (9 channels: Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp).
shaobeichen/dsh-pocket★ 1482
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 625
Connects DeepSeek Harness to Avernet's Bot Collaboration Network over WebSocket V2, with automatic onboarding, isolated agent sessions, tool-call events, and multi-bot routing tools.
omdsh-dev/dsh-notification★ 85
Desktop notifications for turn completions, with per-outcome controls and keyword rules.
whyihaveyou/dsh-suite#plugin-notify★ 56
IM webhook and local notifications on turn completion, errors, or approval (Feishu/WeCom/DingTalk/Slack/Discord/custom).
omdsh-dev/dsh-lark★ 55
Lark/Feishu bot channel for DeepSeek Harness: each chat drives its own agent, and tool approvals, model questions, and plan reviews return as cards answered by a button or a reply. Switch workspace and model from the chat (`/cd`, `/model`, `/new`), and run several bots that keep separate sessions and can hand turns to each other in one group.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.