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

飞书风协作客户端 lusipad/RocketX

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

以原版 Rocket.Chat 为内核、集成 Codex App Server、Deepseek…

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

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

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lusipad/RocketX
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✗npm 包rocketchatx(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 10:24:58

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

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

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 65 处,展示前 39 条)
  • 写入剪贴板
    apps/web/src/lib/butlerTaskHandoff.ts:51
    await navigator.clipboard.writeText(prompt);
  • 发起网络请求
    apps/web/src/lib/http.ts:82
    : (((input: RequestInfo | URL, init?: RequestInit) => fetch(input, init)) as typeof fetch);
  • 写入剪贴板
    apps/web/src/lib/imageClipboard.ts:42
    await navigator.clipboard.write([
  • 发起网络请求
    apps/web/src/lib/stickerLoader.ts:168
    fetchFn: FetchLike = (input) => fetch(input),
  • 发起网络请求
    apps/web/src/lib/stickerLoader.ts:214
    fetchFn: FetchLike = (input) => fetch(input),
  • 发起网络请求
    apps/web/src/lib/workspaceConfigSource.ts:236
    const response = await runtime.fetch(url);
  • 发起网络请求
    packages/app-sdk/src/types.ts:259
    fetch(options: NetworkFetchOptions): Promise<NetworkFetchResponse>;
  • 读取本地文件
    packages/create-rcx-app/src/dev.ts:70
    for (const entry of await readdir(directory, { withFileTypes: true })) {
  • 读取本地文件
    packages/create-rcx-app/src/dev.ts:75
    const info = await stat(absolute);
  • 读取本地文件
    packages/create-rcx-app/src/dev.ts:126
    const raw = await readFile(file);
  • 读取本地文件
    packages/create-rcx-app/src/project.ts:24
    const manifest = parseManifestJson(await readFile(manifestPath, 'utf8'));
  • 读取本地文件
    packages/create-rcx-app/src/project.ts:30
    if (!(await stat(entryPath)).isFile()) throw new Error(`App entry is not a file: ${manifest.entry}`);
  • 读取本地文件
    packages/create-rcx-app/src/project.ts:47
    const existing = await readdir(root);
  • 写入本地文件
    packages/create-rcx-app/src/project.ts:51
    await mkdir(root, { recursive: true });
  • 读取本地文件
    packages/create-rcx-app/src/project.ts:57
    await access(templateRoot);
  • 读取本地文件
    packages/create-rcx-app/src/project.ts:68
    for (const entry of await readdir(templateRoot)) {
  • 读取本地文件
    packages/create-rcx-app/src/project.ts:76
    const manifest = JSON.parse(await readFile(manifestPath, 'utf8')) as RcxAppManifest;
  • 写入本地文件
    packages/create-rcx-app/src/project.ts:80
    await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, 'utf8');
  • 发起网络请求
    packages/rc-client/src/auth.ts:32
    await context.request('POST', 'logout');
  • 发起网络请求
    packages/rc-client/src/files.ts:484
    await context.request('POST', `rooms.mediaConfirm/${rid}/${data.file._id}`, {
  • 发起网络请求
    packages/rc-client/src/messages.ts:53
    await context.request('POST', 'commands.run', { command, roomId: rid, params, ...(tmid ? { tmid } : {}) });
  • 发起网络请求
    packages/rc-client/src/messages.ts:80
    return context.request('POST', 'chat.postMessage', params);
  • 发起网络请求
    packages/rc-client/src/messages.ts:84
    return context.request('POST', 'chat.react', { messageId, emoji, shouldReact });
  • 发起网络请求
    packages/rc-client/src/messages.ts:174
    return context.request('POST', 'chat.followMessage', { mid });
  • 发起网络请求
    packages/rc-client/src/messages.ts:178
    return context.request('POST', 'chat.unfollowMessage', { mid });
  • 发起网络请求
    packages/rc-client/src/messages.ts:182
    return context.request('POST', 'chat.starMessage', { messageId });
  • 发起网络请求
    packages/rc-client/src/preferences.ts:45
    await context.request('POST', 'users.setPreferences', { userId, data });
  • 发起网络请求
    packages/rc-client/src/rest.ts:263
    request: (method, path, body, query) => this.request(method, path, body, query),
  • 发起网络请求
    packages/rc-client/src/rooms.ts:162
    return context.request('POST', 'teams.addMembers', { teamId, members });
  • 发起网络请求
    packages/rc-client/src/rooms.ts:171
    return context.request('POST', 'teams.removeMember', {
  • 发起网络请求
    packages/rc-client/src/rooms.ts:185
    return context.request('POST', 'teams.updateMember', { teamId, member: { userId, roles } });
  • 发起网络请求
    packages/rc-client/src/rooms.ts:194
    return context.request('POST', 'teams.addRooms', { teamId, rooms });
  • 发起网络请求
    packages/rc-client/src/rooms.ts:203
    return context.request('POST', 'teams.removeRoom', { teamId, roomId });
  • 发起网络请求
    packages/rc-client/src/rooms.ts:216
    return context.request('POST', 'teams.updateRoom', { roomId, isDefault });
  • 发起网络请求
    packages/rc-client/src/search.ts:42
    return context.request('GET', 'spotlight', undefined, { query });
  • 发起网络请求
    packages/rc-client/src/users.ts:49
    return context.request('POST', 'users.setStatus', { status, ...(message !== undefined ? { message } : {}) });
  • 发起网络请求
    packages/rc-client/src/users.ts:137
    return context.request('POST', 'users.delete', { userId });
  • 发起网络请求
    packages/rc-client/src/users.ts:203
    return context.request('POST', 'custom-user-status.delete', { customUserStatusId: id });
  • 发起网络请求
    packages/rc-client/src/users.ts:213
    await context.request('POST', 'users.resetAvatar', { userId: target });
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

6 张 · 点击查看大图
展开完整介绍(85 字)↓

以原版 Rocket.Chat 为内核、集成 Codex App Server、Deepseek Harness、Azure DevOps、体验对标飞书的团队协作客户端。

README

由 DeepSeek 最新模型翻译生成
RocketX 基于原版 Rocket.Chat 的团队协作客户端,体验对齐飞书。 RocketX 不改 Rocket.Chat 服务端,只通过公开 API 通信。你可以直接在现有 Rocket.Chat 服务器上部署,官方客户端与 RocketX 数据互通、可同时登录。 ┌─────────────────────────────────────┐ │ RocketX 客户端 │ │ 消息 │ 管家 │ 待办 │ 日历 │ 工作台 │ 通讯录 │ └────────┬───────────────┬────────────┘ │ REST / WS │ Webhook ┌────────▼──────┐ ┌─────▼──────────────┐ │ Rocket.Chat │ │ ado-bridge │ │ (原版不改) │◄─┤ Azure DevOps │ └───────────────┘ │ Server 2022 事件 │ └────────────────────┘ 下载 从 GitHub Releases 下载最新版本: - Windows:slim 安装包(探测系统 Codex / DSH)或 full 安装包(内置固定版本运行时) - macOS:universal DMG(ad-hoc 签名,未经 Apple 公证)
展开完整文档(README 剩余 1 节)
RocketX

基于原版 Rocket.Chat 的团队协作客户端,体验对齐飞书。

RocketX 不改 Rocket.Chat 服务端,只通过公开 API 通信。你可以直接在现有 Rocket.Chat 服务器上部署,官方客户端与 RocketX 数据互通、可同时登录。

┌─────────────────────────────────────┐
│ RocketX 客户端 │ │ 消息 │ 管家 │ 待办 │ 日历 │ 工作台 │ 通讯录 │ └────────┬───────────────┬────────────┘ │ REST / WS │ Webhook ┌────────▼──────┐ ┌─────▼──────────────┐ │ Rocket.Chat │ │ ado-bridge │ │ (原版不改) │◄─┤ Azure DevOps │ └───────────────┘ │ Server 2022 事件 │ └────────────────────┘

下载

从 GitHub Releases 下载最新版本:

- Windows:slim 安装包(探测系统 Codex / DSH)或 full 安装包(内置固定版本运行时)
- macOS:universal DMG(ad-hoc 签名,未经 Apple 公证)
- Linux:AppImage / DEB / RPM
- Web:直接用浏览器访问部署地址,无需安装

当前版本:v0.43.6

主要功能

- 飞书式团队消息:三栏布局、话题、表情回应、@ 提及、文件共享、讨论卡片、消息搜索。
- 完整斜杠命令:30 个命令全量中文说明、参数提示条与命令帮助(/help 或 Ctrl+/);参数化命令一律弹出图形界面(选人、选频道、确认框),不再要求手打 @用户名 语法。
- 原生团队功能:/poll 投票(点数字表情计票)、/kanban 频道看板(消息一键收纳成卡片)、/oncall 值班表——数据全部存服务端实时共享,官方 Rocket.Chat 客户端也能阅读和参与(例如用表情参与投票)。
- GTD 工作区:收件箱、待办、日历、通讯录,以及可直连 Azure DevOps Server 2022 的工作台。
- 本地 AI 管家:启动时从 OpenAI Codex、DeepSeek Harness(DSH)或“无 AI”中三选一。选择全局生效,保存后重启生效,不会同时跑两个后端。
- 房间共享 AI 托管:在房间或讨论里开启共享 AI,Web 和无 AI 客户端也能看到状态、用 @ai 提问。
- 局域网连续可用:认证点对点链路,Windows 上可选配 IPMSG / 内网通 Sidecar 插件。

快速上手

1. 启动 RocketX 桌面端或打开 Web 端。
2. 首次启动会介绍 GTD 流程:如何捕获事项、理清下一步、保护注意力。
3. 选择「加入团队」导入 rcx.workspace.json,或选择个人模式直接填写 Rocket.Chat 服务器地址。
4. 登录后即可使用消息、工作台、待办、日历;在设置 → AI 中选择想要的 AI 运行时,重启后生效。

团队配置文件示例见 docs/examples/rcx.workspace.sample.json。它只包含非敏感默认值,不会存放密码或 PAT。

截图

| 斜杠命令补全 | 命令帮助 |
| 斜杠命令补全:30 个命令全量中文说明与参数提示 | 命令帮助(/help 或 Ctrl+/):可搜索、点击插入 |
| 投票 | 消息看板 |
| 投票:聊天内点数字表情计票,官方客户端用表情也能参与 | 频道消息看板:消息一键收纳成卡片,成员实时共享 |
| 值班表 | 加入频道 |
| 团队值班表:排班实时共享,可发布文本快照到频道 | 加入频道:无需命令语法,浏览或搜索公开频道 |

与官方 Rocket.Chat 客户端互通——投票在官方网页端显示为可读文本 + 表情回应,官方客户端投下的票实时计入 RocketX 的投票卡片:

| 官方 Rocket.Chat 网页端 | RocketX 实时计票 |
| 官方客户端投票 | 跨客户端计票 |

欢迎在 issue 中分享你使用 RocketX 的界面截图。

文档

- 功能规格:当前能力、平台限制和失败语义
- 能力矩阵:桌面端、Web、无 Runtime、性能模式下的可用性对照
- 团队配置说明:rcx.workspace.json 字段与安全规则
- 应用开发指南:如何开发 RocketX 应用
- 架构决策、兼容性说明、CHANGELOG.md

安全与兼容性

- 只使用 Rocket.Chat 公开 API(/api/v1/*、/websocket),不改服务端,不私建数据表。
- 已验证服务端版本:Rocket.Chat 8.6.x(docker 镜像已固定为 8.6.1)。
- 原生集成的密钥停留在本地密钥边界;DSH 0.2.1-rc.2 使用私有 DSH_HOME/.credentials.yaml,不会回显给 RocketX。

完整安全政策见 SECURITY.md。

参与开发

如果你想参与开发或本地调试,请阅读 CONTRIBUTING.md。开发环境需要 Node.js 22.19+、pnpm 11.12.0;桌面端开发还需要 Rust 和 Tauri 前置依赖。

许可

本项目使用 MIT License。

RocketX 是独立项目,与 Rocket.Chat Technologies Corp. 没有关联,也未获得其背书。
预览分享卡片长什么样 ↓lusipad/RocketX
分享 · DeepSeek Harness Hub
lusipad/RocketX

以原版 Rocket.Chat 为内核、集成 Codex App Server、Deepseek…

这是你的仓库?认领条目

回到顶部