Vai al contenuto principale
Q

dsh-qingshi-plugin

qq1003240666/dsh-qingshi-plugin

Qingshi diary and family-tree assistant: reads and writes career records, resolves relatives by kinship term, and drives the real H5 pages in a desktop window.

Installazione

dsh plugin --profile web add github:qq1003240666/dsh-qingshi-plugin

README

dsh-qingshi · 让 AI 知道你的故事

把「青史永存」小程序当作存放你故事的地方。装上这个插件后,Harness 里的 AI 能读到你的生涯记录和族谱, 知道你是谁、今年多大、去过哪里、家里人怎么称呼——你说「记一笔」,它还能把话变成一条真正的记录。

它不是把数据导出成文件喂给 AI,而是现场查你的青史账号:问什么查什么,答案永远最新, 你在小程序里改过的东西,它也看得到最新的。

这个包同时是一个 MCP server——除了 DSH,Codex、Claude Code、Cursor 也能接上它(见下方「在别的 AI 里用」)。

生涯时间轴


它能做什么

你会这样问它做什么
你知道我是谁吗?我今年多大?读账号资料(昵称、性别、生日、标签),算出年龄
我是谁?我去过哪里?一次调用同时给出身份、记录总数与年份跨度、最近几条、家人数量(qingshi_about_me)
我去过哪些地方?2024 年我在做什么?按年份、月份、标签、地点、关键词查生涯记录
我表侄子是谁?我爷爷叫什么?按称谓倒推关系链,沿族谱一层层找人;找不到会说清断在哪一层
把 2024 年那趟九寨沟调出来打开那条记录的详情页给你看
帮我记一笔:今天带女儿去了青龙峡打开发布页并把内容填好,最后一步由你点发布
把族谱展开,按小家庭排整齐在真实族谱页面上点菜单展开、重排卡片位置,不改任何关系

族谱是画布,数据不在接口里,所以这一类操作会开一个真实窗口去点:

族谱(示意图)

族谱图是示意,名字是假的。


安装

目前没有发布到 npm,用 tarball 装:

# 方式一:直接给插件管理器一个地址
dsh plugin add https://github.com/qq1003240666/dsh-qingshi-plugin/releases/latest/download/dsh-qingshi.tgz

# 方式二:下载 dsh-qingshi.tgz 后给本地路径
dsh plugin add ./dsh-qingshi.tgz

界面上也可以:设置 → 插件管理器 → 安装,粘贴上面的地址或本地文件路径。

装完完全退出 Harness(包括托盘图标)再打开,插件只在启动时加载。


在别的 AI 里用(MCP)

同一个包也是标准 MCP server,29 个工具原样暴露。装好之后让客户端用 stdio 拉起它:

node /绝对路径/dsh-qingshi-plugin/bin/qingshi-mcp.mjs

三个常见客户端的写法:

# Claude Code
claude mcp add --transport stdio qingshi -- node /绝对路径/dsh-qingshi-plugin/bin/qingshi-mcp.mjs

# Codex CLI
codex mcp add qingshi --command node --args /绝对路径/dsh-qingshi-plugin/bin/qingshi-mcp.mjs
// Cursor ~/.cursor/mcp.json、Cline 设置里的 mcpServers 也是这个形状
{
  "mcpServers": {
    "qingshi": { "command": "node", "args": ["/绝对路径/dsh-qingshi-plugin/bin/qingshi-mcp.mjs"] }
  }
}

不需要额外依赖。详细的环境变量、工具分组、排错见 docs/MCP.md。


在别的 AI 里怎么用

Claude Code、Codex、Cursor、Cline、workbuddy 都能接——它是标准 MCP server(stdio)。 装法和「怎么让它真的去查青史」写在 docs/USE-IN-OTHER-APPS.md: 包括一条命令接入、可粘贴到 AGENTS.md / CLAUDE.md 的规则片段、以及为什么 MCP 没有「唤醒词」。

前置条件

条件说明
一个青史账号先在微信小程序「青史永存」里注册,并绑定手机号;插件就是用这个手机号登录
Node.js >= 22.4Harness 本身的运行环境
Electron(可选)想用无边框桌面窗口就需要,cd shell && npm install 装一次;不装会自动退回系统 Chrome/Edge 的窗口
Windows主开发和验证平台。macOS / Linux 理论上能跑,但没有实测

注意事项

  • 发布权在你手里。 插件不会替你点「发布」。它最多把页面打开、内容填好,最后一步你自己确认。
  • 新记录默认「所有人可见」。 需要仅自己可见时直接说一声,插件会改成私有,或创建时就带上这个设置。
  • 登录凭证只存在本机。 放在下面「数据存在哪」那个目录的 auth.json,权限 0600;不进对话、不进日志。
  • 只连你自己配置的地址。 默认 api.iyouwc.cn 与 qingshi.iyouwc.cn,不会发到别处。
  • 不会编造。 查不到就说查不到,不会为了好听给你编一段经历。
  • 不改你的数据。 除了你明确要求的记录增改,插件不会动族谱关系、不会改根节点。
  • 暂未上架 npm,所以 dsh plugin add dsh-qingshi 这条短命令目前用不了,请用上面的 tarball 地址。

数据存在哪

一个系统用户只有一份,跟你在哪个 AI 里用没关系——DSH 插件、Claude Code、Codex、命令行都是同一份,登录一次到处能用:

平台目录
Windows%APPDATA%\qingshi(一般是 C:\Users\<你>\AppData\Roaming\qingshi)
macOS~/Library/Application Support/qingshi
Linux$XDG_CONFIG_HOME/qingshi,没设就是 ~/.config/qingshi

里面这些东西:

文件是什么
auth.json登录凭证(access_token + refresh_token),权限 0600
browser-window.json那个青史窗口的进程号与调试端口,保证只开一个、各处共用
browser-storage.json页面状态快照(族谱的缩放、展开到哪一层),换窗口也能接着看
users.json家人的昵称 / 生日 / 标签缓存
drafts.json + media/本地草稿和草稿里的图片(发布时才上传)
trash/删除记录时的本地快照,可恢复
electron-profile/、browser-profile/窗口自己的浏览器配置(登录态、缓存)
shots/截图

如果这个环境不让写用户目录(有些 AI 客户端会锁住 %APPDATA%,报 EPERM: operation not permitted), 插件会自动退到当前工作目录下的 .qingshi/;再不行退到系统临时目录。想固定下来就设:

QINGSHI_HOME=D:\my-data\qingshi      # 任意可写目录,优先级最高

优先级:插件配置 workspaceDir(MCP 是 QINGSHI_WORKSPACE)> QINGSHI_HOME > 平台默认 > 当前目录 .qingshi > 临时目录。 不确定现在用的是哪个、能不能写,直接问 AI「青史的凭证存在哪」——它会调 qingshi_where 告诉你实际路径。 老版本存在 ~/.dsh/qingshi-workspace 或当前目录的,第一次运行会自动搬过来,登录态不会丢。


遇到问题

现象怎么办
提示没登录 / 登录过期能弹窗的机器(有 Electron 或 Chrome/Edge)会弹一个小登录窗;不能弹窗的(MCP、远程、无浏览器)会自动改成短信验证码:给它手机号 → 收短信 → 把 6 位码发它。两条路都只登一次
窗口打不开装 Electron(cd shell && npm install),或把 windowMode 改成 app 走系统浏览器
改了代码没生效插件只在 Harness 启动时加载,完全退出再打开

详细的实现说明、工具清单与配置项见 docs/MAINTAINER-NOTES.md(面向改代码的人)。 登录与请求的完整链路(token 存哪、过期怎么办、和青史小程序端怎么对应)见 docs/AUTH-AND-REQUEST.md。


链接

Plugin correlati