tupper 快速入门
给 AI Agent 一个真正的沙箱 —— 不是进程隔离,是微虚拟机。tupper 让 AI 生成的代码在自己的内核里运行,碰不到你的系统。
这是什么?适合谁?
tupper 是一个面向 AI Agent 的开源代码沙箱,由 sheikhuzairhussain 开发。它的核心思路很直接:AI Agent 生成的代码不可信,那就在一个隔离的微型虚拟机里运行它。
和常见的进程级沙箱(Node.js vm 模块、Python exec)不同,tupper 使用操作系统原生的虚拟化能力 —— macOS 上用 Apple Containers(Virtualization.framework),Linux 上用 Firecracker 微虚拟机,Windows 上计划使用 WSL2。每个沙箱实例拥有自己的 Linux 内核,可以运行完整的 OCI 镜像(Alpine、Ubuntu 等),Agent 在里面 pip install、npm install、读写文件都碰不到宿主系统。
它提供了一套和 E2B 兼容风格的 TypeScript SDK,但所有沙箱都在你自己的机器上运行——不需要云账号,不需要按次付费,代码不出你的基础设施。
核心特点:
- 微虚拟机隔离:每个沙箱拥有独立内核,不是进程级隔离,安全边界是硬件虚拟化级别
- E2B 风格 SDK:
Sandbox.create()、commands.run()、files.*等熟悉的 API,从 E2B 迁移零学习成本 - 完整 OCI 镜像支持:Agent 可以在沙箱里
apt-get、pip install,和真实 Linux 环境完全一致 - 多前端接入:TypeScript SDK、CLI 命令行、HTTP API、MCP Server 四种方式驱动沙箱
- 框架集成:提供 deepagents 和 Mastra 的即用沙箱后端
- 开源免费:MIT 协议,代码完全开放
适合谁?三类人最受益:一是已经在用 E2B / Daytona 的开发者,想省云费用把沙箱跑在本地;二是需要高安全性代码执行的场景(AI Agent 生成的未知代码、用户提交的脚本);三是对数据不出境有合规要求的企业,tupper 可以完全离线运行。不适合:只有 Windows 机器的用户(Windows 支持仍在计划中),或需要多机分布式沙箱集群的场景(tupper 是单机方案)。
⚠️ tupper 目前处于早期开发阶段(pre-1.0),API 可能在正式版前变动。macOS 后端稳定可用,Linux 后端标记为实验性,Windows 后端计划中。
准备工作
- 系统要求:macOS 26+(稳定);Linux(实验性,需 Firecracker);Windows(计划中,WSL2)
- Apple Containers:macOS 需先安装 Apple 的
containerCLI —— 访问 github.com/apple/container 了解安装方式,安装后运行container system start启动容器运行时 - 运行时:Node.js 18+ 或 Bun 1.1+
- 网络要求:首次使用需从 npm 下载包(
@tupper/sdk+@tupper/container),之后可完全离线使用 - 付费要求:完全免费,无需任何注册或账号
- 可选准备:安装 Bun(
curl -fsSL https://bun.sh/install | bash),Bun 构建的 tupper 启动更快
3 步快速上手
第 1 步:安装 tupper
# 使用 Bun(推荐,速度更快)
bun add @tupper/sdk @tupper/container
# 或使用 npm
npm install @tupper/sdk @tupper/container
@tupper/container 是 macOS 的沙箱后端(基于 Apple Containers),作为可选 peer dependency 安装。Linux 用户换装 @tupper/firecracker(实验性)。
第 2 步:启动沙箱并运行代码
创建 hello-tupper.ts:
import { Sandbox } from "@tupper/sdk";
const box = await Sandbox.create({
image: "docker.io/library/alpine:latest"
});
try {
// 写入文件
await box.files.write("/tmp/hello.txt", "Hello from sandbox!");
// 执行命令
const result = await box.commands.run("cat /tmp/hello.txt");
console.log(result.stdout); // "Hello from sandbox!"
// 在沙箱里安装 Python 包
await box.commands.run("apk add python3 && pip install numpy");
} finally {
await box.kill(); // 用完销毁
}
bun run hello-tupper.ts
沙箱启动约 100-300ms(Apple Containers 级别),比 Docker 快,比进程级沙箱略慢但隔离强度高一个数量级。
第 3 步:接入 AI Agent
tupper 提供 MCP Server,任何支持 MCP 协议的 AI Agent(Claude Code、Cursor、Codex CLI 等)都能直接使用:
# 启动 MCP Server
npx @tupper/mcp
在 Claude Code 的 MCP 配置中添加:
{
"mcpServers": {
"tupper": {
"command": "npx",
"args": ["@tupper/mcp"]
}
}
}
配置完成后,Agent 的代码执行请求会自动路由到 tupper 沙箱。你也可以用 CLI 手动管理:
# CLI 创建沙箱
npx @tupper/cli sandbox create --image alpine
# 列出运行中的沙箱
npx @tupper/cli sandbox list
# 销毁沙箱
npx @tupper/cli sandbox kill <id>
常见踩坑
- macOS 26+ 硬要求——tupper 稳定版后端需要最新 macOS,检查你的系统版本:
sw_vers -productVersion。版本不够只能等 Apple 推送更新或用 Linux 实验后端 - container CLI 未启动——运行前必须
container system start,否则会报 “container daemon not running” - 沙箱启动慢——首次拉取 OCI 镜像需要下载(Alpine 约 5MB),之后从本地缓存秒启
- 沙箱内网络受限——默认沙箱有独立网络栈,需要外网的话要在创建时配置网络策略
- 文件不互通——沙箱内的文件系统和宿主机完全隔离,Agent 写的文件在沙箱销毁后消失,如需持久化用
box.files.download()导出 - Linux 后端不稳定——
@tupper/firecracker标记为实验性,生产环境建议用 macOS - Windows 尚不支持——WSL 后端在路线图中但未发布,Windows 用户目前无法使用
初级用法
- 默认沙箱模式:
Sandbox.create()不指定后端,tupper 自动根据当前 OS 选择 —— macOS → Apple Containers,Linux → Firecracker - 指定镜像:传入
image参数选择 OCI 镜像(alpine:latest最小最快,ubuntu:latest包更全) - 文件操作:
box.files.read()、box.files.write()、box.files.exists()读写沙箱内文件 - 命令执行:
box.commands.run("ls -la")执行任意 shell 命令,返回 stdout/stderr/exitCode - 生命周期管理:
box.kill()销毁沙箱释放资源;box.reconnect()断线重连
高级玩法
- 自定义后端选择:
Sandbox.create({ backend: "@tupper/firecracker" })覆盖自动检测,在 macOS 上也用 Firecracker - 多沙箱并行:同时创建多个沙箱,Agent A 用 Python 环境,Agent B 用 Node.js 环境,互不干扰
- 持久化卷挂载:通过
volumes参数将宿主机目录挂载进沙箱,Agent 修改的内容实时回写 - HTTP API 远程驱动:启动
@tupper/api后可通过 REST API 远程管理沙箱,适合 Agent 在另一台机器上的场景 - 自定义 OCI 镜像:构建包含预装依赖的镜像(
pip install torch等),Agent 进入即用,省去重复安装时间 - 与 E2B 混合使用:SDK API 兼容 E2B,本地开发用 tupper(免费),CI/生产用 E2B(弹性),切换只改一行 import
小技巧
- 用 Alpine 镜像做沙箱基础镜像 —— 体积小(~5MB),启动快,足以覆盖大多数 Agent 代码执行需求
- 预构建一个 “AI-ready” 镜像:
FROM alpine RUN apk add python3 py3-pip nodejs npm,存为本地镜像缓存,每次创建秒级启动 - 在 CI 配置中将
@tupper/sdk加入可选依赖,开发环境走 tupper 本地沙箱,CI 环境自动降级为 E2B 云后端 - Agent 执行前用
box.commands.run("whoami && uname -a")确认沙箱环境符合预期 - 定期
docker system prune(如有 Docker)或清理 OCI 镜像缓存,避免旧镜像堆积占用磁盘 - 为不同项目创建不同的沙箱配置模板(JSON/YAML),团队共享,确保一致的隔离策略
常见问题 FAQ
Q1: tupper 和 Docker 沙箱有什么区别?
tupper 使用操作系统原生虚拟化(Apple Containers / Firecracker),每个沙箱有独立内核,隔离级别高于 Docker 的共享内核容器。启动速度接近 Docker(100-300ms vs 几十 ms),安全边界强一个数量级。信息来源:tupper README - How sandboxing compares
Q2: tupper 和 E2B 有什么区别?
E2B 是云端的沙箱服务,按使用量付费,沙箱跑在 E2B 的服务器上。tupper 提供几乎相同的 SDK 体验(API 兼容),但沙箱跑在你自己的机器上,完全免费且代码不出本地。tupper 更适合开发和小规模使用,E2B 更适合需要弹性扩展的生产环境。信息来源:tupper README
Q3: tupper 收费吗?
完全免费开源(MIT License)。所有包在 npm 上可免费安装,本地运行无任何云服务依赖。信息来源:tupper GitHub LICENSE
Q4: tupper 能防止恶意代码吗?
是的,而且防护等级很高。每个沙箱运行在独立的微虚拟机中,拥有自己的内核,即使 Agent 生成的代码试图 rm -rf /、fork 炸弹、内核漏洞利用,影响范围也仅限于沙箱内部。这是硬件虚拟化级别的隔离,不是进程级别的。信息来源:tupper README - Architecture
Q5: 我只能用 Claude Code 接入 tupper 吗?
不只。tupper 提供四种接入方式:TypeScript SDK(任何 Node.js/Bun 应用)、MCP Server(任何支持 MCP 协议的 Agent)、CLI(命令行脚本)、HTTP API(远程调用)。Agent 框架方面,已提供 LangChain deepagents 和 Mastra 的即用后端。信息来源:tupper README - Packages
Q6: Windows 用户能用吗?
目前不能。tupper 的 macOS 后端已稳定,Linux 后端(Firecracker)实验性可用,Windows 的 WSL2 后端在路线图中。Windows 用户可以关注 GitHub 仓库的更新。信息来源:tupper README - Roadmap
📊 评分与标签
评分说明
总分 6.4/10 · H_观察
📊 可观测社区指标(数据核验日期:2026-07-06)
- GitHub: lightbearco/tupper ★146, 🔱2, 8 commits
- 页面访问核验:★146, 🔱2, 8 Commits, 1 Branch, 21 Tags, 最后提交 2 weeks ago (2026-07-06 页面抓取)
- npm: @tupper/sdk, @tupper/core, @tupper/container 等 10 个包已发布
- 页面访问核验:npm 页面可访问,@tupper/sdk v0.0.16, @tupper/core v0.0.16, @tupper/container v0.0.17 (2026-07-06)
- 项目创建:2026-06-23,约 2 周前创建,单开发者 sheikhuzairhussain
- 来源:GitHub 仓库创建日期 — API 返回 created_at: 2026-06-23
- Topics 标签:ai-agents, sandbox, mcp, nodejs, typescript, e2b-alternative, firecracker, apple-container, code-execution 等 17 个
- 来源:GitHub Topics 页面左侧 Topics 区块
⚙️ 功能完整度 1.4/2.5
- 核心沙箱能力:微虚拟机级隔离(Apple Containers / Firecracker),每个沙箱拥有独立 Linux 内核,支持完整 OCI 镜像(Alpine/Ubuntu 等),沙箱内可 apt-get/pip install/npm install
- 多前端接入:TypeScript SDK(@tupper/sdk)、CLI(@tupper/cli)、HTTP API(@tupper/api)、MCP Server(@tupper/mcp),覆盖程序调用、命令行、HTTP 远程和 Agent 协议
- 框架集成:内置 LangChain deepagents(@tupper/deepagents)和 Mastra(@tupper/mastra)的即用沙箱后端
- 扣分项:pre-1.0 阶段,无快照/回滚功能,无网络策略细粒度配置,macOS 26+ 限制了可用人群
- 对比 E2B:E2B 有快照、模板市场、弹性伸缩、多区域部署,功能更完整;tupper 以本地免费替代云沙箱,功能覆盖度约 60%
- 对比 Daytona:Daytona 支持标准开发环境管理(IDE 集成、Git 集成),tupper 聚焦纯代码执行沙箱
✨ 输出质量 1.6/2.5
- 隔离强度:微虚拟机级(microVM / VM-per-container),每个沙箱独立内核 + 硬件虚拟化边界,不是 Docker 共享内核容器,也不是 Node.js 进程级隔离
- macOS 上使用 Apple 原生 Virtualization.framework,Linux 上使用 Firecracker(AWS 开源的微虚拟机运行时,同为 E2B 底层技术)
- 沙箱启动时间:Apple Containers 级别 ~100-300ms,快于传统虚拟机(秒级),慢于进程沙箱(微秒级)但安全性高数个量级
- 扣分项:Linux 后端(Firecracker)标记为实验性,Windows 后端未发布,非 macOS 平台的隔离质量未验证;项目太新无独立安全审计
- 对比 E2B:E2B 基于 Firecracker 且已在生产环境大规模验证,隔离成熟度更高;tupper 在 macOS 上使用 Apple Containers(同样硬件虚拟化级别)但未经大规模验证
- 对比 Docker:Docker 共享宿主机内核,隔离级别低一级;tupper 每个沙箱有独立内核,安全性显著更强
🖐️ 易用性 1.0/1.5
- 安装简单:
bun add @tupper/sdk @tupper/container或npm install,一行命令完成 - E2B 兼容 SDK:如果开发者用过 E2B 的
Sandbox.create()API,tupper 几乎零学习成本 - MCP Server 一键接入:任何 MCP 兼容的 AI Agent 直接配置即可使用,无需改 Agent 代码
- 文档完整:含 Getting Started、SDK Reference、Architecture 三份文档 + README FAQ + 完整 mermaid 架构图
- 扣分项:macOS 26+ 要求过高(当前主流 macOS 版本尚不满足),需手动安装 Apple container CLI 并启动守护进程;Linux 需额外安装 Firecracker 依赖;Windows 不支持
- 对比 E2B:E2B 注册即用,零环境配置;tupper 需本地环境准备,门槛更高
- 对比 Daytona:Daytona 提供
daytona create一键创建开发环境,tupper 需更多手动步骤
💰 性价比 1.5/1.5
- 完全免费开源:MIT License,所有包在 npm 免费安装
- 本地运行:无云服务依赖,无按次/按时计费,沙箱数量不受限
- 来源:tupper README —— “self-hostable” 定位
- 对比 E2B:E2B 按沙箱运行时长计费(起步 $0.000014/s,约 $0.05/h),tupper 完全免费,对高频使用或长时运行场景节省显著
- 来源:E2B 定价页
- 对比 Daytona:Daytona 开源版免费但企业功能需付费;tupper 全部功能 MIT 开源
- tupper 是目前 AI Agent 代码沙箱领域性价比最高的方案——以微虚拟机级隔离免费自托管
🔒 稳定性 0.3/1.0
- 项目极新:2026-06-23 创建,仅 2 周历史,8 次 commit 均在同一天完成
- 来源:GitHub lightbearco/tupper — 页面核验 确认
- 单开发者维护:sheikhuzairhussain,无社区贡献记录,bus factor = 1
- API 不稳定:README 明确声明 “APIs may change before 1.0”,生产环境使用有风险
- 无 Issues/PR 社区验证:0 Open Issues,无社区反馈数据可参考
- 对比 E2B:E2B 已运营多年,服务 SLA 明确,有大量企业客户验证;tupper 稳定性差距极大
- 对比 Daytona:Daytona 开源社区活跃(5k+ Stars),有多名核心维护者
🛡️ 隐私安全 0.6/1.0
- 本地执行:所有代码和数据在本地沙箱运行,不经过任何云端服务,数据不出本机
- 来源:tupper README —— “run sandboxes locally on your own machine”
- 开源可审计:MIT 协议,TypeScript 源码完全开放,安全研究者可独立审计
- 微虚拟机隔离:硬件虚拟化级别的安全边界,即使沙箱内代码利用内核漏洞也无法逃逸到宿主机
- 扣分项:项目太新,无独立安全审计报告;单开发者维护,供应链安全风险(依赖单个 GitHub 账号);Linux 后端标记为实验性
- 对比 E2B:E2B 云端沙箱需信任 E2B 公司数据处理政策;tupper 本地运行在隐私性上完胜
- 对比进程级沙箱(Node.js vm):tupper 的微虚拟机隔离在安全边界上强数个量级
评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。
🏷️ 标签说明
- 开源免费: MIT 协议开源,npm 包免费安装,本地运行无任何付费墙或云服务依赖。来源:tupper LICENSE
- 安全: 微虚拟机级代码隔离(Apple Containers / Firecracker),每个沙箱拥有独立 Linux 内核,硬件虚拟化边界,远强于进程级沙箱。来源:tupper README - How sandboxing compares
- Agent: 专为 AI Agent 设计,提供 MCP Server 和 agent 框架(deepagents/Mastra)即用后端,TypeScript SDK 兼容 E2B 生态。来源:tupper README
📋 来源与核验记录
- ✅ 已核验:GitHub lightbearco/tupper(★146, 🔱2, 8 Commits, MIT License, 页面可访问+数据确认)、npm @tupper/sdk(v0.0.16, 页面可访问)、npm @tupper/container(v0.0.17, 页面可访问)、E2B 定价页(页面可访问)
- ✅ GitHub API 已验证:lightbearco/tupper(created_at: 2026-06-23, pushed_at: 2026-06-23, license: MIT, topics: 17个)
- ⚠️ 间接来源:Apple Containers 技术对比文章 — 第三方技术媒体分析,非 tupper 官方数据
- ⚠️ 未验证(用户需手动检查):Daytona 定价 — 页面依赖动态渲染,无法提取精确定价。tupper docs 目录下各文档的具体内容 — 通过 README 归纳,未逐份验证
- ❌ 已删除死链:无
同分类推荐
AI编程 分类下的其他工具