Cetus 是一个桌面客户端,用来审阅和管理你在用的所有 agent 的工作 —— Claude…
数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
dsh plugin --profile web add drewnekota/cetus状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 15:38:17
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
查看扫描证据(共 20 处,展示前 20 条)
- 执行外部命令来自配置/变量evals/general-benchmark/run.mjs:138
const res = spawnSync(command, args, { - 发起网络请求evals/web-search/run.mjs:47
const res = await fetch(url, { ...init, signal: ctrl.signal }); - 发起网络请求src-tauri/cetus-extensions/browser-use.ts:346
const res = await fetch(VERSION_URL, { signal: AbortSignal.timeout(2000) }); - 执行外部命令固定命令src-tauri/cetus-extensions/browser-use.ts:361
child = spawn( - 读取本地文件src-tauri/cetus-extensions/coordinator-tools.ts:60
text = readFileSync(path, "utf8").trim(); - 读取本地文件src-tauri/cetus-extensions/custom-models.ts:81
const cfg = JSON.parse(readFileSync(path, "utf8")); - 读取密钥环境变量src-tauri/cetus-extensions/deepseek-endpoint.ts:9
apiKey: process.env.DEEPSEEK_API_KEY, - 读取本地文件src-tauri/cetus-extensions/dictation-recall.ts:32
return JSON.parse(await readFile(path, "utf8")) as Store; - 读取本地文件src-tauri/cetus-extensions/skill-discovery.ts:67
if (!existsSync(root)) return out; - 读取本地文件src-tauri/cetus-extensions/skill-discovery.ts:71
entries = readdirSync(dir, { withFileTypes: true }); - 读取本地文件src-tauri/cetus-extensions/skill-discovery.ts:77
const md = readFileSync(filePath, "utf-8"); - 读取本地文件src-tauri/cetus-extensions/skill-discovery.ts:96
isDir = statSync(child).isDirectory(); - 发起网络请求src-tauri/cetus-extensions/web-search.ts:214
const res = await fetch(url, { - 发起网络请求src-tauri/cetus-extensions/web-search.ts:236
const res = await fetch(url, { - 发起网络请求src-tauri/cetus-extensions/web-search.ts:305
const res = await fetch(current, { - 读取密钥环境变量src-tauri/cetus-extensions/web-search.ts:332
const tavilyKey = process.env.TAVILY_API_KEY; - 读取密钥环境变量src-tauri/cetus-extensions/web-search.ts:333
const exaKey = process.env.EXA_API_KEY; - 发起网络请求src-tauri/remote/app.js:54
const r = await fetch("/api" + path, { - 写入剪贴板website/main.js:506
`,z=document.createElement("div");z.className="demo-file-markdown";for(let[e,t]of[["h4","Morning briefing"],["h5","Today\u2019s priorities"],["p","Rev - 写入剪贴板website/src/product-demo.js:211
try { await navigator.clipboard.writeText(files[currentFile].text); label.textContent = 'Copied'; }
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
界面预览
5 张 · 点击查看大图功能亮点
- 定时运行智能体
- 全局热键启动器
一个 macOS 应用,通吃 Claude Code、Codex 和你用的所有智能体运行时——定时运行、全局热键启动器、每次运行独立 git worktree、统一审查面板。
README
由 DeepSeek 最新模型翻译生成展开完整文档(README 剩余 1 节)
Human in the loop is the bottleneck. Cetus 是一个桌面客户端,用来审阅和管理你在用的所有 agent 的工作 —— Claude Code、Codex、DeepSeek Harness、OpenCode、Grok Build、Kimi CLI,或内置 runtime。 官方网站 · cetus.run English · 简体中文 Cetus 操作演示 —— 唤起 agent、创建自动化任务并切换 runtime 社区 ⭐️ 给仓库点个 Star,第一时间收到新版本通知。想交流使用体验和建议,欢迎微信扫码加入群聊。 友情链接 - LINUX DO —— 有理想的新社区。 为什么做 Cetus agent 已经不是慢的那一环了。Claude Code、Codex、DeepSeek Harness 都能自己连续干一个小时。真正拖慢它们的,是它们在等的那个人:一个权限请求、一个澄清问题、一个做完了却还没人审阅的任务。 而这个人通常同时在用好几个产品:Claude Code 开一个窗口,Codex 开另一个,定时任务各自在不同的客户端里汇报结果。每切换一次都要消耗注意力;agent 在等你而你没注意到的每一分钟,它都在空转。 也有像 Superset 这样把不同 runtime 放到一起的工具,但它是 TUI。终端很适合 agent 运行,却不适合人阅读:所有内容都是等宽文字,计划、diff 和提问看起来都差不多,滚出屏幕就找不回来了。 Cetus 是为环里"人"这一侧做的:一个真正的桌面 app,让每个 agent 的工作都容易读、容易回应、容易审阅。 一个客户端,接住所有 runtime Cetus runtime 选择器 —— Claude Code、Codex、DeepSeek Harness、OpenCode、Grok Build、Kimi CLI 都在同一个 macOS app 里 - 所有 runtime 在一个窗口里。 直接用你已经装好、登录好的 CLI。Cetus 复用它的登录、模型和工具,不用再配第二个账号。 - 在一个地方响应。 任何 runtime 的权限请求、提问和计划,都以卡片形式出现在对话里。turn 还在跑也能插话引导,或者把下一条消息排进队列。 - 在一块看板上审阅。 每个对话都是 进行中 · 待审阅 · 已完成 里的一张卡片。做完的工作会等着你,不会在终端里被滚走。 - 并行但不打架。 每个对话可以有独立的 git worktree,多个 agent 能同时改同一个仓库。 围绕同一个环做的能力 Cetus 的其它能力,都是为了缩短你在环里的那一段。 Threads:一眼看到你所有的会话 一个以工作区为单位的信息流:每发一条消息就开一个独立会话,@ 哪个 runtime 就用哪个。任意 thread 都能停靠在信息流旁边打开,跟着活动角标就能跳到下一个需要你的会话。 Cetus Threads 视图 Quick Launcher:一个快捷键,唤起任意 runtime 同时按住左右 ⌘,即可在任意 app 之上唤出 agent。Cetus 会把当前截图、前台 app、浏览器 URL 和选中文字作为可移除的 context 一起带进来,让你就地提问,不必切窗口、也不必先解释自己在看什么。 Cetus 快捷启动器演示 Automations:定时任务也回到同一个地方 把任意 prompt 变成单次或周期任务(at / every / cron / daily),可以跑在任意 runtime 上。每次运行都在新的后台对话中完成,结果落到看板上等你审阅,而不是又在另一个客户端里汇报。 Cetus 自动化任务演示 少解释一点 需要你手动交代的上下文越少,你就越快能离开这个环。 - 屏幕上下文。 Cetus 采集画面、去重,并用 Apple Vision 在本地做 OCR,agent 能回忆屏幕上出现过什么。需手动开启,提供保留时长设置和排除 app 列表。 - 会议记忆。 通话在本地转写成可搜索的笔记 —— 只存文字,不存音频。问一句"发布日期最后怎么定的?",agent 就会在本地检索会议历史。默认关闭。 - 听写。 在任何 app 里按住快捷键说话,Cetus 会把整理好的文字输入到光标所在位置。 - 持久记忆:你和 agent 都能编辑,会带进之后的对话。 还有更多 - 并行方案:一个 prompt 分出 N 个候选运行,留一个、归档其余 - Cetus Remote:可选的手机端伴侣(基于 Tailscale),离开电脑也能跟进运行、处理审批 - 电脑与浏览器控制:执行任何关键操作前都会确认,停止按钮始终可用 - 内置 runtime 支持 30+ 模型供应商,包括 Anthropic、OpenAI、Google、Bedrock、Ollama、LM Studio 和 OpenRouter 所有涉及屏幕、麦克风或其它 app 的能力都需要你手动开启,数据都留在你的 Mac 上。 立即使用 Cetus 支持 Apple Silicon Mac,同一个 app 有两个版本: | 版本 | 下载 | 系统要求 | | Cetus —— 最早的版本,基于 Tauri | Cetus.dmg | macOS 13+ | | Cetus Swift(Beta)—— 原生 SwiftUI 版本,仍在打磨中 | Cetus-Swift.dmg | macOS 15+ | 两个版本都会自动更新。然后: 1. 打开 DMG,把 Cetus 拖进「应用程序」。 2. 使用内置 runtime,或选择一个已安装并登录的 claude、codex 或 dsh(DeepSeek Harness)CLI。 3. 选一个工作区,给 agent 布置第一个任务。 早期版本: Cetus 仍在快速迭代中。遇到问题或缺少某个工作流,欢迎提 issue。 许可证 MIT
预览分享卡片长什么样 ↓
Cetus 是一个桌面客户端,用来审阅和管理你在用的所有 agent 的工作 —— Claude…