dsh-galaxy-view
dialling/dsh-galaxy-view
把工作区与对话画成三维星空,占住原版面板槽位:八种布局(螺旋、星环、浑天仪球、太阳系、双螺旋、不规则星团、立体方阵、中心放射星树)、八套配色主题、一张把指令文件/技能/调用记录画成环的记忆库图、星体间飞行,以及中/EN 切换。连线只画真实的从属关系:工作区→对话,以及父→子。
安装
dsh plugin --profile web add github:dialling/dsh-galaxy-viewREADME
dsh-galaxy-view · 银河视图
中文 · English
把 DeepSeek Harness 里的每个工作区与对话画成一座三维星系——像 NASA 的 Eyes on Asteroids 一样在星体之间飞行。


工作区是旋臂上带光晕的恒星,对话是绕着它们的锐利小星点,fork / 子智能体之间拉出一根细丝。镜头自己慢慢转,拖一下接过来,滚轮推拉;点一颗星就俯冲跃迁进那条对话,落进一层空心点球壳里,「回到星系」再把你送出来。
星体配方、配色与镜头手感参照 Obsidian 的 Galaxy View(NASA Eyes 式的电影感 3D 图),数据换成 Harness 的工作区与会话。
亮点
- 把工作现场画成一张能读的图 —— 恒星是工作区(色相按顺序固定,对话越多越大),星点是对话(运行中的会呼吸),细丝是归属与派生,当前会话戴一圈白环,已归档的只在「归档」打开时出现。
- 空心点球壳 —— 5200 颗 1.2 px、1800 颗 2 px、500 颗 3 px 的硬边方点,七种低饱和近白色调,另加 780 颗场内浮星。球壳与星系共用同一台摄像机并以星系为中心,所以钻进星体是穿过它,而不是拖着一张背景板一起走。
- 跃迁,而不是切页 —— 先在真实场景里俯冲(对话 980 ms、工作区 1150 ms),点阵加速拉成 1 px 光带,最后收成那颗星颜色的空心球壳,硬边方点从中心向外波纹式亮起。覆盖层等目标面板挂载完成才淡出;开启「减弱动态效果」时退化为淡入淡出。
- 锐利、不塑料的星体 —— 不透明实体圆盘,白热核心永不削成纯白,外加一圈贴边的彩色光晕;总览时是一枚小星点(工作区按对话数更大),拉近成倍放大,选中别的星时只轻微变暗。按实际设备尺寸 4×4 超采样烘焙后缓存,每帧不分配对象。
- 八种布局 —— 银河、星环、浑天、太阳系、双螺旋、矩阵、方阵、星树。换预设换的是整套几何(位置、尘埃、骨架线都跟着走),太阳系是真的在公转:行星绕太阳内快外慢,卫星再绕行星。
- 八套预设 × 八套主题 —— 一张预设就是一整套参数(主题、辉光、深空背景、球壳、旋臂形态、连线弯曲、眨眼、环绕速度),悬停即时预览、点击 560 ms 溶解过渡;八套主题(深空、哈勃、霓虹、落日、赛博、矩阵、极光、太阳系)一律纯黑底,颜色只来自星与连线;还能存最多 8 张自己的预设(双击改名、↑ 排序、× 删除)。
- 可玩的力学 —— 斥力、链接距离、链接强度、向心力、扁平度、核心引力、旋涡七个滑杆,是一层叠在解析布局上的力导向:默认参数收敛回预设轮廓,每帧约 4 ms 预算,收敛后休眠。「形态」四条滑杆则重解一次盘面。
- 只画真实关系 —— 连线是工作区→对话的归属与父→子的派生,没有虚构边;粗细、透明度、弯曲、颜色(跟随星色 / 色块 / 取色器)都可调,顶栏一键显隐,关掉时点一个对话仍只留下它的相关连线。
- 记忆库 —— 同一个面板后的第二个视图:塑造智能体行为的指令文件、能加载的技能、每个技能被调用过多少次。点一行把文件读进右侧编辑器,
⌘S写回磁盘,打开后被别处改过会以冲突返回,随应用发布的文件保持只读。 - 键盘与搜索 ——
Tab/Shift+Tab逐个走星并弹出卡片,Enter俯冲,F/R飞向选中项与回总览,Esc取消;顶栏搜索框飞向任意对话;harness 侧边栏里点对话也会飞到那颗星,不退出银河视图。 - 状态透镜与过滤 —— 全部 / 运行中 / 当前 / 子智能体 / 已归档五种透镜,非命中项压暗但仍可点;每个工作区一行,单击隐藏、双击只留它;过滤框沿用 Galaxy View 的语法(空格=同时满足,
-词排除,path:/name:限定字段,"短语")。 - 四档质量 —— 自动 / 高 / 低 / 移动;自动档在帧耗时高于 19 ms 时降档、低于 14.5 ms 时升档,1.5 s 内不反复切;移动档关闭辉光与云雾,最多绘制 1500 颗星。
- 双语、零运行时依赖 —— 界面跟随系统 / 中文 / English 可切;只用 loader 提供的
react与宿主已有的ctx.*服务,没有第三方运行时。绘制走手写的 WebGL2 点通道,失败即回落 Canvas 2D。
安装
需要 DeepSeek Harness Desktop(含 main 面板槽位与 uiWorkspace 服务)。纯前端 + 一个 host 半包,没有原生依赖。
从插件市场(发布后):搜 dsh-galaxy-view。
从 npm 装进某个 profile:
cd "$DSH_HOME/profiles/web"
pnpm add dsh-galaxy-view # 或 npm install dsh-galaxy-view
从本仓库本地挂载(开发用):
node scripts/install-into-profile.mjs # 默认 web profile
node scripts/install-into-profile.mjs --profile PATH # 指定 profile
dsh.bundle.patch 会把插件行插进层栈。装好后重启 Harness(或重开窗口),任意会话顶栏右侧会出现「银河」按钮:点它进银河视图,「原版界面」或星体里的返回胶囊出来。
使用
两个顶栏:会话顶栏的 银河 按钮进入视图;银河面板自己的顶栏上依次是 连线(显隐)、记忆库(切到第二个视图)、归档、复位、重排、语言切换与搜索框。左侧控制栏点 ☰ 收起、拖右边缘调宽(240–480 px);每条滑杆上都有默认值刻度,双击滑杆或滑杆名回到默认;所有设置写进 localStorage,各分区的展开状态也会记住。
八种布局
| 预设 | 布局 | 读法 |
|---|---|---|
| 银河 | spiral | 双旋臂盘面,核心稀疏 |
| 星环 | rings | 四道同心轨道环,每环一个颜色、不显示连线;所有星体沿各自的环线做双螺旋运动 |
| 浑天 | sphere | 浑天仪式球:5 个同半径圆环各自倾斜到自己的平面(黄金角分配),合起来是一个球;星体按体量蛇形分配到各环上,每个环在自己平面内自转 |
| 太阳系 | system | 中心一颗暖色球状太阳尘埃,每个工作区一颗行星各占嵌套轨道,外层裹一团球壳状对话星体;整个系统真的在公转 |
| 双螺旋 | helix | 两条链沿竖直轴攀升各 1.6 圈,按星体数把工作区分给两条链,两侧星数基本相等,各自贯穿整个高度 |
| 矩阵 | web | 一整团绿色星点与直连线,无辉光、无背景 |
| 方阵 | plate | 立体正方体:所有星体落在同一套格点上,每个工作区占一块,画出 12 条棱 |
| 星树 | tree | 纯放射:每个工作区一根从原点出发的射线,按黄金角均布在球面上,越重伸得越远;对话沿同一条射线铺成向外变粗的管 |
| 星环 | 星树 | 跃迁 |
|---|---|---|
![]() | ![]() | ![]() |
星系怎么读
| 图上 | 含义 |
|---|---|
| 带色恒星 | 一个工作区;色相按工作区顺序固定,星点越大对话越多 |
| 恒星周围的星点 | 该工作区下的对话;运行中的会呼吸 |
| 细丝 | 归属关系;fork / 子智能体与父会话之间是更亮的弯丝 |
| 漂浮的星尘 | 旋臂与弥散盘面(「尘埃带」滑杆,默认关闭),纯背景,不可点 |
| 白色硬点球壳 | 星空球壳:真三维的点阵球面,与星系共用摄像机并以它为中心 |
操作
| 输入 | 结果 |
|---|---|
| 拖拽 | 绕轨旋转带惯性;松手 1.6 秒后恢复自动环绕 |
| 滚轮 | 推拉镜头,连续滚动会累加,最远约默认视角的 4.5 倍 |
| 点击星体 | 镜头俯冲过去并弹出小卡片:标题、路径、时间与状态;邻域保持明亮(关联深度 1 或 2 层),其余淡下去 |
| 双击星体 | 跳过卡片,直接跃迁进去 |
Tab / Shift+Tab | 在星体之间逐个走;Enter 俯冲或打开当前项 |
F / R / Esc | 飞向选中的星 / 回到总览 / 取消聚焦与选中 |
| 顶栏搜索框 | 输入标题或路径,方向键选一条,镜头飞过去 |
| 侧边栏里的对话 | 银河打开时点它,镜头飞到那颗星,不退出银河模式 |
| 归档 / 复位 / 重排 | 显示归档 / 回到默认机位 / 换一套随机种子重新成盘 |
| ☰ | 收起 / 展开左侧控制栏 |
跃迁
进入一颗星时,先在真实场景里向它俯冲,随后一圈细点加速拉成 1 px 的光带,最后收成该星颜色的空心灵巧球壳。进入工作区或对话后,落地球壳留在屏幕上当你此刻所在的房间:同一个球面,但整球放大到帧外(看不到球缘),每颗方点大小与亮度一致,分两层缓慢反向旋转,外加一圈星体颜色的内壁光晕和「回到星系」胶囊(点它播放一段短暂的反向跃迁)。
进入银河视图时,harness 的左侧导航栏会自动收起(给星系整窗宽度);离开时按原来的宽度还原。
记忆库
顶栏的 记忆库 按钮把星系换成另一张图:内核里的金色星体是指令文件(AGENTS.md、CLAUDE.md、prompt-inject.md、rules/*.md、工作区 README.md),旋臂上的青色星体是技能(色相表示来源,大小随调用次数增长),绕着它们的小星是一次调用,超过 16 次只计数不再画点。
Node 端自己找齐这个库 —— DSH home、~/.agents、各工作区的 .dsh/skills 与 .agents/skills、vendor 与扩展目录 —— 并从每个会话日志里读回技能调用(普通 .jsonl 与逐帧追加的 .zstd 一样处理)。给已经开着的 DSH 加上这个视图需要重启:Node 端跟随宿主进程挂载,不跟页面走。
控制栏
点标题栏的 ☰ 收起,其余时候它一直贴在左侧、可滚动;顶部有语言切换(跟随 / 中 / EN)和一个 ? 帮助卡。
| 分区 | 里边有什么 |
|---|---|
| 外观 | 八张预设卡,悬停预览、点击 560 ms 溶解过渡;「外观与配色」里还有八套主题、洗牌配色、节点大小与依据(活跃度 / 链接数 / 统一)、星星眨眼 |
| 过滤 | 每个工作区一行带色点与对话数,单击隐藏、双击只留它;孤星与空工作区可单独放出;过滤框见上面的语法 |
| 状态 | 五种透镜,非命中项压暗但仍可点 |
| 连线 / 深空背景 / 辉光 / 形态 / 力学 | 连线显隐与粗细、透明度、亮度、弯曲、颜色;星云天幕、浮星、云雾、尘埃带、球壳密度/大小/亮度;星体亮度、辉光强度、范围、阈值;旋臂数、缠绕、厚度、散布;七个力学滑杆 |
| 导航与动效 | 自动环绕与速度、巡游及巡游速度、关联深度、连接两篇(点两颗星,镜头沿最短链接路径逐跳飞过去)、重播开场、全部重置、存为我的预设 |
| 高级 | 质量自动 / 高 / 低 / 移动,底部一行实时 fps · ms · 星数 · 丝数 · 质量 |
每个分区标题会注明「由『某预设』设定」,改动后显示「已自定义」,并提供只还原这一分区的「↺ 还原」。自动环绕约 5 分钟一圈,控制栏里 0.2×–3× 可调,鼠标停在星点上时暂停。
设置迁移。 外观改动大到旧设置会盖住新效果,所以设置带版本号:升级后首次加载会把外观项一次性重置为新默认值,而筛选(隐藏的工作区、只留它、过滤文本、状态透镜、孤星与空工作区开关、自动环绕与巡游)和语言、面板宽度、分区展开状态、关联深度全部保留。
隐私
不联网、无遥测,没有任何外部请求。只做本地读取:DSH home 与各工作区的指令文件和技能(记忆库要用)、会话日志里的技能调用。写入只发生在你用记忆库编辑器保存时,经宿主鉴权的 RPC 通道回到 Node 端,随应用发布的文件保持只读。设置存在浏览器 localStorage 里。
与 Galaxy View 的差别
- 节点是工作区 / 会话,不是笔记文件;连线是归属与派生,不是
[[链接]]。 - 布局先是解析式的(同数据永远同样子),力学滑杆再在它上面推;Galaxy View 是力模拟跑在 Web Worker 里。
- 会话没有 tag,没有未解析链接、幽灵节点和 2D 图谱导入 ——「标签」那一层换成了状态透镜。
- 每个工作区是一个独立连通块(对话只连到自己的工作区),所以跨工作区的「连接两篇」会经由两边的恒星飞过去。
- 星体沿用参照的配方(软边圆盘 + 白热核心 + 固定光晕),但用缓存的 Canvas 2D 精灵重建,而不是 three.js 的点 shader。
开发
npm run check # build(含语法门禁)+ selfcheck
src/settings.js— 纯外观数据:预设、主题、默认值与设置版本迁移。src/graph-model.js— 纯函数:星体与连线、八种布局、球壳与颗粒集、过滤语法、最短路径、相机基。src/gpu.js/src/stars.js— WebGL2 点通道与 Canvas 2D 星体配方(精灵烘焙缓存在这里)。src/physics.js— 七个力学滑杆背后的力导向层。src/client.js/src/warp.js/src/styles.css— 渲染循环、指针交互、控制栏与跃迁覆盖层。scripts/build.mjs— 把源码内联进lib/client.js(window.__ModuleLoader__.load,无打包器),并对产物做node --check。scripts/selfcheck.mjs— 几何、相机、迁移、双语对照、打包与产物锁。
渲染规则与逐层顺序见 docs/render-core.md;参照实现的逆向记录见 docs/reverse-galaxy-view.md。发布流程(npm、GitHub、市场 PR)见 PUBLISHING.md。
License
MIT


