dsh-tiddlywiki
将 TiddlyWiki 5 作为 DSH 持久化知识库的插件:提供 tiddlywiki_* 代理工具(增删改查与 Git 同步)、嵌入式编辑器及悬浮速记挂件。
AI 分析
核心用途是为 DSH 引入本地持久化的 TiddlyWiki 知识库,支持 Agent 读写和 Git 自动提交。适合需要构建个人知识库、让 AI 辅助整理笔记的深度用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:bbqisbbq/dsh-tiddlywiki说明文档
阅读完整 README ↗配置
插件行默认如下(缺省即用默认值,无需手动配置)。如需自定义,编辑
profiles/web/cordis.patch.yml 或 profile 的 bundle 层,给该行加 config::
- id: dsh-tiddlywiki
name: dsh-tiddlywiki
config:
wikiRoot: "$DSH_HOME/tiddlywiki" # 缺省自动展开
wiki: "main"
port: 0 # 0 = 自动探测空闲端口
git:
autoCommit: true
debounceMs: 60000
remote: "" # 空 = 仅本地 commit;填了才 push
branch: "main"
note:
tag: "inbox"
auth:
username: "" # 默认 loopback 匿名;暴露到非 loopback 时才需要
password: ""
config: 块随 profile 被 dsh-market 带走;wiki 数据($DSH_HOME/tiddlywiki)
走 git,不走 dsh-market。
运行时配置:设置页(见「设置页」)写入的
$:/plugins/dsh-tiddlywiki/configtiddler 是config:块之上的覆盖层(tiddler 优先、随 wiki 的 git 同步)。 无需改动 cordis 也能改 note tag / git 开关等。
使用
Agent(工具)
tiddlywiki_search {query, tag?}— 检索非系统 tiddler,返回标题/标签/摘要。tiddlywiki_get {title}— 读单个 tiddler 全文。tiddlywiki_put {title, text, tags?, fields?}— 写/覆盖 tiddler。tiddlywiki_delete {title}— 删除 tiddler。tiddlywiki_git_sync {action: pull|push|sync, message?}— git 操作。
同步纪律(三条):开工先 pull --rebase --autostash;收工 commit + push;
自动 commit 防抖 60s。真冲突 → abort 并报冲突文件,agent 人工处理,不自动吞数据。
人(GUI)
- 侧边栏「TiddlyWiki」按钮开关中央编辑器面板。
- 右下角「快速笔记」悬浮控件:写草稿/随手记,Ctrl+Enter 保存为独立 tiddler; 或点「✏️ 在 TW 中编辑」——保存后弹出独立小窗(可拖动/缩放)加载 TiddlyWiki 原生编辑器编辑该条。
- 面板服务异常时显示错误 +「重试」按钮(POST
/dsh-tiddlywiki/restart)。
设置页(插件/主题管理 + 配置)
DSH 设置 → TiddlyWiki 知识库 是插件的配置面板(settings.section):
| 区块 | 内容 |
|---|---|
| 状态/重启 | TW 运行状态 + git 概览 + 「重启 TW」按钮 |
| 常规配置 | 快速笔记默认 tag、git 自动 commit/防抖/远端/分支——改了什么保存什么 |
| 插件管理 | 自带官方插件勾选(可搜索)→ 应用并自动重启 TW |
| 主题管理 | 自带主题多选加载 + 单选活动 → 应用并自动重启 TW |
| 语言管理 | 自带官方语言包勾选(含 zh-Hans/zh-CN 简体)→ 应用并自动重启 TW |
- 配置写入 wiki 内的
$:/plugins/dsh-tiddlywiki/configtiddler(JSON),随 git 同步; 作为 cordisconfig:块之上的覆盖层(tiddler 优先),以后加配置项只需扩展该对象。 - git 类配置修改后在 重启 dsh web 后生效(bootstrap 时读取)。
- 插件/主题/语言均只管理 tiddlywiki 包自带的官方清单(
plugins/tiddlywiki/*、themes/tiddlywiki/*、包根languages/*),全部离线、官方原版。 - 主题机制(重点):TW 视觉主题由
$:/themetiddler 决定(浏览器 themeManager),info.themes只决定加载哪些主题插件。主题之间有依赖链 (plugin.info的dependents):vanilla ← snowwhite ← heavier/centralised/readonly/starlight,vanilla ← tight/seamless。设置页因此是两层:每行主题一个☑ 加载(多选, = TW 里可用的主题)加一个◉ 活动(单选 = 当前视觉主题)。应用时插件会:- 把加载集(含所选活动主题)的完整依赖链写入
info.themes(如 heavier →[vanilla, snowwhite, heavier]),否则激活 heavier 时会丢掉 70KB 的 vanilla 基座样式; - 把
$:/theme设为所选活动主题(激活它),然后重启 TW。 样式为空壳的主题(如本版 tight-heavier)会自动从清单里隐藏,避免选了没效果。
- 把加载集(含所选活动主题)的完整依赖链写入
界面语言(中文)
TW 的界面语言由语言插件决定,不是某个配置字符串。tiddlywiki 包在
node_modules/tiddlywiki/languages/ 下自带全部官方语言包(zh-Hans 简体、zh-CN、
zh-Hant、en-GB、ja-JP…),本插件离线启用即可:
- 设置 → TiddlyWiki 知识库 → 语言管理:勾选
zh-Hans(简体)→「应用语言(重启 TW)」。 插件会把它写入tiddlywiki.info的languages数组,并固定$:/language为$:/languages/zh-Hans,重启后 TW 界面即变为简体中文(已持久化,重启仍在)。 - 配置自动应用:在设置页常规配置里写入
uiLanguage: "zh-Hans",每次启动 dsh web 时 自动启用该语言并固定$:/language(若尚未启用)。留空则不干预。 - 中文包缺字/想换繁中:语言管理里改勾
zh-Hant或zh-TW再应用即可。
设置页(插件/主题管理 + 配置)
DSH 设置 → TiddlyWiki 知识库 是插件的配置面板(settings.section):
| 区块 | 内容 |
|---|---|
| 状态/重启 | TW 运行状态 + git 概览 + 「重启 TW」按钮 |
| 常规配置 | 快速笔记默认 tag、git 自动 commit/防抖/远端/分支——改了什么保存什么 |
| 插件管理 | 自带官方插件勾选(可搜索)→ 应用并自动重启 TW |
| 主题管理 | 自带主题多选加载 + 单选活动 → 应用并自动重启 TW |
| 语言管理 | 自带官方语言包勾选(含 zh-Hans/zh-CN 简体)→ 应用并自动重启 TW |
- 配置写入 wiki 内的
$:/plugins/dsh-tiddlywiki/configtiddler(JSON),随 git 同步; 作为 cordisconfig:块之上的覆盖层(tiddler 优先),以后加配置项只需扩展该对象。 - git 类配置修改后在 重启 dsh web 后生效(bootstrap 时读取)。
- 插件/主题/语言均只管理 tiddlywiki 包自带的官方清单(
plugins/tiddlywiki/*、themes/tiddlywiki/*、包根languages/*),全部离线、官方原版。 - 主题机制(重点):TW 视觉主题由
$:/themetiddler 决定(浏览器 themeManager),info.themes只决定加载哪些主题插件。主题之间有依赖链 (plugin.info的dependents):vanilla ← snowwhite ← heavier/centralised/readonly/starlight,vanilla ← tight/seamless。设置页因此是两层:每行主题一个☑ 加载(多选, = TW 里可用的主题)加一个◉ 活动(单选 = 当前视觉主题)。应用时插件会:- 把加载集(含所选活动主题)的完整依赖链写入
info.themes(如 heavier →[vanilla, snowwhite, heavier]),否则激活 heavier 时会丢掉 70KB 的 vanilla 基座样式; - 把
$:/theme设为所选活动主题(激活它),然后重启 TW。 样式为空壳的主题(如本版 tight-heavier)会自动从清单里隐藏,避免选了没效果。
- 把加载集(含所选活动主题)的完整依赖链写入