做好了,就分享。
让 AI 做好的网页,有一个随时能打开、持续能更新的链接。
From your agent. To the web.
中文 · English
体验首页 ↗ · 玩一个真实作品 · 自己部署 · Agent 接入
一个 Prompt 接入 · 一句话发布 · 一个链接持续更新
你和 AI 做了一个小工具、一份交互报告,或者一整个静态网站。最想做的下一步,是发一个链接给朋友。
Qiaomu Page 把这一步留在原来的对话里:让 Agent 接上你自己的发布服务,发布文件,返回链接。 以后说“更新刚才的网站”,朋友打开的仍是同一个地址。
给自己装一套,也能让朋友共用。每个人都可以直接注册独立身份和发布空间,无需邀请码。初始密码由 CLI 生成并留在用户本机,不经过聊天。
复制首页 Prompt 给 Agent 即可注册和接入;已有账号登录后复制,会连接原来的空间。
以下作品由仓库中的 HTML 原样发布,无需登录即可体验。点击图片打开。
| 色彩实验室 把灵感调成一组配色。 查看源码 |
专注时钟 给一件事留一段时间。 查看源码 |
记忆翻牌 一个随手发给朋友的小游戏。 查看源码 |
在实例首页复制 Prompt,粘贴给 Codex、Claude Code、Cursor 等具备命令执行能力的 Agent。它读取当前实例的 Skill,安装 CLI,直接注册并连接你的发布空间;不需要邀请码。已有账号登录后复制 Prompt,会连接原来的空间。
你:把这个文件夹发布出去。
→ Agent 上传静态文件,返回分享链接。
你:改好了,更新刚才的网站,保留链接。
→ 原地址更新,旧版本可恢复。
你:分享标题改成「我的周末计划」,再加一张封面。
→ Agent 更新分享设置;你也能在网页后台修改。
首次接入时,Agent 会把账号找回能力一起配好:
Agent:你想用什么用户名?
你:qiaomu
Agent:注册完成。[点击查看初始密码](实际使用时指向你本机的私密文件)
登录后可在“账号设置”中修改密码。
上面的链接是流程示意,不是固定密码或仓库内文件。真实安装时,CLI 会为每位用户单独生成 12 位初始密码,排除容易混淆的字符,并以 0600 权限保存到本机。
也可以直接说 “发布到 QP”、“更新 QP 上的网站”。Qiaomu Page 是正式产品名,QP 是唯一推荐简称;已注册账号不会被重新注册或重置密码。
这是可用操作的示意,具体链接由你的实例返回。首次安装完成工具接入和账号注册,不会自动上传文件;发布什么始终由你决定。
| 你想做什么 | Qiaomu Page 帮你完成 |
|---|---|
| 分享 AI 做好的作品 | HTML、Markdown、静态网站文件夹,上传后直接打开 |
| 一直用同一个链接 | 自动分配 用户名.example.com/项目名;重名时才加数字,改标题、改账号、更新内容都保留 URL |
| 放心继续改 | 重试不重复建站,版本冲突检查,历史恢复、下架与重新发布 |
| 让朋友一起用 | 直接注册独立身份和空间;管理员可查看和停用成员 |
| 让分享卡片更好看 | 按需设置 OG 标题、摘要和封面,按需开启搜索收录 |
| 在对话里管理账号 | 首次只询问用户名,初始密码私密落盘;以后可在对话或后台修改 |
| 掌握自己的数据 | Docker / VPS / Cloudflare / Vercel,私有存储,可备份与恢复 |
发布的是什么,打开的就是什么。 默认保留原始 HTML,不加水印、平台署名或推广。分享增强与搜索收录由作者主动开启,已有网页元信息优先。
不想输入命令,也能直接上传、更新作品、恢复版本和管理朋友。
初始密码只是为了让账号可登录、可找回。用户查看本地密码文件后登录,即可在“账号设置”换成自己的密码;作品、稳定链接和 Agent 连接不变。
需要 Docker 与 Compose v2;无需在宿主机安装 Node.js。首次构建时间取决于网络和设备。
git clone https://github.com/joeseesun/qiaomu-page.git
cd qiaomu-page
docker run --rm --user "$(id -u):$(id -g)" \
-v "$PWD:/workspace" -w /workspace \
node:24.20.0-bookworm-slim node scripts/setup.js --docker
docker compose --env-file .env.docker up -d --build --wait打开 本地首页。然后获取五分钟有效、仅可使用一次的管理员登录链接:
docker compose --env-file .env.docker exec -T quickshare \
node bin/qiaomu-page.js dashboard --url http://127.0.0.1:3000登录后即可发布作品、设置账号或邀请朋友。没有通用默认密码;随机管理员密钥保存在本机 .env.docker,请私密保存。公网使用需配置 HTTPS 与对应 BASE_URL。
点击按钮,在自己的账号下创建仓库和云服务。Vercel 已预选 Turso + 私有 Blob;Cloudflare 从配置创建 Durable Object + 私有 R2。按向导保存管理员密钥并确认平台资源,完成后让 Agent 接入。
克隆仓库后,使用 Node.js 24+ 安装依赖,选择一个平台执行:
npm ci --ignore-scripts
# Cloudflare Workers + Durable Objects + R2
npm run install:cloudflare -- qiaomu-page
# 或:Vercel + Turso + 私有 Blob
npm run install:vercel -- qiaomu-page安装脚本创建或复用资源、生成并保存管理员密钥,完成后输出访问地址。需要你自己的平台账号;首次登录、服务条款和可能涉及的计费开通由本人确认。qiaomu-page 可换成自己的项目名;已有安装升级时沿用原名。
CLI 安装与云端运行已实测。按钮提供官方安装向导;登录、套餐和条款由本人确认。
本地开发:Node.js 24+
npm ci
npm run setup
npm start访问本地首页。另开终端运行 node bin/qiaomu-page.js dashboard 获取本地管理员登录链接。.env 和 Docker 的 .env.docker 独立保存。
下面的 qiaomu-page.js 指实例提供的独立 CLI 文件,使用 Agent 安装时记录的路径:
node qiaomu-page.js whoami --json
node qiaomu-page.js publish ./dist
node qiaomu-page.js update ./dist
node qiaomu-page.js publish ./dist --new
node qiaomu-page.js access RETURNED_SLUG --mode link
node qiaomu-page.js share RETURNED_SLUG --name Friend --expires 7d --output ./private-share.json
node qiaomu-page.js list --json
node qiaomu-page.js versions RETURNED_SLUG
node qiaomu-page.js account --jsonRETURNED_SLUG 用发布时返回的实际值替换。未配置实例地址时,CLI 会停止并提示登录,不会连接到别人的服务。新安装使用 qiaomu-page Skill、CLI 和配置名;旧 quickshare 命令、Skill 与配置仍可迁移复用,已有连接无需重建。见命名与兼容性。
CLI 1.10 会在首次发布时自动选择良好的作品标题:--title 优先,否则读取 HTML <title>、首个 <h1> 或 Markdown 一级标题,最后才使用经过整理的源文件名。更新时保留已有作品标题,除非明确传入新的 --title。这些都只是 Qiaomu Page 元数据,不会改写原始 HTML、Markdown 或构建产物;账号用户名也不会从作品推导或修改。发布前可运行 node qiaomu-page.js check SOURCE --json 检查浏览器存储、Service Worker、Cookie、顶层跳转和管理 API 等运行兼容性风险。
推荐配置 ACCOUNT_ORIGIN_TEMPLATE=https://{handle}.example.com,公开地址会是 https://用户名.example.com/项目名/。账号 handle 在第一次分配后固定;项目 path 从标题提炼,只在重名时追加 -2、-3,也可在首次发布时用 CLI --path 或网页“项目短地址”指定。改用户名、标题和内容都不会换链接。同一账号的公开作品共享该账号 origin 的本地存储,不同账号仍由子域隔离;管理 Cookie/API 和 Service Worker 始终不可用。旧 /s/slug 与旧 CONTENT_ORIGIN_TEMPLATE 作品子域继续兼容并跳转至首选短网址。
不需要记 CLI 命令,可以直接对 Agent 说:「发布这个网页到 QP」「更新 QP 上的这个作品,保持链接不变」「列出我在 QP 上的作品」「下架这个作品」「恢复刚才下架的作品」「设为仅自己可见」「生成一个 7 天有效的分享链接」。
项目关联、错误恢复、访问模式与升级注意事项见CLI 与分享权限。分享文件包含只读访问地址,应保存在发布目录之外。
| 部署方式 | 数据库 | 文件存储 | 验证范围 |
|---|---|---|---|
| Docker / VPS | SQLite 或 libSQL | 持久目录 / 私有 S3 | 容器安装、发布、重建保留数据;libSQL + MinIO 集成测试 |
| Cloudflare Workers | SQLite Durable Object | 私有 R2 | 官方 CLI 部署、满尺寸上传、重部署保留数据、PITR 恢复 |
| Vercel | Turso / libSQL | 私有 Vercel Blob | 官方 CLI 部署、网页分块上传、重部署保留数据、导出恢复 |
flowchart LR
A[Agent / CLI] --> C[身份与权限检查]
B[网页后台] --> C
C --> D[账号 · 稳定地址 · 版本索引]
C --> E[私有文件存储]
D --> F[分享链接]
E --> F
F --> G[隔离运行的静态网页]
文件先写入不可变对象,再用事务更新索引。分享链接经过发布状态检查;旧入口与受限内容运行于 opaque sandbox,配置账号内容域后,公开作品可在各自账号子域使用浏览器本地存储。网页会话与 Agent 使用不同的凭据机制,普通成员只能管理自己的内容。
- 静态发布:不运行后端 Node、Python、PHP,也不托管数据库型应用。前端项目先构建,再上传静态产物。
- 内容大小:每次最多 100 个文件 / 8 MiB,单文件最多 5 MiB,每位成员最多 100 个站点。大文件自动分块上传。
- 访问权限:默认凭普通链接访问、不进入展厅。可通过 Agent 改为「仅自己」或「受限链接」,并设置分享链接的有效期与撤销。受限链接可被转发。
- 网页隔离:任何作品都不开放管理站 Cookie、管理 API 或 Service Worker。未配置内容域时 localStorage 不可用;配置账号内容域后,同一账号的公开作品共享账号 origin 的 localStorage,不同账号仍由子域隔离。静态资源建议使用相对路径。
- 运行成本:开源代码使用 ISC 许可;云平台、域名与存储费用由部署者承担,免费额度以各平台当前规则为准。
- 发布形态:目前从源码安装,尚未提供预构建容器镜像。默认 SQLite 使用单实例和持久卷。
常见问题
第一次要提供什么? 不需要邀请码,只需告诉 Agent 想要的用户名。CLI 会生成初始密码并保存到用户本机的私密文件,聊天中不显示密码。用户可点击 Agent 返回的真实本地文件链接查看,登录后再在“账号设置”修改。
CLI 支持作品的增删改查吗? 支持创建、列表与单项读取、原链接更新、历史版本和回滚。删除采用可恢复下架:unpublish 停止公开访问,restore 恢复,不提供容易误操作的永久删除。
旧的 quickshare 命令还能用吗? 可以。新安装使用 qiaomu-page,旧命令、环境变量和配置路径作为兼容层保留。
提示没有配置服务地址? 使用你自己实例的首页 Prompt 接入,或查看 node qiaomu-page.js login --help。不要把管理员密钥发给朋友。
更新后链接会变吗? CLI 1.6 起,同一来源的 publish 自动更新已关联站点,update 只更新、不新建。明确另建时用 publish --new。旧项目先用 link SLUG SOURCE 关联已有站点。
能替代通用应用托管吗? 当前面向个人和朋友分享静态作品。需要服务器代码、登录型前端存储或更大文件时,应选择匹配该需求的部署方式。
欢迎安装反馈、可复现的 Bug 和聚焦的小范围 PR。读贡献指南、行为准则;安全问题请走私密报告。
npm run check
npm test
npm run verify:ui # 需要 Chrome
npm run verify:published -- https://your-public-work.example/ # 真实渲染、脚本错误与桌面/手机溢出
npm run verify:docker # 需要 Docker
npm run verify:backends # libSQL + MinIO 集成验收
npm run verify:cloudflare # 本地原生 Workers 验收当前发布通过 74 项自动化测试与桌面 / 390px 浏览器验收。CI 持续验证 Node、Docker、libSQL / S3 与 Workers;实际云部署和恢复记录见验收范围。
代码导览
| 目录 | 用途 |
|---|---|
server.js / lib/ |
发布 API、账号、权限、存储与分享设置 |
views/ / public/showcase/ |
网页首页、后台与作品展厅 |
bin/qiaomu-page.js / lib/agent.js |
独立 CLI 与实例生成的 Agent Skill |
cloudflare/ / vercel/ |
云平台运行时 |
scripts/ / test/ |
安装、备份、迁移与验收 |
examples/ |
可直接发布的静态作品 |
下一步:完成全新账号的浏览器按钮安装验收、提供预构建容器镜像,继续缩短首次部署流程。
Qiaomu Page 专注于 Agent 发布与可自行安装的服务,交互理念受到 here.now 启发。沿用 ISC 代码许可,Geist 与 Noto Sans SC 字体遵循各自的 SIL OFL;详见 LICENSE 与 NOTICE。历史命名与升级兼容见命名与兼容性。
由 向阳乔木 制作和维护。把 AI 做成能真正用上的工具。