一行命令,让 AI 的输出直接发布公网
AI Agent 跑完了分析任务,输出了一个漂亮的 CSV 文件。然后呢?——发附件?截图?还是把几千行数据粘贴到聊天窗口里?
这个”最后一公里”问题,是目前 AI 工作流里最被忽视的痛点之一。数据生产出来了,但如何优雅地”交付”,始终没有一个真正顺滑的答案。
直到出现了 easl(发音同 “easel”,画架)。
它到底做了什么?
核心逻辑极其简单:把任意数据文件一键发布成一个公开链接,访问者用浏览器即可看到带交互的渲染结果,无需登录、无需安装任何东西。
# 三秒发布一个 CSV 报告
$ easl publish data.csv --title "Q4 Results" --open
# → https://warm-dawn.easl.dev
# 管道直接发布 JSON
$ cat logs.json | easl publish --type json
# 或者用 REST API
$ curl -X POST https://api.easl.dev/publish \
-H "Content-Type: application/json" \
-d '{"content": "# 报告标题\n...", "contentType": "text/markdown"}'
它能自动识别文件格式,并用最合适的方式呈现:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
.mmd |
|
|
|
|
|
|
|
|
|
|
.png/.jpg/.gif/.webp |
|
8 种格式,零配置,全部自动识别。
背后是 Cloudflare Workers + R2 + D1 的边缘网络,全球分发,访问速度不成问题。
快速上手
方式一:CLI 命令行
# 安装
curl -fsSL https://easl.dev/install.sh | sh
# 发布文件
easl publish report.md
# => https://calm-river.easl.dev
# 更多用法
easl publish data.csv --title "Q4 Results" --open
cat logs.json | easl publish --type json
easl list # 查看已发布的页面
方式二:接入 MCP,让 Agent 自己发布
这是 easl 最聪明的设计——把自己做成 MCP 工具,直接嵌入 AI Agent 的工作流。
在 Claude Desktop、Cursor、Windsurf 等工具的 MCP 配置文件里加入:
{
"mcpServers": {
"easl": {
"command": "npx",
"args": ["-y", "@easl/mcp"]
}
}
}
之后直接对 Agent 说:”帮我把这份 CSV 发布成一个可以分享的表格页面”,它就会自动调用工具,返回链接,全程无需手动干预。
MCP 提供了 5 个工具:
|
|
|
|---|---|
publish_content |
|
publish_file |
|
publish_site |
|
list_sites |
|
delete_site |
|
方式三:给 Agent 注入技能知识
npx skills add AdirAmsalem/easl
支持 Claude Code、Cursor、Codex、ChatGPT、Gemini CLI 等主流 Agent 工具,让 Agent 内置 easl 的用法知识,调用更准确。
方式四:直接调用 REST API
Base URL:https://api.easl.dev
|
|
|
|
|---|---|---|
|
|
/publish |
|
|
|
/sites/:slug |
|
|
|
/sites/:slug |
X-Claim-Token 请求头) |
|
|
/feedback |
|
它真正适合的场景
场景一:AI Agent 的交付尾声
Agent 跑完爬取、分析、总结任务后,直接调用 publish_content,把结果发布成页面,最后回复用户一个链接。这是 easl 的核心设计场景。
场景二:临时数据分享
分析师跑完一个 SQL 查询,想让同事快速看一眼,不用发附件、不用拉权限、不用搭服务。一条命令,发链接,看完可以删。
场景三:CI/CD 流水线的可视化产物
在 GitHub Actions 末尾把测试报告、覆盖率数据发布成链接,PR review 时直接点开查看,而不是下载附件再本地打开。
场景四:架构图快速分发
Mermaid 流程图、系统架构 SVG 画完后,对方没有对应的渲染工具?发布成链接,浏览器直接看,无需任何安装。
场景五:轻量内容临时发布
写了一段技术文档想临时分享给客户,又懒得搭博客。easl 就是一次性的 Notion——发完即走,不需要维护。
技术架构
easl 以单个 Cloudflare Worker 的形式运行在边缘网络上:
当访问者打开 warm-dawn.easl.dev 时,Worker 检测文件类型,生成对应的 HTML Shell,并将原始数据嵌入其中由客户端水合渲染。
packages/ worker/ → Cloudflare Worker(路由、智能渲染、文件服务) cli/ → CLI 工具(npm: @easl/cli) mcp-server/ → MCP 服务端(npm: @easl/mcp,stdio 传输,5 个工具)
自托管部署
不想依赖官方服务?easl 完全开源,可以部署在自己的 Cloudflare 账户下。
前置条件: Node.js ≥ 20、Cloudflare 账户、wrangler CLI
第一步:克隆并安装依赖
git clone https://github.com/AdirAmsalem/easl.git
cd easl
pnpm install
第二步:创建 Cloudflare 资源
# 创建 KV 命名空间(用于缓存)
wrangler kv namespace create SITES_KV
# 创建 R2 存储桶(用于文件存储)
wrangler r2 bucket create easl-content
# 创建 D1 数据库(用于元数据)
wrangler d1 create easl-db
第三步:配置
将上一步得到的资源 ID 填入 packages/worker/wrangler.toml,同时配置你自己的域名。
第四步:初始化数据库
cd packages/worker
pnpm db:migrate
第五步:部署
pnpm deploy
部署完成后,将 MCP 配置里的 EASL_API_URL 环境变量指向你自己的 Worker 地址即可:
EASL_API_URL=https://your-worker.your-domain.com
本地开发调试
pnpm dev # 启动本地开发服务器(wrangler dev)
pnpm test # 运行测试
pnpm build # 构建所有包
本地开发使用路径路由代替子域名:
http://localhost:8787/publishhttp://localhost:8787/s/:slughttp://localhost:8787/docs优点与局限
值得称赞
需要留意
小结
easl 解决的是一个看起来很小、但实际上每天都在困扰开发者和 AI 用户的问题:数据生产出来了,怎么体面地给别人看?
它不试图成为 Notion,不试图成为 Google Sheets,只做好这一件事:把任意格式的数据,变成任何人都能直接在浏览器里查看的漂亮链接。
在 AI Agent 越来越普及的今天,这个”最后一公里”的工具,比你想象的更有价值。
项目地址:github.com/AdirAmsalem/easl · MIT License
夜雨聆风