Skip to main content
Glama

Cupbox


⚠️ 许可与素材声明

  • 代码与文档:MIT 许可证,可自由使用、修改与分发。

  • 全部美术与音频资源(插画、角色立绘、服装与动作像素图、图标、界面背景、启动动画素材、表情包、背景音乐与音效等,含随安装包分发的内容):不在 MIT 许可范围内,权利归项目团队所有,未经书面许可不得复制、修改、分发或用于任何衍生作品。

  • 「筑梦喵」(Dream Weaving Meow)是团队 IP 形象(含形象、名称、设定、服饰与衍生造型):不可复用——无论公益或商业用途均不得使用、仿制、二次创作,或作为其他项目/产品的形象;违者将视情节追究法律责任。

完整条款见 LICENSE 与 素材许可说明。


Related MCP server: Uten Agent Terminal MCP

📦 Cupbox 是什么?

Cupbox 是一个面向日常开发工作的轻量级工具箱。

在开发过程中,我们总会遇到许多不大不小的杂活:

  • 下载目录堆满了文件,需要按类型整理。

  • 一批图片需要统一编号,或者按规则批量重命名。

  • 想在项目中搜索某个关键词,却不想被依赖目录和构建产物干扰。

  • 需要计算文件哈希、转换时间戳、处理 JSON 或 CSV。

  • 想快速识别截图中的文字,或者压缩、解压一个文件夹。

  • 希望 AI 帮忙操作本地文件,却不想把系统权限完全交出去。

这些事情单独看都很简单,但频繁切换工具、编写临时脚本和重复确认操作,会不断打断开发节奏。

Cupbox 希望把这些零散能力整合到一个统一、可复用、可审查的工具集中。

一套能力,三种入口

                    Cupbox
                       │
        ┌────────────┼────────────┐
        │            │            │
   CLI 命令行     MCP Server    桌面工作台
        │            │            │
  开发者直接使用  AI 智能体调用  普通/高级任务
        │            │            │
        └────────────┼────────────┘
                       │
                 统一功能引擎
                       │
          ┌────────────┼────────────┐
          │            │            │
        文件操作     文本处理     系统工具
          │            │            │
          └────────────┼────────────┘
                       │
                统一安全规则
  • CLI: 面向开发者,适合手动操作、终端工作流和脚本自动化。

  • MCP: 面向 AI 智能体,让兼容 MCP 的客户端能够以结构化工具调用 Cupbox。

  • 桌面版: Electron 工作台,普通任务继续原会话,高级任务在主窗口内嵌原生 AI 引擎;工具调用、提问、审批、执行轨迹和任务恢复都在同一界面完成。

  • 统一引擎: 三种入口复用同一套核心能力,减少重复实现。

  • 安全优先: 对文件变更、命令执行和进程管理设置明确的操作边界。

无论是你亲自敲命令、在桌面工作台里对话,还是让 AI 帮你完成任务,都不需要为同一件事情维护两套工具。

✨ 为什么选择 Cupbox?

01. 不只是命令行,也是 AI 的工具箱

传统 CLI 主要服务于人类用户,而 Cupbox 同时考虑 AI 智能体的调用方式。

同一项能力既可以通过命令执行:

cupbox organize ~/Downloads --mode category --dry-run

也可以通过 MCP 工具调用:

organize_files

这样,开发者可以继续使用熟悉的终端,而 AI 则可以在授权的工具范围内协助完成重复性工作。

02. 安全默认,而不是事后补救

让 AI 操作本地文件很方便,但错误的移动、重命名或系统命令也可能造成实际损失。

Cupbox 将安全规则纳入工具设计:

  • 文件整理和批量重命名支持预览操作。

  • 面向 AI 的文件变更工具默认先进行 dry-run。

  • 命令执行必须通过白名单检查:面向 AI 的 run_command 默认拒绝执行,必须提供 allowPrefixes 或管理员预设 CUPBOX_RUN_ALLOW,且白名单模式下拦截 shell 元字符防注入。

  • 进程终止需要同时校验 PID 和进程名。

  • 重名冲突默认跳过,不静默覆盖。

  • MCP 工具支持通过环境变量禁用。

让 AI 具备执行能力,但不意味着让 AI 获得无限制的执行权限。

03. 轻量依赖,尽量使用系统能力

Cupbox 尽量复用操作系统已有的能力,减少额外依赖和部署负担。

  • OCR:Windows 原生识别能力或已安装的 Tesseract。

  • 压缩包:系统 tar。

  • 剪贴板与截屏:使用平台对应的原生能力。

  • 运行环境:Node.js 18.17 或更高版本。

  • 运行时依赖:项目设计目标为仅两个运行时依赖。

具体能力仍取决于操作系统、相关系统组件和可选工具是否可用。

04. 跨平台,统一工作流

Cupbox 面向 Windows、macOS 和 Linux,适合个人开发环境、项目仓库以及日常文件处理。

不同平台的系统工具和权限机制可能存在差异,因此实际功能可用性以对应平台的实现和测试结果为准。


🧰 功能一览

Cupbox 的工具按入口分别统计,数量不要混在一起看:

入口

数量

说明

桌面工具箱

121 项

51 项本地工具 + 70 项工作模式工具目录

原生工作引擎

66 项

工作模式下 AI 可直接调用的本机工具

命令行 / MCP

21 项

终端命令与 MCP 客户端调用

🧰 桌面工具箱(121 项)

工具箱按“办公 / 本机工具 / 文件 / 数据 / 图片 / 工作模式”分类,支持搜索:

分类

数量

内容

办公

23

Word 读取 / 制作 / 替换 / 模板 / 邮件合并;PPT 读取 / 制作 / 替换 / 重排;Excel 读取 / 制作 / 修改 / 分析 / 转换 / 格式化 / 合并;PDF 读取 / 生成 / 合并 / 拆分 / 盖章;Office 导入导出

本机工具

20

Use-It 7(PPT、Word、Excel、AutoCAD、桌面截图与动作、状态、动作清单)、桌面协作 6(观察、截图、OCR、视觉、鼠标、键盘)、压缩、OCR、剪贴板、截图、命令、进程

文件

3

文件整理、批量重命名、文件搜索

数据

4

哈希、时间戳、编码解码、CSV/JSON

图片

1

图片像素混淆与还原

工作模式目录

70

Harness 工具目录:原版运行时 38、需启用扩展 22、需浏览器与模型 6、上游未发布 2、Windows pwsh 1、语言服务器 1

🛠️ 原生工作引擎(66 项)

工作模式(高级任务)下 AI 实际可调用的工具,写入继续走预览与批准:

领域

数量

工具

文件

10

读取、写入、编辑、补丁、建目录、移动、复制、删除、信息、回滚

终端与进程

7

伪终端创建 / 写入 / 读取 / 结束 / 列表、受保护命令、进程管理

图片

6

转换、缩放、裁剪、对比、信息、取色

办公文档

23

Word 5、PPT 4、Excel 7、Office 2、PDF 5

Use-It

7

状态、动作清单、PPT、Word、Excel、AutoCAD、桌面

记忆 / 任务 / 上下文

5

记事、召回、管理、任务、上下文统计

网络 / 比较 / 搜索 / 替换 / 剪贴板

5

HTTP、diff、grep、replace、剪贴板图片

Git / 包 / 测试

3

git、包管理、测试

以下 21 个工具同时提供命令行与 MCP 入口:

📁 文件管理

功能

CLI 命令

MCP 工具

能力说明

文件整理

cupbox organize

organize_files

按文件类型、日期或正则规则归档,支持预览

批量重命名

cupbox rename

batch_rename

模板、正则与扩展名筛选,重名不覆盖

文件搜索

cupbox search

search_files

搜索文件名与内容,自动跳过常见依赖目录

压缩包管理

cupbox zip

zip

创建、解压和查看压缩包清单

🔧 文本与数据处理

功能

CLI 命令

MCP 工具

能力说明

哈希计算

cupbox hash

hash

支持 MD5、SHA-1、SHA-256、SHA-512

时间转换

cupbox time

time_convert

识别秒或毫秒时间戳,转换 ISO、北京时间和相对时间

编码与解码

cupbox codec

codec

Base64、URL、HTML 编解码及 JSON 格式化、压缩

CSV 与 JSON 转换

cupbox csv

convert_csv_json

双向转换,支持 RFC 4180 相关 CSV 处理

🖼️ 图片处理

功能

CLI 命令

MCP 工具

能力说明

图片像素混淆

cupbox obfuscate

obfuscate_image

六种模式混淆与无损还原,与「番茄图片混淆」生态互通;密钥非法即时拦截,绝不覆盖已有文件

🖥️ 系统与桌面工具

功能

CLI 命令

MCP 工具

能力说明

OCR 文字识别

cupbox ocr

ocr_image

调用 Windows 原生引擎或 Tesseract

剪贴板

cupbox clip

clipboard

读取和写入剪贴板

截屏

cupbox shot

take_screenshot

调用平台支持的截屏能力并输出 PNG

受保护命令执行

cupbox run

run_command

MCP 侧默认拒绝、必须白名单(防注入),超时限制和输出截断

进程管理

cupbox proc

process

按内存等信息查看进程,并对结束操作进行双重校验

版本检测与更新

cupbox update

—

GitHub Releases → npm 双数据源(npm 源校验仓库归属防撞名),输出更新公告与下载地址;CUPBOX_UPDATE_DISABLE=1 可关闭

🧠 AI 能力

功能

CLI 命令

MCP 工具

能力说明

AI 问答

cupbox ai ask

ai_ask

通过已配置的 API 单次问答(OpenAI 兼容 / Anthropic 双协议)

AI Agent

cupbox ai agent

ai_agent

多轮循环:模型自主调用本地工具完成任务后给出总结

🧩 三层记忆与上下文压缩(参考 dsh-mnemon 架构)

AI 不再每次从零开始:Cupbox 在本机维护三层记忆,超长对话自动压缩为摘要。

层

存储

行为

运行时记忆

文档/Cupbox/memory/user.md(用户画像)+ memory.md(协作约定)

常驻注入每次对话的 system prompt

长期事实

文档/Cupbox/memory/facts.jsonl(追加式日志)

按查询相关性召回(中文二元组 + 拉丁词打分)

项目档案

会话工作区 + 会话摘要

工作区目录常驻提示;摘要在压缩时由 AI 生成

上下文压缩:历史超过预算(默认 24000 字符)时,旧轮次交给模型浓缩成 ≤400 字摘要,只保留最近 8 条原文。摘要并入 system prompt,下轮继续生效。无 AI 配置时降级为纯截断,绝不阻塞对话。桌面版对话框会出现「已压缩 N 条早前消息为摘要」提示条。

操作

CLI

MCP 工具

记住一条事实

cupbox memory add <内容> [--source 标签]

memory_remember

按关键词召回

cupbox memory search <关键词>

memory_recall

列出 / 遗忘

cupbox memory list / forget <id或关键词>

memory_manage

画像 / 约定

cupbox memory user [内容] / collab [内容]

memory_profile

桌面版 Agent 循环中,模型可直接调用这 4 个记忆工具跨会话记事;每次对话开始时自动注入相关记忆。

📊 上下文洞察(致敬 dsh-context 的能力方向)

长对话最怕「不知道还剩多少空间」。Cupbox 把上下文占用变成看得见的数字:

能力

CLI

MCP 工具

说明

Token 估算与窗口占用

cupbox context [--text 文本] [--file 路径] [--window 128000]

context_stats

固定密度启发式(中文≈1.5 字符/token,西文≈4 字符/token);不传文本时返回 Agent 基线开销(系统提示词 + 全部工具 Schema)

  • 六成分分解:每次请求把上下文拆成 系统提示词 / 工具 Schema / 用户消息 / 注入上下文 / 助手回复 / 工具结果 六段,各占多少一目了然。

  • 趋势与事件:桌面版按请求记录占用曲线(含提供方上报的实际输入/输出 token),并标注 注入记忆、压缩历史、切换模型、切换模式 四类事件。

  • 桌面入口:对话页右上角「上下文」按钮打开洞察面板(成分条 + 占用趋势 + 事件流);窗口默认 128k,可用环境变量 CUPBOX_CONTEXT_WINDOW 调整。

  • 估算为启发式(≈),非精确 tokenizer 计数,仅作占用参考。

所有 CLI 命令均支持 --json,便于脚本、自动化流程和其他程序消费结构化输出。


🚀 快速开始

环境要求

项目

要求

Node.js

≥ 18.17

包管理器

npm

操作系统

Windows / macOS / Linux

可选组件

OCR 引擎等依赖具体功能的系统组件

方式一:全局安装

npm install -g cupbox

安装完成后,可以在终端的任意工作目录中使用:

cupbox help

方式二:无需全局安装,直接试用

npx cupbox help

适合初次体验,或者暂时不想安装全局命令的用户。

第一次使用:整理下载目录

先查看会发生什么:

cupbox organize ~/Downloads --mode category --dry-run

确认预览符合预期后,再执行:

cupbox organize ~/Downloads --mode category

例如,预览结果可能类似:

photo.png   → Images/photo.png
report.pdf  → Documents/report.pdf

预览完成:共 2 项待移动。
当前为 dry-run,未执行任何移动操作。

以上仅为输出示例,实际目录名称、统计信息与显示格式以运行结果为准。

建议:第一次处理重要目录时,始终先预览,再执行。


💻 CLI 使用示例

1. 文件整理

按照类型整理下载目录:

cupbox organize ~/Downloads --mode category --dry-run
cupbox organize ~/Downloads --mode category

支持的模式和规则以 cupbox organize --help 为准。

2. 批量重命名

给照片添加连续编号:

cupbox rename ./photos --template "{n}-{name}" --ext "*.jpg" --dry-run

确认预览结果后,移除 --dry-run 执行。

批量操作前应检查文件筛选范围与重命名结果,避免误选不需要处理的文件。

3. 搜索项目内容

搜索 TypeScript 源码中的 TODO:

cupbox search ./src -c "TODO" --glob "*.ts"

适合快速定位待办事项、关键字、配置项或需要排查的代码片段。

4. 计算文件哈希

cupbox hash --text "hello" --algo sha256,md5

可以用于计算文本或文件的哈希值,具体参数以命令帮助为准。

注意:MD5 和 SHA-1 不适合需要现代抗碰撞安全性的场景;校验文件完整性时,优先考虑 SHA-256 或 SHA-512。

5. 转换时间戳

cupbox time 1700000000

适用于日志排查、接口调试和数据库时间字段分析。

6. 编码与解码

cupbox codec b64e "你好,世界"

还可用于 URL、HTML 与 JSON 等常见数据处理场景。

7. OCR 识别截图

cupbox ocr ./截图.png --lang zh-Hans

可用于识别截图中的文字,适合从报错图片、界面截图或文档图片中提取文本。

识别语言和实际效果取决于系统 OCR 引擎及其语言支持情况。

8. 压缩与解压

通过 cupbox zip 处理压缩包,可以减少在文件管理器、临时脚本与终端工具之间切换的次数。

先查看完整参数:

cupbox zip --help

创建、解压和查看清单时,建议特别留意目标目录以及压缩包中包含的路径。

9. 受保护的命令执行

cupbox run --help

Cupbox 为命令执行提供白名单、超时和输出截断机制。具体允许的命令取决于项目中的白名单配置。

不要将其视为任意 Shell 命令执行器,也不要在未审核白名单的情况下直接向不可信输入开放执行能力。

10. 查看与结束进程

查看支持的进程操作:

cupbox proc --help

结束进程时,需要提供 PID 和预期进程名:

cupbox proc kill --pid 1234 --name node

示例中的 1234 仅为占位 PID。执行前应确认进程确实是目标进程。

11. 图片像素混淆与还原

cupbox obfuscate ./图.png --mode c --key 我的密钥

混淆后的图片会另存为 图.obf.png;用同一模式和密钥加 --decrypt 即可无损还原:

cupbox obfuscate ./图.obf.png --mode c --key 我的密钥 --decrypt

六种模式的说明可通过不带参数的 cupbox obfuscate 查看。密钥错误或缺失会在执行前被拒绝,输出文件重名时自动改名,绝不覆盖已有文件。


🤖 让 AI 替你干活

Cupbox 的一个重要目标,是让 AI 不仅能回答问题,还能在受控范围内调用实际工具。

通过 MCP(Model Context Protocol),兼容的 AI 客户端可以发现并调用 Cupbox 提供的工具。

支持场景

例如,你可以向 AI 提出这样的任务:

帮我整理下载目录,先按文件类型分类,把预计移动的文件列表给我看。我确认后再执行。

或者:

帮我给这批截图按顺序编号。先生成预览,不要覆盖任何已有文件。

AI 可以根据任务选择对应的 MCP 工具,获取结构化结果,并在确认后继续执行。

内置 AI 引擎(API 直连,不依赖 MCP 客户端)

Cupbox 自带 Codex 式 AI 能力,CLI、桌面版、MCP 三种形态都能直接调用模型:

  • cupbox ai ask —— 单次问答;

  • cupbox ai agent —— 多轮 Agent 循环:模型自主选择本地 14 个工具(文件 / 数据 / 图片 / 受保护命令)执行任务,最后给出总结;

  • MCP 侧新增 ai_ask、ai_agent 两个工具,在 Claude Desktop / Cursor 中直接可调;

  • 桌面版就是一座对话工作台:新建会话 / 历史对话、「问一问 · Agent 模式」一键切换,API 配置在「设置 → API 设置」页完成。

首次配置(一次即可):

# OpenAI 兼容协议(官方 / DeepSeek / Kimi / Ollama / OpenRouter / vLLM …)
cupbox ai config --provider openai-compatible --base https://api.deepseek.com/v1 --model deepseek-chat --key sk-xxx

# 或 Anthropic 官方
cupbox ai config --provider anthropic --model claude-sonnet-4-5 --key sk-ant-xxx
cupbox ai ask "1718000000 是几点"
cupbox ai agent "搜索项目里所有 TODO 并汇总" --max-turns 6
cupbox ai config                 # 查看当前配置(Key 打码显示)
  • 配置保存在 文档/Cupbox/config.json(权限 0600;v1.0.3 起默认系统「文档」目录,旧 ~/.cupbox 首次启动自动迁移,CUPBOX_HOME 可覆盖),密钥只存本机、不上传;

  • 环境变量 CUPBOX_AI_API_KEY / CUPBOX_AI_BASE_URL / CUPBOX_AI_MODEL / CUPBOX_AI_PROVIDER 优先于配置文件;

  • Agent 内 rename / organize 永远 dry-run 预览(轮次默认 8、上限 10),run 仍必须白名单——AI 拿不到任何超出人类使用时的安全权限。

方式一:使用全局安装

先安装 Cupbox:

npm install -g cupbox

然后在 MCP 客户端配置文件中加入:

{
  "mcpServers": {
    "cupbox": {
      "command": "cupbox",
      "args": ["mcp"]
    }
  }
}

保存配置后,按照对应客户端的要求重新启动或刷新 MCP 连接。

方式二:使用 npx

如果不想全局安装,可以参考项目提供的配置示例:

examples/npx-mcp-config.json

通常可以使用以下启动方式:

npx -y cupbox mcp

具体配置方式以目标客户端的 MCP 配置规范为准。

AI 调用时的默认行为

对于文件整理和批量重命名,MCP 工具默认启用 dry-run 预览。AI 可以先读取预计执行结果,再根据用户的明确要求发起实际操作。

用户提出任务
    ↓
AI 选择对应的 MCP 工具
    ↓
Cupbox 校验参数与安全规则
    ↓
返回预览结果
    ↓
用户确认执行
    ↓
Cupbox 再次校验并执行操作
    ↓
返回执行结果

实际执行流程仍受具体工具的参数、实现逻辑和安全检查约束。

需要特别说明:dry-run 不是完整的事务机制,也不能代替权限隔离、备份和执行前的最终检查。 对重要数据,仍建议先备份,并确认操作范围。


📦 可视化桌面版(阶段 1/3)

本地 Electron 桌面应用,工作台式布局(v1.0.0 起):

  • 会话侧栏 —— 新建会话、历史对话列表(本机 文档/Cupbox/sessions/ 持久化,可删除 / 清空)、工作区目录选择(Agent 的文件任务在工作区内进行);

  • 对话主区 —— 「问一问 / Agent 模式」分段切换,Enter 发送、Shift+Enter 换行,回复附带工具轨迹卡片,多轮上下文自动携带;

  • 工具箱抽屉 —— 原 16 工具表单界面折叠为右侧抽屉,按数据 / 文件 / 图片 / 系统分组选择,动态表单 + 结果面板(JSON 美化、图片预览);

  • 设置弹窗 —— 四个页签:API 设置(协议 / 地址 / 模型 / 密钥 / 温度 / agent 轮次)、主题(深色 · 浅色 · 跟随系统 × 极光 / 薄荷 / 琥珀 / 玫瑰四种强调色,即时生效并落盘)、插件管理(每个工具的开关同时作用于工具箱显示与 Agent 可调用的工具集)、关于更新(版本信息、一键检查 GitHub 仓库新版本与结果展示、仓库 / Releases / CHANGELOG 快捷入口);

  • 版本检测与更新公告(v1.0.1)—— 启动静默检查更新,发现新版顶栏亮「vX.Y.Z 可用」呼吸徽标并自动弹出一次更新公告(版本对比 + Release 说明 + 前往 GitHub 下载 / 查看更新日志 / 稍后提醒);点击顶栏版本号或在「设置 → 关于更新」可手动检查(转圈反馈),静默过的版本仍可从徽标再进,CUPBOX_UPDATE_DISABLE=1 一键关闭检查。

  • 数据默认存「文档」(v1.0.3)—— 配置 / 密钥 / 模型库 / 会话 / 记忆都在 文档/Cupbox,设置 → 模型连接的「API 储存管理」可一键打开文件夹、定位 config.json;旧 ~/.cupbox 首次启动自动迁移(只复制不覆盖,CUPBOX_HOME 可覆盖),侧栏「模型管理」直达多模型与能力多选页面。

  • 工具调用实时直播 + AI 气泡(v1.0.3)—— Agent 执行任务时每次工具调用以卡片逐条出现(工具名 / 参数 / 执行中动画 → 完成耗时或失败详情),结束后由完整轨迹接管;AI 回复改为与用户气泡对偶的卡片气泡样式,带入场动画。

  • Use-It 实时 Office 集成 —— 通过 use-it-agent 本地引擎用 COM 操作已打开的 PowerPoint / Word / Excel / AutoCAD 与桌面 GUI;工具箱「办公 / 系统」新增 7 个工具,Agent 在本机模式下可调用,写入逐次批准。引擎安装与启动见 docs/USEIT-ENGINE.md。

  • 普通 / 高级任务统一入口 —— 工作页顶部切换普通任务与高级任务,默认普通任务;高级任务在主窗口内嵌运行。侧栏「最近任务」同时列出普通会话与高级任务(带“高级”标记),点击即回到对应模式,切换视图不会打断正在运行的任务。

  • 聊天定位条与历史折叠 —— 右侧按轮次显示刻度,悬停预览、点击跳转并自动展开折叠的历史;长会话只渲染最近一批消息,向上按批展开,避免一次渲染整个历史。

  • 流式滚动跟随 —— 只有停留在对话底部时才自动跟随新内容;向上翻看历史时不会被流式输出拽回,回到底部后恢复跟随。

与 CLI、MCP 共用同一套引擎和安全默认(dry-run、白名单、解压预检全部生效)。

npm install          # 首次会经 npmmirror 镜像下载 Electron 运行时
npm run desktop      # 开发运行
npm run pack:exe     # 打包绿色便携 exe → release/Cupbox可视化/Cupbox可视化.exe
npm run pack:installer # Windows 安装包(需 Inno Setup 6.7+)→ release/Cupbox-Setup-1.2.0-x64.exe

安装版提供樱花主题中文引导、深浅色外观、安装位置与快捷方式选择,卸载保留对话和配置。 侧栏“QQ 机器人”提供独立扫码窗口、自动配置的 NapCat、群聊/私聊规则、共享记忆与受控表情包,见 QQ 机器人说明。 构建、安装与签名说明见 Windows 安装版。

三阶段路线(工具驾驶舱 → ACP 多引擎接入 → 技能市场/调度/多会话)与选型依据见 docs/ARCHITECTURE.md。


🛡️ 安全设计

Cupbox 不希望 AI 自动化变成无边界的系统控制,因此将若干安全措施作为默认设计方向。

风险场景

对应措施

设计目的

批量移动文件

支持 dry-run 预览

执行前检查影响范围

批量重命名

预览、冲突检查

减少误操作与文件覆盖

AI 调用命令执行

默认拒绝,须显式白名单

不提供 allowPrefixes 或 CUPBOX_RUN_ALLOW 就不执行;白名单下拦截 shell 元字符防注入

命令执行时间过长

超时控制

防止任务无限等待

命令输出过大

输出截断

控制返回结果的体积

解压来源不明的 zip

解压前预检路径穿越与覆盖冲突

防 zip-slip(../ 穿越)与静默覆盖目标目录已有文件

终止错误进程

PID 与进程名双重校验

降低误结束其他进程的风险

不需要某些 AI 工具

支持禁用指定工具

缩小可用工具的攻击面

禁用指定 MCP 工具

可以通过环境变量关闭不希望暴露给 AI 的工具:

CUPBOX_DISABLE_TOOLS=run_command,process cupbox mcp

上面的写法展示了配置意图。不同操作系统设置环境变量的语法不同,Windows 用户可以在启动 MCP 的配置环境中设置对应变量。

与之配合,CUPBOX_RUN_ALLOW=npm,git status 可以为 run_command 预设允许的命令前缀(调用时提供了 allowPrefixes 则以调用方为准)。两者都没有时,MCP 侧的 run_command 会拒绝执行任何命令。

安全边界

需要注意以下几点:

  • 白名单限制的是允许的命令形式,不等于完整的操作系统沙箱。

  • 白名单模式下命令不得包含 shell 元字符(管道、重定向、命令替换、cmd 变量展开等),命中即拒绝——这是防注入设计,不是功能缺陷;需要管道或重定向时请由人工在 CLI 不加白名单运行。

  • 解压 zip 前会预检路径穿越条目与覆盖冲突;经由人工 CLI 处理不可信压缩包时,仍建议先确认来源。

  • 被允许的程序仍可能具有自身的文件访问和系统权限。

  • PID 与进程名校验可以降低误操作风险,但不能消除所有进程竞态问题。

  • dry-run 的预览结果不保证执行时文件系统状态仍然相同。

  • 处理敏感数据时,仍需遵循最小权限原则。

如果要将 Cupbox 部署到自动化服务器,或者交给具有较高权限的 AI 智能体使用,应进一步评估操作系统账户权限、工作目录限制、命令白名单以及运行环境隔离。


⚙️ 平台与依赖

Cupbox 尽可能使用轻量的实现方式,但部分功能依赖操作系统能力。

功能

依赖或限制

基础 CLI 与 MCP

Node.js 运行环境

OCR

Windows 原生 OCR 能力或已安装的 Tesseract

压缩包处理

依赖实现所使用的系统压缩工具

剪贴板

依赖对应平台的能力与权限

截屏

依赖对应平台的实现与权限

图片像素混淆

PNG 编解码由纯 JS 的 pngjs 实现,无原生依赖

进程管理

受操作系统权限和进程管理规则约束

如果某项功能在你的环境中不可用,请先检查系统组件、权限和命令帮助,再提交包含操作系统、Node.js 版本、复现步骤及错误输出的 Issue。


📚 文档与帮助

对于尚未熟悉的命令,建议优先查看帮助信息,再对真实文件执行批量操作。


🧑‍💻 本地开发

欢迎开发者参与 Cupbox 的改进与扩展。

获取源码

git clone https://github.com/beizilaoshi/cupbox.git
cd cupbox
npm ci

运行测试

npm test

项目的测试流程覆盖构建、单元测试、CLI 冒烟测试,以及基于内存传输的 MCP 集成测试。

启动开发监听

npm run dev

项目结构

cupbox/
├── src/
│   ├── core/       # 核心功能实现
│   ├── util/       # 平台、进程、文件系统等工具
│   ├── index.ts    # CLI 入口
│   └── mcp.ts      # MCP Server 入口
├── test/           # 自动化测试
├── examples/       # MCP 配置示例
├── README.md
└── README.en.md

持续集成

项目现有 CI 配置覆盖 Windows、Ubuntu,以及 Node.js 18、20、22 的测试组合。

持续集成的目标是尽早发现跨平台差异、运行时兼容性问题和功能回归。


🤝 参与贡献

Cupbox 仍然有很多值得改进的地方。欢迎提交 Issue、建议和 Pull Request。

尤其欢迎以下方向的贡献:

  • 跨平台兼容性: 路径、编码、权限与系统工具差异。

  • 安全性: 参数校验、边界条件、异常处理和安全测试。

  • 测试覆盖: 文件操作、异常输入、冲突场景及 MCP 集成。

  • 开发体验: 更清晰的命令帮助、更友好的错误提示和结构化输出。

  • 文档完善: 使用示例、常见问题和平台配置说明。

建议在提交 PR 前运行:

npm test

请尽量提供可复现的测试用例,并说明修改内容、适用场景以及可能产生的兼容性影响。


💬 交流群

群内用于使用答疑、版本通知和功能讨论;遇到可复现的问题,仍建议优先提交 Issue,方便跟踪和沉淀。


🗺️ 项目方向

Cupbox 的长期方向是成为一个轻量、可靠、适合人类与 AI 共同使用的开发工具箱。

可以考虑持续完善以下方面:

  • 可靠性: 进一步补足边界条件、异常恢复和跨平台测试。

  • 安全性: 持续审查命令执行、路径处理和文件变更的安全边界。

  • 可组合性: 让 CLI、MCP 与脚本工作流之间保持清晰一致的行为。

  • 可维护性: 控制依赖增长,保持模块边界清晰。

  • 易用性: 提供更直观的错误信息、示例和环境诊断。

这些是项目的发展方向,不代表所有事项都已经实现。


🙏 致谢

图片像素混淆(obfuscate / obfuscate_image)的六种模式算法移植自开源项目「番茄图片混淆 桌面版」(MIT License, Copyright (c) 2026 3450892121,作者 GitHub 主页:github.com/3450892121)。移植实现与原版引擎做过逐字节对拍,并在测试中保留了兼容性金标,以确保与该项目及手机端生态的长期互通。感谢原作者的开源贡献。

三层记忆与上下文压缩(memory 子命令 / memory_* 工具 / 会话摘要)的架构设计参考了开源项目 dsh-mnemon(omdsh-dev)的运行时记忆、长期事实与回合压缩模型。Cupbox 的实现是面向本机 CLI/桌面场景的独立重写(Node 内置模块,无额外运行时依赖),致谢原作者的架构启发。


📄 许可证

Cupbox 使用 MIT License 开源。

你可以在 MIT 许可证条款范围内使用、修改和分发本项目。具体权利与义务以仓库中的许可证文本为准。


桌面开发工具与项目授权

设置 → 开发与授权提供 36 项桌面 Agent 工具:文件预览/事务/回滚、HTTP、真实 ConPTY、搜索替换、图片处理、Git、脚本与测试、项目记忆。文件修改需预览令牌,项目策略提案不自动信任,Shell 始终人工批准。详见 开发工具说明。

本机渗透测试 Agent(默认关闭)

设置 → 权限与环境可开启隐藏的本机渗透测试 Agent,开启时需确认风险。工具和本机模型请求都只允许固定127.0.0.1,不解析域名、不跟随重定向。复用 MIT node-portscanner 检查端口,并提供有界HTTP安全头/配置暴露检查;没有本机模型也可运行固定流程。详见 边界、来源与使用说明。当前版本为1.2.0。

桌面协作:鼠标、读屏与视觉

设置 → 权限与环境开启需要的权限,在左侧桌面协作手动授权目标窗口,再使用 Agent 对话。新增7个桌面工具,默认关闭,逐次确认;Ctrl+Alt+F12紧急停止。权限、开源来源与使用说明。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to perform file, search, patch, git, process, test, package, network, and system operations through 60 typed MCP tools with structured inputs/outputs, structured errors, and a full event journal, replacing terminal use with a typed machine API.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes 24 deterministic developer utilities as MCP tools — encoders and hashers, UUID/ULID and timestamp helpers, color, CSS, cron and permission converters, JSON/YAML/XML/SQL/TypeScript transformers, and a web page-to-markdown fetcher. Runs locally over stdio so agents get byte-exact results instead of approximating computations, with only the markdown fetcher making network requests.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables web-based AI chat clients and local IDEs to securely operate a user's own machine through an OAuth-gated MCP endpoint, covering file read/write/edit, whitelisted shell execution, search, read-only Git, SQLite, browser automation, DevTools debugging, background tasks, localhost fetching, ports, clipboard, notifications, and Postman control. Its 38 tools are governed by configurable allowed folders, a strict command whitelist, rate limits, and caller blocking, so remote AI assistants get scoped access without unrestricted shell privileges.
    -