在飞书聊天里记账、排待办、管健身并定时提醒
28.8/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zhiyang052/dsh-feishu-assistant该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 65 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0🔴 扫描:高危尚无人工评估
静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。
命令参数由运行时变量拼接读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 59 处,展示前 59 条)
- 写入本地文件plugins/assistant-core/src/db.ts:13
mkdirSync(dirname(dbPath), { recursive: true }) - 读取密钥环境变量plugins/assistant-core/src/exercise-report.ts:67
const apiKey = process.env.DEEPSEEK_API_KEY - 请求外部主机api.deepseek.complugins/assistant-core/src/exercise-report.ts:72
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/assistant-core/src/exercise-report.ts:72
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 写入本地文件plugins/assistant-core/src/exercise-report.ts:98
mkdirSync(dir, { recursive: true }) - 读取本地文件plugins/assistant-core/src/exercise-report.ts:106
if (existsSync(FONT)) doc.registerFont('cjk', FONT) - 读取本地文件plugins/assistant-core/src/exercise-report.ts:107
const F = existsSync(FONT) ? 'cjk' : 'Helvetica' - 写入本地文件plugins/assistant-core/src/exercise-report.ts:140
writeFileSync(abs, Buffer.concat(bufs)) - 写入本地文件plugins/assistant-core/src/exercise-report.ts:181
writeFileSync(abs, Buffer.from(buf)) - 读取本地文件plugins/assistant-core/src/reminders-store.ts:41
if (!existsSync(path)) return { reminders: [] } - 读取本地文件plugins/assistant-core/src/reminders-store.ts:43
const raw = JSON.parse(readFileSync(path, 'utf8')) as RemindersFile - 写入本地文件plugins/assistant-core/src/reminders-store.ts:53
mkdirSync(dirname(path), { recursive: true }) - 写入本地文件plugins/assistant-core/src/reminders-store.ts:55
writeFileSync(tmp, JSON.stringify(data, null, 2) + '\n', 'utf8') - 写入本地文件plugins/assistant-core/src/reminders-store.ts:56
renameSync(tmp, path) - 读取本地文件plugins/assistant-core/src/report-core.ts:53
if (existsSync(f)) return f - 读取密钥环境变量plugins/assistant-core/src/report-core.ts:64
const apiKey = process.env.DEEPSEEK_API_KEY - 请求外部主机api.deepseek.complugins/assistant-core/src/report-core.ts:91
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/assistant-core/src/report-core.ts:91
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 写入本地文件plugins/assistant-core/src/report-core.ts:342
mkdirSync(dir, { recursive: true }) - 写入本地文件plugins/assistant-core/src/report-core.ts:362
writeFileSync(abs, buf) - 写入本地文件plugins/assistant-core/src/tools-annual.ts:87
mkdirSync(join(opts.filesDir, 'charts'), { recursive: true }) - 写入本地文件plugins/assistant-core/src/tools-annual.ts:90
writeFileSync(abs, barPng(`${year} 月度待办完成数`, data)) - 读取密钥环境变量plugins/assistant-core/src/tools-body.ts:289
const apiKey = process.env.DEEPSEEK_API_KEY - 请求外部主机api.deepseek.complugins/assistant-core/src/tools-body.ts:294
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/assistant-core/src/tools-body.ts:294
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 读取密钥环境变量plugins/assistant-core/src/tools-course.ts:34
const apiKey = process.env.DEEPSEEK_API_KEY - 读取本地文件plugins/assistant-core/src/tools-course.ts:36
const b64 = readFileSync(imagePath).toString('base64') - 请求外部主机api.deepseek.complugins/assistant-core/src/tools-course.ts:37
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/assistant-core/src/tools-course.ts:37
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 执行外部命令固定命令plugins/assistant-core/src/tools-course.ts:83
execSync('which tesseract', { stdio: 'ignore' }) - 执行外部命令运行时拼接plugins/assistant-core/src/tools-course.ts:84
return execSync(`tesseract "${imagePath}" stdout -l chi_sim 2>/dev/null`, { encoding: 'utf8', maxBuffer: 10 * 1024 * 1024 }) - 写入本地文件plugins/assistant-core/src/tools-health.ts:179
mkdirSync(join(opts.filesDir, 'charts'), { recursive: true }) - 写入本地文件plugins/assistant-core/src/tools-health.ts:182
writeFileSync( - 写入本地文件plugins/assistant-core/src/tools-ledger.ts:324
mkdirSync(dir, { recursive: true }) - 写入本地文件plugins/assistant-core/src/tools-ledger.ts:335
writeFileSync(filePath, JSON.stringify(payload, null, 2), 'utf8') - 写入本地文件plugins/assistant-core/src/tools-ledger.ts:350
writeFileSync(filePath, Buffer.from(buf)) - 读取密钥环境变量plugins/assistant-core/src/tools-plan.ts:33
const apiKey = process.env.DEEPSEEK_API_KEY - 请求外部主机api.deepseek.complugins/assistant-core/src/tools-plan.ts:36
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/assistant-core/src/tools-plan.ts:36
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 读取密钥环境变量plugins/assistant-core/src/tools-plan.ts:220
const apiKey = process.env.DEEPSEEK_API_KEY - 请求外部主机api.deepseek.complugins/assistant-core/src/tools-plan.ts:224
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/assistant-core/src/tools-plan.ts:224
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 写入本地文件plugins/assistant-core/src/tools-report.ts:30
mkdirSync(chartDir, { recursive: true }) - 写入本地文件plugins/assistant-core/src/tools-report.ts:33
writeFileSync(abs, buf) - 读取本地文件plugins/content-web/src/index.ts:445
const raw = JSON.parse(readFileSync(config.remindersPath, 'utf8')) as { reminders?: Array<{ enabled?: boolean }> } - 读取密钥环境变量plugins/content-web/src/index.ts:835
const apiKey = process.env.DEEPSEEK_API_KEY - 请求外部主机api.deepseek.complugins/content-web/src/index.ts:838
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 发起网络请求plugins/content-web/src/index.ts:838
const resp = await fetch('https://api.deepseek.com/chat/completions', { - 读取本地文件plugins/content-web/src/index.ts:1140
const raw = JSON.parse(readFileSync(config.remindersPath, 'utf8')) as { reminders?: R[] } - 读取本地文件plugins/content-web/src/index.ts:1255
if (!existsSync(target) || !statSync(target).isFile()) { - 读取本地文件plugins/content-web/src/index.ts:1255
if (!existsSync(target) || !statSync(target).isFile()) { - 读取本地文件plugins/content-web/src/index.ts:1262
createReadStream(target).pipe(res) - 读取本地文件plugins/feishu-bridge/src/index.ts:171
return (JSON.parse(readFileSync(OWNER_FILE, 'utf8')) as { openId?: string }).openId - 写入本地文件plugins/feishu-bridge/src/index.ts:178
mkdirSync(dirname(OWNER_FILE), { recursive: true }) - 写入本地文件plugins/feishu-bridge/src/index.ts:179
writeFileSync(OWNER_FILE, JSON.stringify({ openId }, null, 2), 'utf8') - 读取本地文件plugins/feishu-bridge/src/index.ts:413
const image = readFileSync(payload.path) - 读取本地文件plugins/feishu-bridge/src/index.ts:441
const file = readFileSync(payload.path) - 写入本地文件plugins/feishu-bridge/src/index.ts:586
mkdirSync(dir, { recursive: true }) - 写入本地文件plugins/feishu-bridge/src/index.ts:591
writeFileSync(file, buf)
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.deepseek.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-scope@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 聊天中记账
- 管理日常待办
- 定时消息提醒
基于deepseek harness和飞书机器人的个人ai助手,通过飞书聊天便捷管理日常待办,内含一个网站,可双端记录个人收支和资金情况,生成健身方案并在特定时间发消息提醒您!
README
由 DeepSeek 最新模型翻译生成DSH 个人 AI 助手
基于 DeepSeek Harness 和飞书机器人的全能型个人 AI 助手:用飞书聊天框管理你的生活——记账、日历待办、健身健康、新闻推送、定时提醒、财务报告,一切数据同步到自建网站。
详见:docs/08-项目介绍.md — 功能/技术/架构/使用指南(完整版)
功能总览
| 模块 | 能力 |
| 飞书对话 | 多领域会话(日常/记账/健康)、流式卡片、AI 视觉识别截图 |
| 多账本记账 | 快捷记账(AI 自动分类)、改删流水、统计图表(ECharts)、PDF/Excel 财务报告(含 AI 总结与建议)、任意时间段导出 |
| 日历待办 | 全年日历、三类待办(每天/每周/单次)、课程表截图导入、辅导员通知自动排期、抢票倒计时提醒、完成状态全端同步 |
| 健身健康 | 身体指标(BMI/BMR/TDEE/VO2max)、运动记录(语言/截图录入)、肌肉分布图(点击部位看动作)、定制健身+饮食计划(热量缺口)、运动报告导出 |
| 定时推送 | 早报(待办+饮食+训练三合一)、课程/待办独立提醒、喝水提醒、新闻摘要、月报年报,全部可对话配置 |
| 记忆与摘抄 | 长期档案记忆(会话启动注入)、摘抄收藏、内容发布到网站 |
| 个人网站 | 主页仪表盘、日历、身体状况、账单、内容、定时任务、推送记录,所有内容飞书/网站双向同步 |
展开完整文档(README 剩余 1 节)
DSH 个人 AI 助手 基于 DeepSeek Harness 和飞书机器人的全能型个人 AI 助手:用飞书聊天框管理你的生活——记账、日历待办、健身健康、新闻推送、定时提醒、财务报告,一切数据同步到自建网站。 详见:docs/08-项目介绍.md — 功能/技术/架构/使用指南(完整版) 功能总览 | 模块 | 能力 | | 飞书对话 | 多领域会话(日常/记账/健康)、流式卡片、AI 视觉识别截图 | | 多账本记账 | 快捷记账(AI 自动分类)、改删流水、统计图表(ECharts)、PDF/Excel 财务报告(含 AI 总结与建议)、任意时间段导出 | | 日历待办 | 全年日历、三类待办(每天/每周/单次)、课程表截图导入、辅导员通知自动排期、抢票倒计时提醒、完成状态全端同步 | | 健身健康 | 身体指标(BMI/BMR/TDEE/VO2max)、运动记录(语言/截图录入)、肌肉分布图(点击部位看动作)、定制健身+饮食计划(热量缺口)、运动报告导出 | | 定时推送 | 早报(待办+饮食+训练三合一)、课程/待办独立提醒、喝水提醒、新闻摘要、月报年报,全部可对话配置 | | 记忆与摘抄 | 长期档案记忆(会话启动注入)、摘抄收藏、内容发布到网站 | | 个人网站 | 主页仪表盘、日历、身体状况、账单、内容、定时任务、推送记录,所有内容飞书/网站双向同步 | | 运维 | 开机自启、崩溃自动重启、健康检查 + 飞书故障告警、数据本地化(SQLite) | 架构 ┌─────────────────────────────────────────────┐ │ 飞书 App(单聊) │ └──────────────────────┬──────────────────────┘ │ WebSocket 长连接(无需公网回调) ┌──────────────────────▼──────────────────────┐ │ feishu-bridge 插件 │ │ 消息接收/领域路由/图片下载/流式输出/审批卡片 │ └──────────────────────┬──────────────────────┘ │ followup / inject / 事件 ┌──────────────────────▼──────────────────────┐ │ DeepSeek Harness Agent(多领域会话) │ │ main(对话/健身/学习) ledger(记账) │ │ health(健康) │ └───────┬──────────────┬──────────────┬────────┘ ┌───────▼──────┐ ┌─────▼─────┐ ┌─────▼──────────┐ │ assistant-core│ │ content-web│ │ scheduler │ │ 记账/待办/健康│ │ 个人网站 │ │ 定时推送/提醒 │ │ 报表/记忆/摘抄│ │ 8090 端口 │ │ +健康检查告警 │ └───────┬──────┘ └───────────┘ └─────┬──────────┘ └──────────┬─────────────────┘ ┌──────────────────▼──────────────────────────┐ │ 数据:SQLite(记账/待办/健康/摘抄/报告存档) │ │ reminders.json(定时任务)+ 素材文件 │ └─────────────────────────────────────────────┘ 技术栈 | 层 | 技术 | | 运行时 | Node.js 22+(内置 node:sqlite)、DeepSeek Harness(Cordis 插件体系) | | IM 通道 | 飞书 @larksuiteoapi/node-sdk(WebSocket 长连接) | | 模型 | DeepSeek API(deepseek-chat / deepseek-v4-flash-vision-exp 视觉) | | 存储 | SQLite(WAL)+ JSON 配置 | | 图表 | ECharts SSR + resvg(PNG) | | 报表 | pdfkit(Noto CJK 字体)+ exceljs | | 网站 | Node node:http 自建(无框架,纯静态渲染) | | 部署 | systemd + Nginx(可选 Basic Auth 公网入口) | 环境要求 - 服务器:Ubuntu 22.04+,1 核 1G 起 - Node.js 22+(node:sqlite 需要) - 飞书企业自建应用(机器人 + 长连接事件订阅) - DeepSeek API Key(platform.deepseek.com) 快速开始 1. 服务器初始化 安装 Node 22+ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs 安装 DSH CLI sudo npm install -g @deepseek-ai/dsh 中文字体(PDF 报告) sudo apt-get install -y fonts-noto-cjk 2. 获取代码与依赖 git clone https://github.com/zhiyang052/dsh-feishu-assistant.git cd dsh-assistant npm install 3. 配置凭证 cp cordis.example.yml cordis.yml 编辑 cordis.yml:填飞书 AppID/AppSecret、服务器 IP export DEEPSEEK_API_KEY=sk-xxx # 写入 ~/.bashrc 或 systemd EnvironmentFile 飞书应用配置(open.feishu.cn): 1. 创建企业自建应用 → 开启机器人能力 2. 「事件与回调」→ 订阅方式选长连接 → 添加事件 im.message.receive_v1 3. 「卡片回调」→ 接收方式选长连接 4. 权限管理开通:im:message、im:message:send_as_bot、im:resource 5. 发布应用版本(改动后必须重新发布) 4. 启动 dsh web --patch ./cordis.yml 生产环境:复制 deploy/dsh-assistant.service.example 到 systemd,deploy/health-check.sh 提供飞书故障告警。 💬 使用指南(飞书对话) | 你说 | 助手做 | | 「帮我记一笔:中行卡 -35 午饭」 | 记账 + 自动分类 | | 「上个月账单总结」 | 统计图表 + AI 总结 + PDF/Excel 报告 | | 「明天下午3点体测」 | 建待办,到点提醒 | | 「我10月1号回家」 | 自动安排抢票提醒(提前15天+提前2天) | | 「今天跑步5公里32分钟」 | 记录运动,网站出趋势图 | | 「定制减脂计划,不吃猪肉」 | 生成健身+饮食计划(热量缺口)+ 每周待办 | | 「今天吃什么」 | 生成四餐推荐(含热量),明早早报推送 | | 「12分钟跑了2500米」 | 估算 VO2max | | 「记下来:自律给我自由」 | 存入摘抄 | | 发课程表截图 | AI 视觉提取课程,自动生成每周待办 | 网站 http://<服务器IP>:8090(默认无鉴权,建议 Nginx Basic Auth 后公网访问): - 主页:今日待办(可一键完成)、账本余额、最近推送 - 日历:月历视图 + 完成率角标 + 月度统计 - 身体状况:指标卡、体重/运动趋势图、肌肉分布图、计划、饮食、AI 总结 - 账单:账本总览、生成财务报告(时间段/账本/图表/总结可配)、历史报告下载 - 内容/摘抄/定时任务/推送记录:全量归档 目录结构 assistant/ ├── cordis.example.yml # 插件组合配置模板(凭证占位) ├── plugins/ │ ├── feishu-bridge/ # 飞书长连接桥接(消息/路由/图片/审批/推送) │ ├── assistant-core/ # 业务核心(记账/待办/健康/报表/记忆/调度) │ └── content-web/ # 个人网站(页面 + API) ├── deploy/ │ ├── install.sh # 一键部署脚本 │ ├── health-check.sh # 健康检查 + 飞书告警 │ └── dsh-assistant.service.example ├── data/ # 运行时数据(SQLite/配置,不入库) └── docs/ # 文档 📄 文档 - docs/01-项目方案.md — 整体方案与架构设计 - docs/02-环境搭建与API申请教程.md — 环境/飞书/API 申请 - docs/03-账单功能设计.md — 记账与报告设计 - docs/04-日历待办系统设计.md — 待办/日历/课程表/抢票 - docs/05-财务报告系统设计.md — PDF/Excel 报告 - docs/06-身体状况与健身管理设计.md — 健康/运动/肌肉图/计划 - docs/07-运维手册.md — 自启动/告警/故障排查/备份 - docs/08-项目介绍.md — 功能/技术/架构/使用指南(完整版) - docs/09-网站搭建教程.md — 网站代码结构/改样式/加页面/部署 安全说明 - 凭证(飞书 AppSecret、DeepSeek Key)存于 cordis.yml / .env,已 gitignore - 默认权限模式 danger-full-access(AI 可执行任意服务器命令)——个人服务器使用,生产请按需收紧 - 数据全部本地化(SQLite),无第三方存储 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
zhiyang052/dsh-feishu-assistant
在飞书聊天里记账、排待办、管健身并定时提醒
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,170已汉化DeepSeek 客户端
71
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,041已汉化DSH
70.7
这是你的仓库?认领条目