桃子桃子快讯
返回首页
工具

Krate:把 AI 生成的小应用打包为可跨平台分发的权限化文件

开源跨平台工具 Krate 把 AI 生成的应用打包为单一 .krate 文件,支持 Mac、Windows、Linux…

2026.07.28 · 周二4 分钟阅读

Krate 是一个仍在 pre-alpha 阶段的开源项目,尝试解决「AI 能为个人或小团队写出好用的小应用,但难以安全分发」这一痛点。它提出一种新的应用封装格式:所有代码、名称、版本以及它所申请的权限被打包进一个 .krate 文件,相同的文件在 macOS、Windows 与 Linux 上均可直接打开。运行前,Krate 会弹出权限清单,由用户逐项审批后才真正授予访问能力。

一、核心机制:权限化的应用文件

Krate 文件本质是一个 WebAssembly 组件加上元数据。打开文件本身并不自动放行权限;Krate 会根据用户决定创建一个会话,只把被批准的能力接入到操作系统层。例如:

  • fs.read:notes/** 只能读取 notes 目录下的内容;
  • fs.write:checklist/** 只能写入 checklist 目录;
  • 未声明的网络权限即便代码尝试联网也会被拦截;
  • 从 URL 下载的应用不会因为来源而获得额外权限。

用户可以使用 krate run app.krate --dump-caps 仅查看权限清单,或使用 --prompt 在终端里逐项确认后再运行。

二、用 AI 代理生成应用

项目内置 krate create 命令,可以把一句自然语言请求直接转成完整 .krate 文件:自动写代码、构建、检查用到的系统能力、打包,并验证被拒绝的访问确实无法使用。当前版本内置两个示例:一个本地保存的清单(checklist)应用,以及一个命令行词频工具。

如果安装了 Claude Code,可以加上 --agent claude 让 AI 编程代理来写应用:

  • krate create "A grocery list app called My Groceries" --agent claude --output groceries.krate

Krate 把请求交给代理后,仍会按相同流程构建、校验、打包,确保一个写坏的应用不会被发出。对于其他 AI 工具,可以通过 --author-cmd "<your command>" 接入,代理收到 KRATE_REQUESTKRATE_APP_NAMEKRATE_APP_DIR 等环境变量。

三、当前可用能力

截至 v0.1.0-rc4,Krate 已可在三大平台打开 .krate 应用、渲染桌面窗口、完成文本输入与本地保存,并支持文件与网络能力声明、运行前权限审核、从 HTTPS URL 直接运行应用、以及面向 Agent 与脚本的 JSON 输出(krate.run.v1 schema)。但「自动把已有原生应用转换为 .krate」尚未支持,公开应用云、发现、身份与更新机制仍在规划中。CI 在 Linux、macOS、Windows 三平台上持续验证构建状态。

四、安装与上手

macOS 或 Linux 用户可直接通过一行脚本安装命令行工具;macOS 也提供未签名的 Krate.app 包,首次打开需右键选择「打开」绕过 Gatekeeper。Windows 用户需手动解压并将 krate.exe 所在目录加入 PATH。注册 .krate 文件关联后,可像打开普通文档一样双击运行。开发侧目前需要 Rust、wasm32-wasip1 目标以及 cargo-component,可通过 krate doctor 自检环境。

信源