🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

热插拔画布 pihme/fregoli

Cordis
pihme11 天前有提交已提供中文文档扫描:含敏感能力

让智能体在运行中挂载或卸载页面能力,无需重启

30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add pihme/fregoli
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
  • 执行外部命令来自配置/变量
    bin/fregoli.js:22
    const child = spawn(process.execPath, [tsxCli, join(root, "src/cli.ts"), ...process.argv.slice(2)], {
  • 读取本地文件
    src/boot.ts:56
    return readdirSync(dir)
  • 写入本地文件
    src/config.ts:34
    writeFileSync(join(appRoot, configFileName), body + "\n");
  • 读取本地文件
    src/config.ts:39
    const raw = readFileSync(join(appRoot, configFileName), "utf8");
  • 发起网络请求
    src/mcp.ts:68
    const res = await fetch(origin + path, init);
  • 发起网络请求
    src/mcp.ts:90
    const res = await fetch(origin + "/bridge/reload", { method: "POST" });
  • 发起网络请求
    src/mcp.ts:94
    const res = await fetch(origin + "/bridge/highlight", {
  • 发起网络请求
    src/mcp.ts:102
    await fetch(origin + "/bridge/highlight", {
  • 读取本地文件
    src/version.ts:9
    const text = readFileSync(new URL("./RELEASE_VERSION", import.meta.url), "utf8").trim();
  • 执行外部命令固定命令
    src/version.ts:18
    const out = execFileSync(
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

一个智能体能在运行时改写的 Web 应用:能力由 Cordis 插件提供,在运行中的 Node 进程里挂载和卸载。

README

由 DeepSeek 最新模型翻译生成
Fregoli Fregoli 是个 Web 应用,智能体能在它运行期间直接改写它。不用改文件再重启进程:各项能力都是 Cordis 插件,在活着的 Node 进程里挂载和卸载。名字取自 Leopoldo Fregoli(1867–1936),那位快速换装艺人:一个演员,千般扮相,演出从不中断。 启动后,你会拿到一个跑在 8080 端口的画布,右下角还有个助手聊天框。grok 在 PATH 上时,聊天经 ACP 转给 Grok CLI;否则转给进程内的桩实现。Grok 会收到一个 MCP 服务器,借此观察页面、加载和卸载插件、高亮元素,并等待用户点击。 命令行名字完整写作 fregoli,不要缩写成 freg。 - 网站 — 手册与当前状态 - 规格说明 — 产品规格 - 使用指南 — 命令行、HTTP、Grok、Docker - 参与贡献 — 欢迎提 issue,暂不接受外部 pull request 三个问题 Fregoli 围绕三个问题构建: 1. 如果你不必再买现成软件,而是能自己造,会怎样? 2. 如果软件不是一次做完交付,而是能不断变化,会怎样? 3. 如果 AI 不只造软件,还能在这软件里接手那些确定性软件做不了的任务,会怎样? 快速上手 需要 Node 22+。
展开完整文档(README 剩余 1 节)
Fregoli

Fregoli 是个 Web 应用,智能体能在它运行期间直接改写它。不用改文件再重启进程:各项能力都是 Cordis 插件,在活着的 Node 进程里挂载和卸载。名字取自 Leopoldo Fregoli(1867–1936),那位快速换装艺人:一个演员,千般扮相,演出从不中断。

启动后,你会拿到一个跑在 8080 端口的画布,右下角还有个助手聊天框。grok 在 PATH 上时,聊天经 ACP 转给 Grok CLI;否则转给进程内的桩实现。Grok 会收到一个 MCP 服务器,借此观察页面、加载和卸载插件、高亮元素,并等待用户点击。

命令行名字完整写作 fregoli,不要缩写成 freg。

- 网站 — 手册与当前状态
- 规格说明 — 产品规格
- 使用指南 — 命令行、HTTP、Grok、Docker
- 参与贡献 — 欢迎提 issue,暂不接受外部 pull request

三个问题

Fregoli 围绕三个问题构建:

1. 如果你不必再买现成软件,而是能自己造,会怎样?
2. 如果软件不是一次做完交付,而是能不断变化,会怎样?
3. 如果 AI 不只造软件,还能在这软件里接手那些确定性软件做不了的任务,会怎样?

快速上手

需要 Node 22+。想接真智能体,还要 PATH 上有 Grok CLI(通过 Grok CLI 登录或 XAI_API_KEY 认证)。

git clone https://github.com/pihme/fregoli.git
cd fregoli
npm ci
npx tsx src/cli.ts # http://127.0.0.1:8080/
npx tsx src/cli.ts --assistant # force the stock assistant UI
npx tsx src/cli.ts --version
npm link # puts fregoli on PATH; uses the tsx in this checkout
启动时会显示欢迎画布(plugins/shipped/welcome.ts)。右下角的助手是 Helferlein 形象(v0.1.2):静止时点它会打开聊天;聊天打开后,它浮在面板上方。智能体应用改动后,它会换一个新造型,浏览器会记住这个造型。grok 可用时,聊天通过 ACP 交给 Grok;否则走进程内 stub。启动时加 --assistant,本次启动强制使用内置助手 UI。fregoli 命令能存在,靠的是 npm link,不需要全局 tsx。

跑测试(合并门槛):

npm test

容器镜像(Hermetarium 是推荐栖息地,不是必需):

docker build -t fregoli:local --build-arg FREGOLI_VERSION="$(git describe --tags --match 'fregoli/v' 2>/dev/null || echo dev)" .
docker run --rm -p 8080:8080 fregoli:local

镜像监听 0.0.0.0:8080,包含 plugins/shipped/、fregoli.json 和 .grok/skills/fregoli-app/,并安装 iproute2 和 iptables,供 Hermetarium 防火墙使用。本地进程仍监听 127.0.0.1,除非你传 --host 或设置 FREGOLI_HOST。

保存的配置放在进程工作目录下的 fregoli.json。加载和卸载都会写入它,所以运行时插件和已移除的助手都能在重启后保留:

{ "assistant": true, "plugins": [] }

fregoli/vX.Y.Z 的 GitHub Releases 附带源码 tarball,版本号已写入其中。--version 会打印 FREGOLI_VERSION(如果设置了),否则打印 git describe --tags --match 'fregoli/v',再否则打印 dev。完整命令行与 HTTP 参考:使用指南。

架构

Fregoli 架构:浏览器通过 HTTP 与 web 插件通信;agent 插件通过 ACP 运行 Grok 命令行;Grok 启动 Fregoli MCP 服务器,后者调用 web 插件的 HTTP API。

agent 插件启动 grok agent --always-approve stdio,并在 ACP session/new 中传入 MCP 服务器规格;Grok 启动 src/mcp.ts,其中 FREGOLI_URL 指回本进程。随附插件(plugins/shipped/)在启动时挂载;运行时插件通过 fregoli.json 或 POST /load 挂载。

内核是 Cordis。各项能力都是插件(「fiber」),可在运行时挂载和销毁。

Web 在 8080 上提供 HTTP、画布、助手槽位、JSON API 和页面桥(DOM 快照、高亮、用户点击)。

Agent 启动 grok agent --always-approve stdio 并说 ACP。它交给 Grok 一个 MCP 服务器:list_plugins(已挂载的 Cordis fiber)、load_plugin(挂载插件文件)、unload_plugin(按名称销毁 fiber)、observe_page(当前标签页的序列化 DOM)、highlight(高亮 CSS 选择器)、wait_click(高亮选择器并等待用户点击或输入)、reload_page(重载浏览器标签页;助手聊天保持打开)。没有 grok 时回退到 stub。卸载会杀掉对应子进程。
Assistant 本身就是插件:右下角聊天,可替换、可移除。默认 UI 就是上文介绍的 Helferlein 头像。

Loader 从 fregoli.json 或 POST /load 挂载额外的 Cordis 插件,并在加载或卸载插件时写入 fregoli.json。apply 失败不会进入 ACTIVE 状态,也不会替换画布。

目录结构

| 路径 | 内容 |
| src/cli.ts、src/boot.ts、src/kernel.ts | 命令行入口、启动流程、Cordis 上下文 |
| src/loader.ts、src/config.ts | 插件加载器/卸载器、fregoli.json 处理 |
| src/mcp.ts | 交给 Grok 的 MCP 服务器 |
| src/plugins/{web,agent,assistant}/ | 启动插件(纳入版本跟踪) |
| plugins/shipped/ | 随仓库发布的画布插件;每个 .ts 都在启动时挂载 |
| plugins/runtime/ | 智能体在运行时写入的插件(已 gitignore) |
| .grok/skills/fregoli-app/ | Grok 技能:如何改动正在运行的应用 |
| tests/ | 通过 tsx 运行的 node:test 测试套件 |
| docs/images/ | 本 README 和网站使用的示意图 |

这个项目是怎么构建的

Fregoli 采用智能体优先的开发方式。AI 编程智能体编写全部代码、测试和文档,并互相审查改动,由人把握方向:规格、设计决策,以及基于实际行为和测试结果的验收。没有人逐行阅读代码。这是有意为之。质量靠自动化测试、CI 和独立的智能体审查来保证。

依赖之前,请按你自己的需求评估代码。发现问题?欢迎开 issue。

许可证:PolyForm Noncommercial 1.0.0。源码可见,但不是 OSI 开源。第三方软件及其许可证:THIRD_PARTY_NOTICES.md。
预览分享卡片长什么样 ↓pihme/fregoli
分享 · DeepSeek Harness Hub
pihme/fregoli

让智能体在运行中挂载或卸载页面能力,无需重启

回到顶部