← 返回列表
⚠ 装前注意
Cookie Code 是一款零 token 成本的桌面 AI Agent。
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/24 · 已提供中文文档
综合分
35.7
GitHub 分
35.7
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/merfiDEV/Cookie-code.git信任档位:已验证本站已于 1 天前真实安装成功(L4 · 真实安装)
- 是什么
- 生态插件(可安装,未声明 dsh 能力)
- 装得上吗
- 本站已真实安装成功(L4 · 真实安装,非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 2 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/24(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包cuckoo-code(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=16.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/25 07:47:58
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成Cookie Code
English · Русский
Cookie Code 是一款零 token 成本的桌面 AI Agent。
它将 DeepSeek 网页聊天嵌入原生 Electron 窗口,注入侧边覆盖层,并将聊天转变为本地执行器:AI 被提示发出工具调用(JavaScript 代码块),这些调用会被拦截、确认、在本地沙箱中执行,并流式返回给 AI。无需 API 密钥,无 token 计费——你使用常规的网页账户即可。
为什么存在
网页聊天擅长_思考_,但无法在你的机器上_行动_。Cookie Code 闭合了这一循环:
- 零 token 成本——一切通过 DeepSeek 网页 UI 进行,无 API 调用。
- 真正的 agent 循环——思考 → 行动 → 观察 → 重复。文件 I/O、代码搜索、shell 命令、数据库查询、MCP 工具。
- 原生桌面外壳——Electron 封装,带有自己的覆盖面板、主题和设置。
功能特性
工具执行
- AI 以 JavaScript 代码块(- 每次调用都会被拦截、预览,并在沙箱化的 Node 上下文中执行。
- 结果作为系统消息流式返回聊天中。
- 非零 shell 退出码([exit code: N])会在对应工具块下方以红色高亮显示。
内联工具块
聊天中的每个 cuckoo 块都会被装饰为可折叠卡片,显示工具名称、文件提示和执行时间:
- ▼ 图标 + 工具名称(Read / Write / Edit / Bash / Glob / Grep / PowerShell / Todo / WebFetch / MCP / MySQL / …)
- 从第一个参数推导出的文件提示
- 点击展开/折叠
- 执行失败时显示红色样式 + 警告图标
页面重新加载后同样如此——样式会从 localStorage 中恢复。
工具调用审批
工具执行可以置于用户明确确认之后(设置 → Cookie Code → Agent & Privacy):
- 关闭 — 工具自动运行(之前的行为)。
- 仅高风险 — 对危险工具(bash、pwsh、write、edit、deleteFile、mysql、webFetch、injectJS、mcpCall……)请求确认。只读工具(read、glob、grep、todo……)无需询问即可运行。
- 所有调用 — 每次工具调用以及每个 cuckoo JS 代码块都会先询问。
每个待处理的调用都会显示一张模态卡片,包含工具名称和参数/代码预览。按钮:拒绝 (Esc)、批准 (Enter) 和 始终允许 (仅在当前页面会话中记住)。拒绝会通过常规工具结果通道反馈给 AI,并附带明确的“不要重试”指令,因此智能体会等待你的指示,而不是陷入循环。
简洁聊天(隐藏服务消息)
服务流量——工具结果负载、JS 结果摘要、初始系统提示、XML 格式提示——仍会到达 AI,但不再显示在聊天窗口中:
- 发送后,此类用户消息会在 DOM 中自动隐藏(.cuckoo-hidden-msg),只留下真实对话可见。
- 工具结果以内联方式显示:每个 - 消息仍保留在 DOM 中(只是 display: none),因此历史解析、重新加载恢复和 AI 上下文检测都能继续正常工作。
- 页面重新加载后,隐藏消息会通过一个轻量级观察器 + 定期重新扫描再次隐藏。
- 开关位于 设置 → Cookie Code → Agent & Privacy → Hide service messages in chat(即时生效,无需重新加载)。
响应元信息
每条 AI 回复下方都会自动显示一个徽章:
⏱ 5.2s · ~380 tok
- 从流开始到完成所测得的真实响应时间
- 估算的 token 数量(字符数 / 4)——一个粗略的近似值
- 持久化在 localStorage 中,重新加载时恢复
背景
应用内置 27 张精选壁纸。在 设置 → Cookie Code 的预览网格中选择:
即时更换,无需重新加载。
字体
完全控制 Cookie Code UI 以及 DeepSeek 页面的字体:
- 默认使用系统字体——不强制任何字体
- 内置 Anthropic Mono——一键选择
- 你自己的字体——将文件(.ttf / .otf / .woff / .woff2)放入 /fonts(按钮 “Open fonts folder”),然后点击 “Refresh”——该字体就会出现在预览网格中
- 字重滑块(100–900)—— 对系统字体和任何自定义字体均有效
- 从 设置 → Cookie Code 中的预览网格中选择;立即应用到整个 UI 和页面
所有设置都保存在 cuckoo-settings.json 中(font、fontWeight)。
模糊与透明度
完全控制 UI 玻璃效果:
- 背景模糊(0–30 px)
- 顶栏模糊与侧边栏模糊
- 顶栏 / 侧边栏 / 工具块不透明度
- 工具块玻璃模糊
所有设置都保存在 cuckoo-settings.json 中。
RGB 用户名
侧边栏中的用户名带有动画彩虹渐变(默认启用)。可在 设置 → Cookie Code → 效果 中切换。
Telegram 机器人
通过手机控制和监控 Cookie Code:
- 工具通知 —— 每次工具调用(成功/失败、名称、参数、结果)都会发送到你的 Telegram 聊天。对于 edit,会显示新代码(最多 2000 个字符)。
- AI 回复 —— 每条 AI 文本回复都会镜像到 Telegram(人类可读文本,代码块会被移除)。
- 传入消息 —— 向机器人发送消息,它会像你亲自输入一样进入 DeepSeek 聊天。
- /todos 命令 —— 从 Telegram 获取当前活动窗口的任务列表。
- /help —— 直接从聊天中获取完整命令参考。
- /settings —— 带内联按钮的交互式设置菜单。每个 Cookie Code 选项都可以从手机编辑:外观(自定义开关、RGB 用户名、UI 语言)、玻璃与面板(模糊、不透明度、宽度、颜色)、代理与隐私(工具审批模式、隐藏服务消息、自动格式化程序、文件标签、生成的文件、危险模式列表),以及 Telegram 机器人本身(令牌、聊天 ID、通知开关)。壁纸被有意排除在外。
- /cancel —— 在编辑值时中止待处理的文本输入。
- 全部完成通知 —— 当列表中的每个任务都变为 completed 时,机器人会发送一次性的“🎉 所有任务已完成”消息(列表变化后会再次触发)。
- 轻量、无依赖的客户端(长轮询,无需 VPS 或 webhook)。
- 在 设置 → Cookie Code → Telegram 机器人 中配置(来自 @BotFather 的令牌 + 聊天 ID),或直接在 Telegram 中通过 /settings 配置。
简洁窗口
没有 Electron 系统菜单 —— 应用直接打开进入 DeepSeek。所有标准键盘快捷键(Ctrl+C/V、Ctrl+R、F12)仍然可用。
上下文转移
在新聊天中继续长对话而不丢失进度:
- Cookie Code 面板中的 “转移上下文” 按钮
- 当前聊天记录从 DOM 中读取,AI 将其压缩为结构化摘要(目标、决策、更改的文件、未解决的问题)
- 自动打开新聊天,并将摘要作为上下文注入——工作从同一点继续
- 过长的历史记录会根据 token 估算自动裁剪
项目初始化
选择一个项目目录一次——AI 会收到目录树以及针对真实项目定制的系统提示。之后每次工具调用都会相对于该目录解析路径。
MCP 支持
兼容 Claude Desktop 的配置格式。同时支持 stdio 和 http MCP 服务器。可从覆盖面板管理服务器和工具。
技能
将文件夹放入 .cuckoo/skills//,并包含一个 SKILL.md(以及可选的 tool.js),即可通过 skillList、skillLoad、skillExecute 调用。
自动格式化工具
每次 write 和 edit 都会通过特定语言的格式化工具处理文件,使 AI 的输出自动匹配你项目的风格——无需手动执行 prettier --write,diff 中也不会有风格噪音。
内置格式化工具:
| 格式化工具 | 触发条件 | 所需条件 |
| -------------- | ------------------------------------------ | ---------------------------------------------------------------------------------- |
| prettier | .js .jsx .ts .tsx .json .css .md .yaml … | 最近的 package.json 中有 prettier + node_modules/.bin 或 PATH 中有二进制文件 |
| biome | 与 prettier 相同 | 项目中有 biome.json / biome.jsonc |
| gofmt | .go | PATH 中有 gofmt |
| ruff | .py .pyi | PATH 中有 ruff + pyproject.toml 中有 [tool.ruff](或 ruff.toml) |
| rustfmt | .rs | PATH 中有 rustfmt |
| shfmt | .sh .bash | PATH 中有 shfmt |
| clang-format | .c .cpp .h … | .clang-format 配置 + PATH 中有 clang-format |
- 检测是配置感知的:没有 [tool.ruff] 部分的项目中 ruff 不会运行;没有 package.json 依赖时 prettier 不会运行。不会对外部代码进行意外的重新格式化。
- 格式化工具的错误会被吞掉——格式化工具失败绝不会阻塞 write/edit。
- 可通过 cuckoo-settings.json 中的 "formattersEnabled": false 禁用。
会话持久化
登录状态、项目和设置存储在 %APPDATA%/cuckoo-ai-pro-session(Windows)或 macOS/Linux 上等效的 userData 路径下。
安装
要求
- Node.js >= 16.0.0
- npm
从源码构建
bash
克隆
git clone https://github.com/merfiDEV/Cookie-code.git
cd Cookie-code
安装依赖
npm install
如果 npm 阻止了 electron 的 postinstall(allowScripts),请批准它:
npm install-scripts ls
npm install-scripts approve electron
npm install
启动
npm start
构建
bash
Windows 安装程序(NSIS)
npm run build:win
便携版
npm run build:win:portable
macOS DMG
npm run build:mac:dmg
使用方法
1. 启动应用——它会直接打开 DeepSeek。
2. 使用你常用的 DeepSeek 账号登录。
3. 点击 Initialize project 并选择一个目录。此时 AI 就可以访问目录树和系统提示词了。
4. 与 AI 对话。让它编辑文件、运行命令、搜索代码库等。
5. AI 回复中的工具调用会被拦截,在浮层中预览并执行。
6. 结果会自动发送回 AI,循环继续。
工具调用示例
AI 会输出类似这样的代码块:
markdown
const content = await read("src/index.js");
log(content);
Cookie Code 会拦截它,在沙箱中执行,并将结果返回给 AI。
可用工具
| 工具 | 描述 |
| ------------------------------------------ | ---------------------------------------------------------- |
| read, readLines | 读取文件(带行号、偏移/限制) |
| write, edit | 创建 / 修改文件(保存时自动格式化——见下文) |
| deleteFile | 删除文件 |
| glob, grep | 文件搜索(由 ripgrep 支持) |
| bash, pwsh | 执行 shell 命令 |
| todoWrite | 结构化任务列表 |
| webFetch | 以 Markdown 形式获取 HTTP(S) 内容 |
| mysql | 运行 SQL 查询 |
| mcpCall, mcpListServers, mcpGetTools | MCP 工具 |
| skillList, skillLoad, skillExecute | 自定义技能 |
| openBrowserWindow, injectJS | Electron 浏览器窗口 + JS 注入 |
完整的 TypeScript 声明随附于 tools/cuckoo-tools.d.ts。
自定义
Cookie Code 生来就是为了被改造的:更换壁纸、调整玻璃效果、更改强调色、编写你自己的技能,或扩展工具集。
外观
所有视觉相关内容都位于 设置 → Cookie Code 中,并持久化保存在 cuckoo-settings.json:
- 背景 — 27 张内置壁纸,或者将你自己的图片放入 src/ui/backgrounds/ 并在 registry.json 中注册。
- 玻璃效果 — 背景 / 页眉 / 侧边栏模糊、不透明度,以及工具块玻璃模糊。
- 字体 — 默认使用系统字体,内置 Anthropic Mono,或使用文件夹中的自定义字体;字重滑块(100–900)。同时应用于 UI 和 DeepSeek 页面。
- RGB 用户名 — 侧边栏中的动态彩虹渐变,可在 效果 下切换。
- 桌面宠物(chubriks) — 将精灵直接停在消息输入框上:它坐在顶部边缘,随输入框移动而移动,可以用鼠标拖动,并通过角柄调整大小。锚点以相对于输入框的比例存储,因此宠物在任何分辨率或缩放级别下都能保持原位。
- 自定义精灵 — 将 PNG/GIF 文件放入 /pets/,它们会立即出现在设置内的选择器网格中。上传… 按钮接受任何图片,并自动将其缩小到 600×600。
- GIF 背景移除 — 如果 GIF 有白色(或任何其他)背景,请打开编辑器(其预览上的 🎨 BG 按钮),然后在不想要的颜色上点击吸管。背景会在 每一帧 中消失,动画保持完整。
- 调试模式(F8–F11) — 微调宠物位置:F8 — 瞄准(点击一个点),F9 — 输入框调试框,F10 — 切换停靠 / 自由模式,F11 — 重置大小。可在设置中切换。
安全
- 可选的工具调用审批门控(关闭 / 仅风险工具 / 所有调用),可在应用内或通过 Telegram /settings 配置
- 30 秒命令超时,60 秒沙箱超时
- 1 MB 输出缓冲区
- 可编辑的危险命令黑名单(rm -rf /、format、diskpart、…)— 正则表达式模式,可从设置选项卡或通过 Telegram 更改
- 自动格式化程序仅在项目配置要求时运行(配置感知检测),并且绝不会阻塞 write/edit
- 文件路径限制在项目目录内
配置
用户设置位于应用 userData 目录下的 cuckoo-settings.json 中:
json
{
"background": "miku",
"backgroundBlur": 0,
"font": "system",
"fontWeight": 400,
"headerBlur": 12,
"sidebarBlur": 12,
"headerOpacity": 45,
"sidebarOpacity": 45,
"toolBlockOpacity": 55,
"toolBlockBlur": 0,
"rgbUsername": true,
"formattersEnabled": true,
"toolApprovalMode": "off",
"hideSystemMessages": false,
"fileChipEnabled": true,
"showProducedFiles": true,
"language": "ru",
"telegramEnabled": false,
"telegramBotToken": "",
"telegramChatId": "",
"telegramNotifyTools": false,
"telegramChatFeed": false
}
所有设置都可以在应用内的 设置 → Cookie Code 中编辑。
项目结构
src/
├── main/ Electron 主进程
│ ├── index.js 应用引导、窗口创建
│ ├── ipc.js IPC 处理器
│ ├── settings-store 用户设置(cuckoo-settings.json)
│ ├── profile-manager 按窗口划分的配置文件
│ ├── session-store 会话 ↔ 项目目录映射
│ ├── mcp-client MCP SDK 集成
│ ├── skill-manager 技能加载
│ ├── format-registry 内置格式化工具(prettier/biome/gofmt/ruff/...)
│ ├── formatter 写入/编辑时的自动格式化钩子
│ ├── window.js 窗口注册表
│ └── ...
├── preload/
│ ├── api.js contextBridge → electronAPI
│ ├── index.js 初始化与接线
│ ├── i18n/
│ │ └── i18n.js RU/EN 翻译,t(key, params) 辅助函数
│ ├── dom/ DOM 解析器与观察器
│ │ ├── observer.js 主回复观察器
│ │ ├── tool-render.js 内联工具块
│ │ ├── response-meta.js 回复下方的 ⏱ 徽章
│ │ ├── settings-tab.js 设置中的 Cookie Code 标签页
│ │ ├── background.js 壁纸与模糊引擎
│ │ ├── context-port.js 聊天上下文传输
│ │ ├── fonts.js UI 与页面字体引擎
│ │ └── ...
│ └── overlay/ 覆盖面板 UI
│ ├── template.js buildOverlayHTML() + OVERLAY_CSS
│ ├── diff-panel.js Git 变更 / 历史面板
│ └── todo-panel.js 浮动任务列表
├── providers/
│ └── deepseek.js 平台适配器
├── ui/
│ ├── backgrounds/ 27 张壁纸 + registry.json
│ ├── fonts/ 内置字体(Anthropic Mono)
│ └── logos/
tools/ 工具实现(在主进程中运行)
└── cuckoo-tools.d.ts 面向 AI 的类型声明
botsrc/ Telegram 机器人集成(无依赖)
├── telegram.js 长轮询 Telegram 客户端
└── index.js 设置、通知、聊天信息流
许可证
MIT