# @computesdk/workbench 中文文档

规范地址：https://npmcn.com/package/%40computesdk/workbench/

版本：33\.0\.32
npm 元数据更新时间：2026-11-09T21:04:56.731Z
中文译文更新时间：2026-11-10T14:54:52.275Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40computesdk/workbench
原文对照：https://npmcn.com/package/%40computesdk/workbench/?lang=original
项目主页：https://www.computesdk.com/
源码仓库：https://github.com/computesdk/computesdk

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：299 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：@computesdk/e2b 1\.7\.71，@computesdk/gcp 0\.1\.12，@computesdk/k8s 0\.2\.22，@computesdk/beam 0\.3\.26，@computesdk/hopx 0\.2\.45，@computesdk/modal 1\.9\.29，@computesdk/tenki 0\.1\.22，@computesdk/blaxel 1\.6\.41，@computesdk/isorun 0\.1\.21，@computesdk/novita 0\.0\.17，@computesdk/vercel 1\.7\.54，@computesdk/daytona 1\.7\.52，@computesdk/runloop 1\.3\.74，@computesdk/sprites 0\.1\.34，@computesdk/upstash 0\.3\.28，@computesdk/lelantos 0\.2\.20，@computesdk/agentuity 0\.0\.30，@computesdk/cloud-run 0\.1\.28，@computesdk/collimate 0\.1\.19，@computesdk/freestyle 0\.2\.19，@computesdk/just-bash 0\.4\.33，@computesdk/namespace 1\.6\.41，@computesdk/cloudflare 2\.1\.12，@computesdk/northflank 1\.1\.21，@computesdk/codesandbox 1\.5\.70，@computesdk/secure-exec 0\.1\.29，@computesdk/microsandbox 0\.1\.26
- 首次发布：2025-12-17T23:08:36.600Z
- 最新版本发布：2026-11-09T21:04:56.355Z
- 近 30 天下载量：5042（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：165（近 12 个月 165 个）

## 中文简介

用于测试计算SDK沙盒操作的交互式 REPL

## 安装

```sh
npm install @computesdk/workbench
```

也可以使用：`pnpm add @computesdk/workbench`、`yarn add @computesdk/workbench`、`bun add @computesdk/workbench`

## README

# @ computesdk/ 工作台

交互 REPL 用于测试 ComputeSDK 有即时反馈和自动完成的沙盒操作.

## 特征

-   🚀 **零仪式** - 只要运行命令,没有沙盒ID管理
-   ✨ **标签自动完成** - 全部100岁以上 `@computesdk/cmd` 函数自动完成
-   🔄 **提供者切换** - e2b、daytona、模式等之间的无缝交换.
-   ⚡ **明智的评价** - 类型 `npm.install('express')` 它只是运行
-   📊 **实时反馈** - 立即看到时间、产出和出错

## 安装

```bash
npm install -D @computesdk/workbench

# Install at least one provider
npm install @computesdk/e2b
# or any other provider
```

## 快速启动

1.  **配置证书** 内 `.env`数字 :

```bash
# E2B Provider
E2B_API_KEY=e2b_your_api_key_here

# Daytona Provider
DAYTONA_API_KEY=your_daytona_api_key
```

2.  **开始工作**数字 :

```bash
npx workbench
```

3.  **运行命令** (自动完成的作品!):

```
workbench> npm.install('express')
⏳ Creating sandbox with e2b...
✅ Sandbox ready (1.2s)
Running: npm install express
✅ Completed (3.2s)

workbench> git.clone('https://github.com/user/repo')
Running: git clone https://github.com/user/repo
✅ Completed (2.1s)

workbench> ls('/home')
Running: ls /home
total 8
drwxr-xr-x 3 user user 4096 Dec 12 19:00 node_modules
drwxr-xr-x 2 user user 4096 Dec 12 19:01 repo
✅ Completed (0.1s)
```

## 图标

### 工作区命令

-   `provider <name>` - 交换供应商(例如, `provider e2b`(中文(简体) )
-   `providers` - 列出所有具有地位的提供者
-   `restart` - 重新启动当前沙盒
-   `destroy` - 摧毁目前的沙盒
-   `info` 显示沙盒信息( 提供者, 上线时间)
-   `env` - 显示环境/证书状况
-   `help` - 显示这个帮助
-   `exit` - 退出工作区

每个供应商都需要安装其软件包(例如. `@computesdk/e2b`并配置其证书.

### 运行中的命令

只要输入任意 `@computesdk/cmd` 函数。 Tab自动完成的工作!

**软件包管理器 :**

```javascript
npm.install('express')
npm.run('dev')
pnpm.install()
yarn.add('lodash')
pip.install('requests')
```

**图形 :**

```javascript
git.clone('https://...')
git.commit('Initial commit')
git.push()
```

**文件系统 :**

```javascript
mkdir('/app/src')
ls('/home')
cat('/home/file.txt')
cp('/src', '/dest', { recursive: true })
rm('/file.txt')              // Remove file
rm.rf('/directory')          // Force remove anything
rm.auto('/path')             // Smart remove (auto-detects file vs directory)
```

**网络 :**

```javascript
curl('https://api.example.com')
wget('https://file.com/download.zip')
```

**还有100多!** 按 Tab 来探索.

## 提供者切换

提供者之间的切换 :

```
workbench> provider e2b
✅ Switched to e2b

workbench> npm.install('express')
⏳ Creating sandbox with e2b...
✅ Sandbox ready (1.2s)
Running: npm install express
✅ Completed (3.2s)

workbench> provider daytona
Destroy current sandbox? (y/N): y
✅ Switched to daytona
```

## 创建并切换沙盒

当您使用 `create()`,它自动成为您的当前活性沙盒。 之后所有的命令都会在这个沙盒上运行.

```javascript
> create({ namespace: "h" })
✅ Switched to sandbox sandbox-123
{ instanceId: 'sandbox-123', provider: 'e2b', metadata: {} }
e2b:sandbox-123>  // Prompt shows you're now on this sandbox

> ls('/home')  // Runs on sandbox-123
```

### 在沙盒间切换

如果您已经有一个活性沙盒并创建了另一个沙盒, 工作台会提示您:

```javascript
e2b:sandbox-456> create({ namespace: "prod" })
Switch to new sandbox? (Y/n): y
✅ Switched to sandbox sandbox-789
e2b:sandbox-789>
```

按 Enter 键或键入"y"来切换. 键入"n"以创建沙盒而无需切换.

## 标签自动完成

所有命令的自动完成工作 :

```
workbench> npm.<TAB>
install  run  init  uninstall

workbench> git.<TAB>
add  branch  checkout  clone  commit  diff  fetch  
init  log  pull  push  reset  stash  status

workbench> provider <TAB>
e2b  daytona  modal  runloop  vercel
```

## 支持供应商

安装任意组合 :

-   `@computesdk/e2b` - E2B沙盒
-   `@computesdk/daytona` - 代托纳工作区
-   `@computesdk/modal` - 模块容器
-   `@computesdk/runloop` - Runloop 实例
-   `@computesdk/vercel` - Vercel函数
-   `@computesdk/cloudflare` - 云花岗工人
-   `@computesdk/codesandbox` - 密码箱
-   `@computesdk/blaxel` - 银河环境
-   `@computesdk/northflank` - 北岸部署服务

## 环境变量

将提供者证书设置在 `.env`数字 :

```bash
# E2B
E2B_API_KEY=e2b_xxx

# Daytona
DAYTONA_API_KEY=xxx

# Modal
MODAL_TOKEN_ID=xxx
MODAL_TOKEN_SECRET=xxx

# Runloop
RUNLOOP_API_KEY=xxx

# Vercel
VERCEL_TOKEN=xxx
VERCEL_TEAM_ID=xxx
VERCEL_PROJECT_ID=xxx

# Cloudflare
CLOUDFLARE_SANDBOX_URL=https://sandbox.<your-subdomain>.workers.dev
CLOUDFLARE_SANDBOX_API_KEY=xxx

# CodeSandbox
CSB_API_KEY=xxx

# Blaxel
BL_API_KEY=xxx
BL_WORKSPACE=xxx

# Northflank
NORTHFLANK_TOKEN=nf_xxx
NORTHFLANK_PROJECT_ID=my-project
NORTHFLANK_TEAM_ID=xxx       # optional — required only for organization API tokens
NORTHFLANK_API_URL=xxx       # optional — defaults to https://api.northflank.com
```

## 提示

-   **命令历史**: 使用QQ/QQ箭头来导航先前的命令
-   **优雅地退出**: 类型 `exit` 或者说 `.exit`,可选择销毁沙盒
-   **检查状态**运行 `env` 以查看哪些提供者的配置
-   **自动创建**: 第一命令自动创建沙盒
-   **坚持上下文**: Workbench 维护"当前沙盒" - 没有可以跟踪的ID

## 调试 SDK 测试

工作台为全节点.js RePL,并预装了计算SDK. 可以通过交互调用相同的方法来复制任何SDK测试.

### SDK 到工作台映射

| SDK 测试代码 | 工作台等价 |
| --- | --- |
| `sandbox.runCommand('echo hi')` | `runCommand('echo hi')` 或者说 `getInstance().runCommand(...)` |
| `sandbox.filesystem.readFile(path)` | `filesystem.readFile(path)` |
| `sandbox.getInfo()` | `sandboxInfo()` |
| `sandbox.getUrl({ port })` | `getUrl({ port: 3000 })` |

### 示例: 复制失败测试

如果测试失败 :

```typescript
// From provider-compatibility.test.ts
it('command with streaming callbacks', async () => {
  let stdoutCalled = false;
  const result = await sandbox.runCommand('echo "hello"', {
    onStdout: () => { stdoutCalled = true; },
  });
  expect(stdoutCalled).toBe(true);
});
```

在工作室重现:

```javascript
> ls('/home')  // Auto-creates sandbox
> const sandbox = getInstance()
> let stdoutCalled = false
> const result = await sandbox.runCommand('echo "hello"', {
    onStdout: (data) => { console.log('STDOUT:', data); stdoutCalled = true }
  })
> stdoutCalled  // Should be true
> result
```

### 声音模式

启用动词模式以查看完整的响应对象和 WebSocket 调试信息 :

```javascript
> verbose()  // Toggle on - shows full results and WebSocket frames
> ls('/home')
> verbose()  // Toggle off
```

### 直接贝壳命令

前缀为 `$` 直接运行 shell 命令( 通过) `@computesdk/cmd`:

```javascript
> $echo "hello" | tr 'a-z' 'A-Z'
> $for i in 1 2 3; do echo $i; done
```

## 许可证

麻省理工学院

## 常见问题

### @computesdk/workbench 是什么？

用于测试计算SDK沙盒操作的交互式 REPL

### 如何安装 @computesdk/workbench？

在项目目录运行 npm install @computesdk/workbench，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 workbench、workbench-ts，可以用 npx workbench 直接运行。

### @computesdk/workbench 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @computesdk/workbench 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @computesdk/workbench 可以商用吗？

@computesdk/workbench 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @computesdk/workbench 的下载量有多少？

根据 npm 官方下载统计，@computesdk/workbench 在 2026/10/11 – 2026/11/09 这 30 天内被下载 5,042 次，日均约 168 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @computesdk/workbench 还在维护吗？

最新版本 33\.0\.32 发布于 2026/11/10（今天）；至今共发布 165 个版本，其中过去 12 个月发布了 165 个；首次发布于 2025/12/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

