内容
<div align="center">
# Perch
**您的智能代理构建的软件着陆的云平台**
您的智能代理在一次调用中部署它刚刚构建的工具。您的团队像打开 Google 文档一样打开它。
它在沙盒中运行,您可以随时获取源代码并离开。
[**网站**](https://mandarwagh9.github.io/perch/) · [获取访问权限](https://mandarwagh9.github.io/perch/#access) · [工作原理](#工作原理) · [本地评估](#本地运行)
源代码可用 · 非商业许可 · 通过托管服务进行商业使用
</div>
---
## 什么是Perch
Perch是**针对小型软件的智能代理原生云平台** — 您的编码智能代理现在在几秒钟内构建的临时内部工具。转折点在于:**智能代理**是云平台的用户,而不是点击部署按钮的人类。当智能代理完成一个工具时,它会调用Perch(通过MCP或CLI),获取一个可共享的、具有权限的URL,然后继续工作。
它解决了编写代码后仍然存在的三个难题:
- **安全运行任意代码**。每个工具都在一个锁定的沙盒中运行,没有文件系统、网络或主机访问权限。其唯一的权限是其自己的隔离存储,由平台提供。它配备了对抗性安全审查,发现了一个真正的漏洞,现已修复并进行了回归测试。
- **内置身份验证和权限**。工具继承您的组织身份。监管者在运行一行工具代码之前授权每个请求。按人员、组、组织或公开共享。在您的SSO后,只需一个设置即可。
- **像文档一样共享,像文件一样拥有**。发送链接就像发送Google文档一样,随时可以将源代码导出到zip文件中。无需锁定。
## Perch 作为服务(推荐)
使用Perch的最快方式是**托管服务**:我们为您团队运行它,保持沙盒安全,处理SSO和升级,您只需共享工具。
> **[获取访问权限 →](https://mandarwagh9.github.io/perch/#access)**
| | 托管Perch | 本地评估(源代码) |
|---|---|---|
| 设置 | 无,我们运行它 | 克隆并本地运行 |
| 沙盒安全加固 | 已管理 | 参考(参见 [SECURITY.md](SECURITY.md)) |
| SSO / 身份验证 | 已包含 | 自带代理 |
| 升级和支持 | 已包含 | 您自己维护 |
| 许可证 | 商业 | 仅非商业 |
商业使用 — 为公司或团队运行Perch,或向他人提供 — 需要通过托管服务或商业许可证。参见 [许可](#许可)。
## 本地运行
用于个人、非商业评估:
```bash
npm install
npm run demo # 演示:智能代理部署,运行沙盒,共享,导出
npm test # 测试套件,包括沙盒逃逸和授权测试
npm run dev # 本地服务器,端口:8787,接收者UI:/my
```
需要 Node 22+(使用内置的 `node:sqlite`)。
## 智能代理如何使用Perch
将MCP服务器指向正在运行的Perch,您的智能代理将获得六个工具:`perch_deploy`、`perch_list`、`perch_share`、`perch_logs`、`perch_source`、`perch_dev_token`。获取设置:
```bash
npm run cli -- mcp-install # 打印Claude Code / Cursor的设置
```
一个工具是一个模块,导出一个处理程序。`ctx.store` 是其私有存储;`ctx.user` 是已登录的查看者。它不能导入任何内容,触摸文件系统或打开网络。
```js
export default async function handler(request, ctx) {
const n = Number(await ctx.store.get('count') ?? 0) + 1;
await ctx.store.set('count', String(n));
return { json: { count: n, by: ctx.user?.email ?? 'anon' } };
}
```
## 工作原理
```
智能代理 (MCP/CLI) ─▶ 控制平面 (/v1/deploy, /share, /eject)
人类 ─▶ /a/:appId ─▶ 监管者(身份验证 + 授权 + 速率限制) ─▶ 沙盒(作用域 ctx) ─▶ 工具
│ │
└──────── 存储(每个应用隔离存储) ────────┘
```
五个专注的模块,每个模块都有一个匹配的测试文件:`store.ts`(每个应用隔离的SQLite)、`sandbox.ts` + `sandbox-host.mjs`(不信任代码运行时)、`supervisor.ts`(身份验证前门)、`deploy.ts`(捆绑验证)和智能代理接口(`cli.ts`、`mcp.ts`)。
## 安全
Perch运行不受信任的代码, [SECURITY.md](SECURITY.md) 诚实地描述了边界:在单个信任域(您的团队)中运行。如果您在托管自己的实例之前,请阅读它。
## 许可
在 **PolyForm Noncommercial 1.0.0** 许可下源代码可用([LICENSE](LICENSE)):免费用于个人和非商业评估。**任何商业使用** — 为公司或团队运行Perch,或向他人提供 — 需要托管服务或商业许可。[联系我们](https://mandarwagh9.github.io/perch/#access)。
这不是开放源代码许可(OSI),Perch不适用于商业使用。