记账持仓、查实时行情,让 AI 给出买卖时机参考
29.8/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add limboinf/dsh-astock-workbench该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 44 处,展示前 38 条)
- 读取本地文件src/balance.ts:33
if (!existsSync(file)) return null - 读取本地文件src/balance.ts:35
const parsed = JSON.parse(readFileSync(file, 'utf8')) as Record<string, unknown> - 写入本地文件src/balance.ts:58
writeFileSync(file, JSON.stringify(payload, null, 2) + '\n', 'utf8') - 写入本地文件src/balance.ts:67
writeFileSync(file, JSON.stringify(payload, null, 2) + '\n', 'utf8') - 写入剪贴板src/client/index.ts:1495
try { void navigator.clipboard?.writeText(ex) } catch { } - 写入本地文件src/decision-log.ts:51
mkdirSync(this.dir, { recursive: true }) - 读取本地文件src/decision-log.ts:64
if (!existsSync(file)) { - 写入本地文件src/decision-log.ts:65
writeFileSync(file, `# ${normalizedDate} ${(title ?? '').trim() || '交易日决策'}\n\n`, 'utf8') - 写入本地文件src/decision-log.ts:69
appendFileSync(file, `${heading}\n\n${body}\n\n`, 'utf8') - 读取本地文件src/decision-log.ts:75
return existsSync(file) ? readFileSync(file, 'utf8') : undefined - 读取本地文件src/decision-log.ts:75
return existsSync(file) ? readFileSync(file, 'utf8') : undefined - 读取本地文件src/decision-log.ts:82
return readdirSync(this.dir) - 读取本地文件src/decision-log.ts:87
.map(date => ({ date, text: readFileSync(join(this.dir, `${date}.md`), 'utf8') })) - 读取本地文件src/fuyao.ts:44
if (file === undefined || !existsSync(file)) return {} - 读取本地文件src/fuyao.ts:46
return parseEnvText(readFileSync(file, 'utf8')) - 读取密钥环境变量src/fuyao.ts:63
const fromEnv = process.env.FUYAO_API_KEY?.trim() - 发起网络请求src/fuyao.ts:139
const res = await fetch(url, { headers: { 'X-api-key': key }, signal: s.signal }) - 写入本地文件src/index.ts:116
mkdirSync(this.dir, { recursive: true }) - 读取本地文件src/index.ts:117
if (!existsSync(this.file)) { - 写入本地文件src/index.ts:118
writeFileSync(this.file, holdingsTemplate(), 'utf8') - 读取本地文件src/index.ts:123
if (!existsSync(this.file)) return { lines: [], positions: [], warnings: [] } - 读取本地文件src/index.ts:124
return parseHoldingsDoc(readFileSync(this.file, 'utf8')) - 写入本地文件src/index.ts:130
writeFileSync(tmp, renderHoldingsDoc(doc), 'utf8') - 写入本地文件src/index.ts:131
renameSync(tmp, this.file) - 写入本地文件src/index.ts:144
mkdirSync(this.dir, { recursive: true }) - 读取本地文件src/index.ts:145
if (!existsSync(this.file)) { - 写入本地文件src/index.ts:146
writeFileSync(this.file, tradesTemplate(), 'utf8') - 读取本地文件src/index.ts:151
if (!existsSync(this.file)) return { lines: [], records: [], warnings: [] } - 读取本地文件src/index.ts:152
return parseTradesDoc(readFileSync(this.file, 'utf8')) - 发起网络请求src/kline.ts:179
const res = await fetch(url, { - 发起网络请求src/market.ts:158
const res = await fetch(url, { - 请求外部主机qt.gtimg.cnsrc/market.ts:186
const res = await fetch(`https://qt.gtimg.cn/q=${INDICES.map(i => i.symbol).join(',')}`, { - 发起网络请求src/market.ts:186
const res = await fetch(`https://qt.gtimg.cn/q=${INDICES.map(i => i.symbol).join(',')}`, { - 读取本地文件src/profile-store.ts:21
if (!existsSync(file)) return null - 读取本地文件src/profile-store.ts:23
return normalizeProfile(JSON.parse(readFileSync(file, 'utf8'))) - 写入本地文件src/profile-store.ts:32
writeFileSync(profileFile(dir), `${JSON.stringify(profile, null, 2)}\n`, 'utf8') - 请求外部主机qt.gtimg.cnsrc/quotes.ts:236
const res = await fetch(`https://qt.gtimg.cn/q=${missing.join(',')}`, { - 发起网络请求src/quotes.ts:236
const res = await fetch(`https://qt.gtimg.cn/q=${missing.join(',')}`, {
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
涉及外部主机:qt.gtimg.cn
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 持仓记账
- 实时行情查询
- AI投研分析
A股投资工作台 —— DeepSeek Harness (dsh) 插件:持仓记账、实时行情、AI 投研分析与每日简报
README
由 DeepSeek 最新模型翻译生成dsh-astock-workbench
A 股投资工作台 · DeepSeek Harness(dsh)插件
基于你的真实持仓与投资者画像,给出同花顺给不了的 AI 分析与买卖时机参考;决策日志与长期账面,沉淀属于你自己的投资纪律。
不改动 dsh 核心代码,以插件形式挂载。数字只走本地确定性数据层,模型只负责解读:
holdings.csv ────┐
├─→ astock_* 工具(本地确定性计算)──→ 模型生成分析 / 简报 / 复盘 fuyao 行情(主) ──┤
腾讯行情(兜底) ──┘
让 AI 帮你安装
复制下面整段话,发给你的 AI 编程助手(dsh、Claude Code 等任意 Agent),它会替你完成安装和配置:
请帮我安装 DeepSeek Harness(dsh)插件 dsh-astock-workbench(A 股投资工作台)。
1. 在本机找到 deepseek-harness 仓库目录(常见位置如 ~/work/github/deepseek-harness);如果没有,先 git clone https://github.com/deepseek-ai/deepseek-harness 并执行 pnpm install。
展开完整文档(README 剩余 1 节)
dsh-astock-workbench A 股投资工作台 · DeepSeek Harness(dsh)插件 基于你的真实持仓与投资者画像,给出同花顺给不了的 AI 分析与买卖时机参考;决策日志与长期账面,沉淀属于你自己的投资纪律。 不改动 dsh 核心代码,以插件形式挂载。数字只走本地确定性数据层,模型只负责解读: holdings.csv ────┐ ├─→ astock_* 工具(本地确定性计算)──→ 模型生成分析 / 简报 / 复盘 fuyao 行情(主) ──┤ 腾讯行情(兜底) ──┘ 让 AI 帮你安装 复制下面整段话,发给你的 AI 编程助手(dsh、Claude Code 等任意 Agent),它会替你完成安装和配置: 请帮我安装 DeepSeek Harness(dsh)插件 dsh-astock-workbench(A 股投资工作台)。 1. 在本机找到 deepseek-harness 仓库目录(常见位置如 ~/work/github/deepseek-harness);如果没有,先 git clone https://github.com/deepseek-ai/deepseek-harness 并执行 pnpm install。 2. 在该仓库目录执行:pnpm dsh plugin --profile web add github:limboinf/dsh-astock-workbench 3. 如果安装报「prepare / 构建授权」类错误(pnpm 10 及以上默认拒绝运行 git 依赖的 prepare 脚本),在 --profile web 对应 profile 目录的 pnpm-workspace.yaml 中加入: allowBuilds: dsh-astock-workbench: true 然后重新执行第 2 步。 4. 验证安装:pnpm dsh --profile headless --dump-config | grep astock 输出里有 astock-workbench 即为成功。 5. 最后询问我是否有 fuyao(https://fuyao.aicubes.cn)的 API Key:有则帮我写入 ~/.dsh/astock-workbench/env 文件(内容一行:export FUYAO_API_KEY=我的Key,目录不存在就先创建);没有则跳过,行情会自动使用腾讯免费接口兜底。 功能 | 能力 | 入口 | 说明 | | 持仓汇总 | 模型工具 astock_positions | 现价、市值、累计盈亏、当日涨跌、换手、权重与合计;总资产 = 持仓市值 + 现金(随行情实时变动) | | 行情查询 | 模型工具 astock_quote | 一次最多 30 只;6 位代码自动识别沪/深/北;股票另补名称/PE/PB | | 个股诊断 | 模型工具 astock_analyze | 趋势/量能/相对强弱判定 + MA、区间位置、量比、持仓上下文(60 日 K 线本地计算,前复权) | | 个股基本面 | 模型工具 astock_fundamentals | 估值(PE-TTM/PB-MRQ)+ 近 4 个单季营收/归母净利及同比环比 | | 买入 / 清仓记账 | astock_add_position / astock_remove_position | 同代码加权合并成本;清仓自动补记卖出流水 | | 卖出流水 | astock_record_trade / astock_trades | 手动补录历史交易,按代码/日期查询,已实现盈亏统计(合计/笔数/胜率) | | 截图对账 | 模型工具 astock_reconcile | 券商 App 持仓截图 → 逐行抄录 → 本地 diff 预览 → 确认后写入;截图没有的默认保留 | | 决策日志 | astock_log_decision / astock_decision_logs | 按交易日追加结构化条目(性质徽标 + 标签维度),AI 不主动落笔,先问后写 | | 现金余额 | astock_set_cash | 录入券商现金余额,总资产随行情实时变动 | | 手动总资产 | astock_set_total_assets | 录入券商口径快照(与现金口径互斥,后设置的生效) | | 工作台面板 | dsh web 侧边栏 | 宏观驾驶舱:总资产/已实现盈亏卡片、盘中 5s 自动轮询、大盘指数条、决策日志徽标、AI 解读/体检/复盘入口、个性化设置卡 | | 每日简报 | dsh 原生计划任务 + 技能 astock-briefing | 盘后自动生成持仓简报,落盘 briefings/<日期>.md | | 术语图解 | 技能 astock-explain + 工具 astock_show_html | 术语大白话讲解;小白画像遇难懂术语自动生成可交互 HTML/Canvas,对话内嵌预览(沙箱 iframe,不跳浏览器),存档 explainers/ | | 快捷命令 | /portfolio /market /profile /decision-logs | 不经模型,纯本地直读持仓/大盘/画像/日志 | 快速开始 1. 安装 前提:本地已有 DeepSeek Harness(完成一次 pnpm install)。 cd /path/to/deepseek-harness pnpm dsh plugin --profile web add github:limboinf/dsh-astock-workbench pnpm ≥10 首次安装会要求构建授权(git 依赖的 prepare 脚本):按报错提示把包名写入 --profile web 对应 profile 目录的 pnpm-workspace.yaml,然后重新 add: allowBuilds: dsh-astock-workbench: true 更新版本:先 pnpm dsh plugin --profile web remove dsh-astock-workbench 再重新 add。 2. 配置行情主源 fuyao(重要) 行情主源是 fuyao(同花顺金融数据 REST 服务),请到其官网注册并自签 API Key,插件通过 X-api-key 请求头调用。 Key 按以下顺序查找: 1. 环境变量 FUYAO_API_KEY 2. 数据目录 env 文件 ~/.dsh/astock-workbench/env(推荐,对 dsh 计划任务环境同样生效) 3. 项目根 .env(仅开发自检用,已被 .gitignore 排除) 推荐把 Key 写进数据目录: mkdir -p ~/.dsh/astock-workbench echo 'export FUYAO_API_KEY=你的Key' >> ~/.dsh/astock-workbench/env 不配置 Key 插件也能运行:行情自动降级到腾讯免费接口兜底,但深市股票、深市 ETF 等存在已知缺口(部分标的取不到价格),要完整的行情体验建议配置 fuyao。 3. 验证 pnpm dsh --profile headless --dump-config | grep astock # 配置树出现 astock-workbench 打开 dsh web,问模型「看看我的持仓」→ 应触发 astock_positions 工具并在侧边栏出现工作台面板。 4. 安装技能(可选) 让会话里的「写简报」「持仓截图对账」「术语讲解与图解」遵循同一规范: mkdir -p ~/.dsh/skills cp -R skills/astock-briefing skills/astock-reconcile skills/astock-explain ~/.dsh/skills/ 数据存放位置 所有运行时数据都在你自己的 dsh 数据工作区(环境变量 ASTOCK_DATA_DIR,默认 ~/.dsh/astock-workbench/,首次运行自动生成),插件安装包不携带任何数据: ~/.dsh/astock-workbench/ ├── holdings.csv # 持仓表(列 code,name,shares,cost,sector,note) ├── trades.csv # 卖出流水(列 date,code,name,action,shares,price,cost,pnl,note) ├── briefings/ # 每日简报 ├── decision-logs/ # 交易日决策日志:YYYY-MM-DD.md ├── balance.json # 可选:资产口径(现金或快照,二选一) ├── profile.json # 可选:投资者画像(详略/术语/结构 + 一句话自述) └── env # 可选:export FUYAO_API_KEY=... 两份 CSV 都容忍空行与 # 注释行(写回时逐字保留);存在坏行或重复代码时记账工具会拒绝写入并提示先修复,防止覆盖丢数据。也可以不手编辑,直接在对话里说「我买了 600519,100 股,成本 1700」让 AI 记账。CSV 请用 UTF-8 编码保存。 本地开发 npm install npm run typecheck && npm test # 类型检查 + node:test 单测 npm run live-check # 联网实测四类标的:fuyao 主源 + 腾讯兜底全链路 npm run build # 产出 lib/(host + client) 开发模式挂载、构建细节与踩坑记录见 AGENTS.md。 项目文档 - CONTEXT.md —— 产品使命(AI 投研助理 > 复盘引擎)与语言定义 - docs/adr.md —— 关键决策简化归档(使命定位、投资建议契约) - docs/web-ui注入技术方案-20260903.md —— 面板注入机制拆解 数据源与免责声明 - 持仓行情:fuyao(同花顺金融数据 REST)为主源,腾讯公开接口兜底缺口;大盘概览走东方财富公开接口。这些均为非官方接口,无契约保证,仅限个人研究使用。 - 本插件只读行情、只记持仓,不接任何交易/下单接口。 - AI 输出的分析与买卖参考仅供参考、不构成投资建议,最终决策与后果由用户自行承担。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
limboinf/dsh-astock-workbench
记账持仓、查实时行情,让 AI 给出买卖时机参考
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7