🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

社区情绪驾驶舱 RiRi9909/DeepSeekHarness-community-index

DeepSeek Harness
RiRi990978 天前有提交已提供中文文档扫描:含敏感能力

实时查看 r/DeepSeek 社区乐观与愤怒指数

29.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/8/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add RiRi9909/DeepSeekHarness-community-index
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 78 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-sentiment-cockpit(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/21 23:46:10

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 30 处,展示前 30 条)
  • 执行外部命令固定命令
    lib/index.js:58
    const child = spawn("python3", [PIPELINE, "--out", CACHE_DIR], {
  • 写入本地文件
    lib/index.js:89
    await mkdir(CACHE_DIR, { recursive: true });
  • 读取本地文件
    lib/index.js:106
    const snap = JSON.parse(await readFile(join(CACHE_DIR, "snapshot.json"), "utf8"));
  • 读取本地文件
    lib/index.js:107
    const html = await readFile(join(CACHE_DIR, "cockpit.html"), "utf8");
  • 读取本地文件
    lib/index.js:114
    const snap = JSON.parse(await readFile(join(FALLBACK_DIR, "snapshot.json"), "utf8"));
  • 读取本地文件
    lib/index.js:115
    const html = await readFile(join(FALLBACK_DIR, "cockpit.html"), "utf8");
  • 读取本地文件
    lib/index.js:201
    if (existsSync(WIDGET_BIN)) {
  • 写入本地文件
    lib/index.js:204
    try { chmodSync(WIDGET_BIN, 0o755); } catch {}
  • 执行外部命令固定命令
    lib/index.js:209
    const result = spawnSync("swiftc", ["-O", "-o", WIDGET_BIN, WIDGET_SRC], { timeout: 5 * 60 * 1000 });
  • 读取本地文件
    lib/index.js:210
    if (result.status === 0 && existsSync(WIDGET_BIN)) return WIDGET_BIN;
  • 写入本地文件
    lib/index.js:211
    void appendFile(join(CACHE_DIR, "widget.log"), `widget build failed: ${String(result.stderr).slice(0, 500)}\n`).catch(() => {});
  • 写入本地文件
    lib/index.js:213
    void appendFile(join(CACHE_DIR, "widget.log"), `widget build error: ${e?.message ?? e}\n`).catch(() => {});
  • 执行外部命令来自配置/变量
    lib/index.js:234
    child = spawn(bin, args, { stdio: ["ignore", "ignore", "pipe"] });
  • 写入本地文件
    lib/index.js:236
    void appendFile(join(CACHE_DIR, "widget.log"), `widget spawn failed: ${e?.message ?? e}\n`).catch(() => {});
  • 写入本地文件
    lib/index.js:241
    void appendFile(join(CACHE_DIR, "widget.log"), String(d)).catch(() => {});
  • 执行外部命令固定命令
    index.js:58
    const child = spawn("python3", [PIPELINE, "--out", CACHE_DIR], {
  • 写入本地文件
    index.js:89
    await mkdir(CACHE_DIR, { recursive: true });
  • 读取本地文件
    index.js:106
    const snap = JSON.parse(await readFile(join(CACHE_DIR, "snapshot.json"), "utf8"));
  • 读取本地文件
    index.js:107
    const html = await readFile(join(CACHE_DIR, "cockpit.html"), "utf8");
  • 读取本地文件
    index.js:114
    const snap = JSON.parse(await readFile(join(FALLBACK_DIR, "snapshot.json"), "utf8"));
  • 读取本地文件
    index.js:115
    const html = await readFile(join(FALLBACK_DIR, "cockpit.html"), "utf8");
  • 读取本地文件
    index.js:201
    if (existsSync(WIDGET_BIN)) {
  • 写入本地文件
    index.js:204
    try { chmodSync(WIDGET_BIN, 0o755); } catch {}
  • 执行外部命令固定命令
    index.js:209
    const result = spawnSync("swiftc", ["-O", "-o", WIDGET_BIN, WIDGET_SRC], { timeout: 5 * 60 * 1000 });
  • 读取本地文件
    index.js:210
    if (result.status === 0 && existsSync(WIDGET_BIN)) return WIDGET_BIN;
  • 写入本地文件
    index.js:211
    void appendFile(join(CACHE_DIR, "widget.log"), `widget build failed: ${String(result.stderr).slice(0, 500)}\n`).catch(() => {});
  • 写入本地文件
    index.js:213
    void appendFile(join(CACHE_DIR, "widget.log"), `widget build error: ${e?.message ?? e}\n`).catch(() => {});
  • 执行外部命令来自配置/变量
    index.js:234
    child = spawn(bin, args, { stdio: ["ignore", "ignore", "pipe"] });
  • 写入本地文件
    index.js:236
    void appendFile(join(CACHE_DIR, "widget.log"), `widget spawn failed: ${e?.message ?? e}\n`).catch(() => {});
  • 写入本地文件
    index.js:241
    void appendFile(join(CACHE_DIR, "widget.log"), String(d)).catch(() => {});
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/dsh-typert-protocol
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 实时查看社区乐观指数
  • 实时查看社区愤怒指数

README

由 DeepSeek 最新模型翻译生成
dsh-sentiment-cockpit r/DeepSeek 社区情绪驾驶舱 —— DeepSeek Harness (DSH) 网页插件。 在设置面板注册「社区情绪驾驶舱」分区,实时展示 r/DeepSeek 社区的 DSI 乐观/愤怒指数(0–100 多信号加权结构,参照 Crypto Fear & Greed Index 设计),并内置数据管道按周期自动刷新(默认每 60 分钟)。管道失败时自动回退到包内快照,永不出白屏。 license dsh 截图 DSI 指数历史曲线 功能 - 设置面板分区:设置 → 社区情绪驾驶舱。DSI 指数、愤怒指数、数据更新时间一目了然,支持手动刷新与新标签页打开快照。 - 桌面小组件(macOS):原生无边框悬浮窗常驻桌面,实时显示 DSI 指数,随管道自动更新。可拖动、可缩放,支持「贴桌面」(普通窗口盖住它,类似传统桌面小组件)与「置顶悬浮」两种层级。启动时默认以 📈 迷你胶囊出现,点击才展开完整仪表盘。窗口由插件附带的原生二进制(assets/desktop/,源码 main.swift)提供,无 Electron、无额外依赖。
展开完整文档(README 剩余 1 节)
dsh-sentiment-cockpit

r/DeepSeek 社区情绪驾驶舱 —— DeepSeek Harness (DSH) 网页插件。

在设置面板注册「社区情绪驾驶舱」分区,实时展示 r/DeepSeek 社区的 DSI 乐观/愤怒指数(0–100 多信号加权结构,参照 Crypto Fear & Greed Index 设计),并内置数据管道按周期自动刷新(默认每 60 分钟)。管道失败时自动回退到包内快照,永不出白屏。

license
dsh

截图

DSI 指数历史曲线

功能

- 设置面板分区:设置 → 社区情绪驾驶舱。DSI 指数、愤怒指数、数据更新时间一目了然,支持手动刷新与新标签页打开快照。
- 桌面小组件(macOS):原生无边框悬浮窗常驻桌面,实时显示 DSI 指数,随管道自动更新。可拖动、可缩放,支持「贴桌面」(普通窗口盖住它,类似传统桌面小组件)与「置顶悬浮」两种层级。启动时默认以 📈 迷你胶囊出现,点击才展开完整仪表盘。窗口由插件附带的原生二进制(assets/desktop/,源码 main.swift)提供,无 Electron、无额外依赖。
- 自动刷新:Host 端通过 cordis-plugin-timer 定时驱动 Python 数据管道(抓取 Arctic Shift 镜像 API → 计算指数 → 生成自包含 HTML 快照),默认每 60 分钟一次。
- 永不白屏:管道失败或缓存损坏时自动回退到包内内置快照(assets/fallback/)。
- 零构建授权安装:纯 JavaScript 实现、无构建脚本,Git 方式安装不需要任何 allowBuilds 授权。

安装

推荐使用 Git 方式(本仓库):

dsh plugin --profile web add github:RiRi9909/DeepSeekHarness-community-index

也可以锁定到某个 commit,防止后续推送改变你实际运行的内容:
dsh plugin --profile web add github:RiRi9909/DeepSeekHarness-community-index#

其他两种方式(详见官方发布文档):

本地路径
dsh plugin --profile web add /path/to/dsh-sentiment-cockpit

tarball(pnpm pack 打包后)
dsh plugin --profile web add ./dsh-sentiment-cockpit-0.2.3.tgz

安装后重启 DSH,即可在 设置 → 插件 中看到本插件,设置面板中出现「社区情绪驾驶舱」分区。

使用

- 打开 设置 → 社区情绪驾驶舱 查看面板;数据每 60 秒轮询更新。
- 点 刷新数据 立即重跑管道(约 1–20 分钟,期间按钮显示「刷新中」)。
- 点 新标签页打开 以独立页面查看自包含 HTML 快照。
- 设置命名空间 sentiment-cockpit:enabled(默认 true)、intervalMinutes(默认 60,范围 10–1440)。

桌面小组件

在设置命名空间 sentiment-cockpit 中配置:

| 键 | 默认 | 说明 |
| desktopEnabled | false | 是否在 DSH 启动时打开桌面小组件 |
| desktopMode | "desktop" | "desktop" 贴桌面(普通窗口盖住它);"floating" 置顶悬浮 |
| desktopScale | 1 | 缩放(0.7–1.6) |
| desktopX / desktopY | -1 | 窗口位置;负数表示右下角自动定位 |

修改后重启 DSH 生效。小组件有两种状态,启动时默认以迷你状态出现:

- 迷你状态:一个 📈 + DSI 数值的小胶囊(默认停在屏幕右下角);点击胶囊展开完整卡片,拖动胶囊可移动位置。
- 完整状态:顶栏显示实时 DSI 指数,提供 收起(—)/ 刷新(⟳)/ 浏览器打开快照(⧉)/ 关闭(✕)四个按钮;拖动顶栏可移动位置。

两种状态各自的位置都会记住,重启后保持原样(每次启动都从迷你状态开始)。

若附带二进制缺失(例如非 arm64 Mac),插件会尝试用本机 swiftc 从 assets/desktop/main.swift 现场编译。

依赖契约

- Host:@deepseek-ai/cordis、@deepseek-ai/dsh-settings、@deepseek-ai/dsh-typert-protocol、schemastery(由 profile 的共享 node_modules 解析)。
- Client:react(模块加载器共享)、dsh-client-runtime / dsh-client-connection / dsh-client-locale / dsh-client-ui-slots(dsh.client.inject 声明)。客户端通过 ctx.connection.rpc.call("/api", "cockpit/", …) 直连 Host 的 Typert 网关 SRC 通道。
- 数据管道:系统 python3(仅标准库,无第三方依赖)。

架构

| 部分 | 文件 | 职责 |
| Host | lib/index.js | Cordis 插件,暴露 Typert RPC remote.cockpit(getSnapshot / refresh / status),定时驱动管道,管理桌面小组件进程 |
| Client | lib/client.js | 注册 settings.section 槽位,iframe srcDoc 渲染快照 |
| 桌面小组件 | assets/desktop/main.swift(+ 预编译 DSHCockpitWidget) | 原生 macOS 悬浮窗,渲染快照并自动刷新 |
| 管道 | lib/pipeline/ | fetch_posts.py → fetch_comments.py → sentiment_index.py → build_snapshot.py(编排器 run_pipeline.py) |
| 回退 | assets/fallback/ | 内置快照;缓存目录 ~/.dsh/storages/dsh-sentiment-cockpit/ 不可用时兜底 |

手动更新快照

python3 lib/pipeline/run_pipeline.py --out ~/.dsh/storages/dsh-sentiment-cockpit

常见问题

- 面板显示「宿主插件未加载」:重启 DSH(Host 插件需重新引导)。
- 数据长时间不变:检查系统是否安装 python3;手动跑一次上方的管道命令查看报错。
- 想关闭自动刷新:设置命名空间 sentiment-cockpit 的 enabled 改为 false。

许可证

MIT © 2026 RiRi9909
预览分享卡片长什么样 ↓RiRi9909/DeepSeekHarness-community-index
分享 · DeepSeek Harness Hub
RiRi9909/DeepSeekHarness-community-index

实时查看 r/DeepSeek 社区乐观与愤怒指数

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部