Skip to content

About

📱 Craft Agent Skill: Start a local Live Reload dev server and generate QR code for mobile phone preview

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Phone Preview Skill · 手机扫码预览本地网页

GitHub stars License Skill Live Reload Craft Agent Claude Code

一个适配 Craft Agent / Claude Code 等 Agent 环境的手机预览技能,用于启动本地 Live Reload 服务器并生成二维码,扫码即可在手机上实时预览网页。

内置能力:

  • 📱 扫码即览。生成终端二维码 + PNG 二维码,手机扫一扫直接打开本地页面。
  • 🔄 实时热重载。修改 public/ 下的文件,桌面和手机浏览器自动刷新。
  • 🌐 局域网投屏。自动获取本机 IP,电脑和手机在同一 WiFi 下即可访问。
  • ⚙️ 零配置启动。不需要 nginx、不需要端口转发,开箱即用。

灵感来自日常开发中频繁需要在手机上调试移动端适配的场景——每次都要推到服务器太慢,本地又访问不了。这个 Skill 把整个流程压缩到一条指令。

30 秒开始

npx skills add https://github.com/wildematt/phone-preview-skill --skill phone-preview-skill

也可以直接把这段话发给有 shell 权限的 AI Agent:

帮我安装 phone-preview-skill。请把 https://github.com/wildematt/phone-preview-skill 克隆到 ~/.craft-agent/workspaces/<your-workspace>/skills/phone-preview,安装完成后检查 SKILL.md 和 assets/ 是否存在。

已经安装过的话,用这段话更新:

帮我更新 phone-preview-skill。请进入 ~/.craft-agent/workspaces/<your-workspace>/skills/phone-preview 执行 git pull,然后告诉我当前最新 commit。

安装后直接对 Agent 说:

帮我手机预览这个网页,我扫个码看看效果。

也可以试这些请求:

这个页面在手机上排版有问题,帮我预览一下。
我想在手机上看看这个 HTML 文件的效果。
帮我启动一个本地服务器,我要在手机上调试移动端样式。
把这份网页生成一个二维码,我要发给同事手机上看。

效果

  • 📱 扫码预览:生成终端二维码和 PNG 文件,手机扫一扫即可访问
  • 🔄 Live Reload:文件修改后桌面和手机浏览器自动刷新,无需手动操作
  • 🎨 CSS 热替换:修改 CSS 文件只更新样式,不刷新页面,表单状态和滚动位置不丢失
  • 🌐 局域网访问:自动获取本机 IP,手机无需安装任何 App,浏览器直接打开
  • 📦 轻量服务器:基于 Node.js 的 HTTP + WebSocket 服务器,资源占用极低
  • 🖼 双二维码输出:终端 ASCII 二维码方便快速测试,PNG 文件方便保存和分享
  • ⚙️ 智能端口探测:端口被占用时自动 +1 重试,无需手动干预
  • 🔒 进程管理:PID 文件记录服务器状态,支持优雅停止
  • 🔀 API 代理:支持代理 /api/* 到后端服务,前端带后端的页面也能预览
  • 🖥️ 跨平台:macOS / Linux / Windows WSL 均可使用

适合 / 不适合

✅ 合适:移动端适配调试 / 响应式布局预览 / 分享本地页面给同事快速查看 / H5 活动页预览 / 手机端 UI 走查

❌ 不合适:需要公网访问的场景(仅限局域网)/ 需要 HTTPS 的 PWA 测试 / 多人同时连接的团队协作预览 / WebSocket 代理(当前仅代理 HTTP)

常见使用场景

任务 推荐方式
移动端适配调试 启动服务后用手机实时查看,边改边刷新
H5 页面预览 直接说"手机预览",扫码在手机浏览器打开
分享本地页面 生成 PNG 二维码图片,发给同事扫码访问
响应式设计走查 手机和桌面同时打开,对比不同屏幕尺寸的显示效果
微信内置浏览器测试 手机扫码后在微信中打开链接(需在同一局域网)
前端 + 后端联调 设置 PROXY_TARGET 代理 API 请求,前端页面可正常调用后端接口

为什么用 Live Reload

  • 比推服务器快:改代码秒级刷新,不用等部署,不用推到 staging 环境。
  • 比 Charles 代理简单:不需要配置代理,不需要安装证书,扫个码就行。
  • 比微信开发者工具轻:不需要引入完整框架,纯 HTML / CSS / JS 直接预览。
  • 比截图调试准:真实设备渲染,能看到字体渲染、触摸交互、滚动行为等真实表现。

平台支持

平台 状态 说明
Craft Agent ✅ 支持 原生 Skill 工作流,完整支持所有功能
Claude Code ✅ 支持 可安装为 workspace skill
Cursor / 其他本地 Agent ✅ 可用 需要能读写文件并执行 shell 命令
普通 Chatbot ❌ 不推荐 没有文件系统和 shell 时无法启动服务器

安装

方式一:一行命令安装(推荐)

npx skills add https://github.com/wildematt/phone-preview-skill --skill phone-preview-skill

方式二:把下面这段话直接发给 AI

帮我安装 phone-preview-skill 这个 Skill。请按下面步骤做:

  1. 确保 ~/.craft-agent/workspaces/<your-workspace>/skills/ 目录存在(不存在就创建)
  2. 执行 git clone https://github.com/wildematt/phone-preview-skill.git ~/.craft-agent/workspaces/<your-workspace>/skills/phone-preview
  3. 验证:ls ~/.craft-agent/workspaces/<your-workspace>/skills/phone-preview/ 应该看到 SKILL.md 和 assets/
  4. 告诉我安装好了,之后我说"手机预览"之类的话就会触发这个 skill

把这段话复制粘贴给 Craft Agent / Claude Code / 任何有 shell 权限的 AI Agent,它会自动完成安装。

方式三:手动命令行

git clone https://github.com/wildematt/phone-preview-skill.git ~/.craft-agent/workspaces/<your-workspace>/skills/phone-preview

触发方式

装好后,Agent 会在对话里自动发现并调用这个 Skill。触发关键词:

  • "手机预览"
  • "扫码访问"
  • "手机上看看"
  • "二维码预览"
  • "phone preview"
  • "mobile preview"
  • "帮我预览一下这个页面在手机上的效果"

使用流程

Skill 本身是结构化工作流,Agent 会逐步引导:

  1. 识别目标文件 — 确认要预览的 HTML 文件或目录
  2. 准备服务目录 — 将文件复制到 .phone-preview/public/ 目录
  3. 启动服务器 — 在后台启动 Live Reload 服务器(默认端口 3000)
  4. 获取本机 IP — 自动获取局域网 IP 地址
  5. 生成二维码 — 输出终端二维码 + PNG 文件
  6. 呈现给用户 — 展示二维码图片,提供桌面预览链接
  7. 实时调试 — 修改 public/ 下的文件,浏览器自动刷新

详细说明见 SKILL.md。

目录结构

phone-preview-skill/
├── SKILL.md                    ← Skill 主文件:工作流、前置条件、排障指南
├── README.md                   ← 本文件
└── assets/
    ├── preview-server.js       ← Live Reload HTTP + WebSocket 服务器
    ├── generate-qr.js          ← 二维码生成器(终端输出 + PNG 文件)
    └── package.json            ← npm 依赖声明(ws、qrcode)

技术细节

服务器架构

  • HTTP Server:基于 Node.js http 模块,提供静态文件服务
  • WebSocket Server:复用 HTTP 端口(HTTP upgrade),无需额外端口
  • 文件监听:使用 fs.watch 监听 public/ 目录,变更时通过 WebSocket 推送
  • CSS 热替换:CSS 文件变更时发送 {type: 'css-update'} 消息,客户端只替换 <link> 标签,不刷新页面
  • 端口探测:从 3000 开始逐个尝试,找到可用端口后启动
  • 进程管理:启动时写 server.pid(JSON 格式,含 PID、端口、IP);支持 SIGTERM/SIGINT 优雅关闭
  • API 代理:/api/* 请求自动转发到 PROXY_TARGET,支持所有 HTTP 方法、请求体透传、CORS 头注入

前置依赖

  • Node.js v18+
  • npm 包:ws、qrcode(通过 assets/package.json 管理)
  • 电脑和手机在同一 WiFi 网络下

安装依赖:

cd <skill_dir>/assets && npm install

示例请求

复制下面任意一条给 Agent:

帮我启动本地预览服务器,我要在手机上看看这个页面的移动端适配效果。
这个 HTML 文件在手机上排版有点问题,帮我预览一下,我扫个码看看。
我想把本地这个网页分享给同事在手机上看,帮我生成个二维码。
帮我开启 Live Reload,我要实时调试这个页面在手机上的显示效果。

FAQ

电脑和手机不在同一个 WiFi 下能用吗? 不能。这个 Skill 依赖局域网访问,电脑和手机必须连接同一个 WiFi 网络。

可以同时预览多个页面吗? 当前版本一次只能预览一个页面。如需切换,需要先停止当前服务器再启动新的预览。

手机扫了码但打不开页面? 检查三点:① 确认电脑和手机在同一 WiFi;② 检查防火墙是否阻止了入站连接;③ 查看 server.pid 中记录的 IP 和端口是否正确(服务器会自动避开被占用的端口)。

二维码扫不了怎么办? 终端输出的 ASCII 二维码在某些字体下可能不清晰,使用 Agent 提供的 PNG 版本更可靠。

可以修改端口号吗? 可以。启动时设置环境变量 PORT=8080 nohup node preview-server.js ...,或编辑 assets/preview-server.js 中的 START_PORT。

怎么停止服务器? 读取 server.pid 文件获取 PID,然后 kill <PID>。服务器会优雅关闭 WebSocket 连接并清理 PID 文件。

页面需要调后端 API 怎么办? 启动服务器时设置 PROXY_TARGET 环境变量,如 PROXY_TARGET=http://localhost:8080,所有 /api/* 请求会自动转发到后端。支持自定义前缀:PROXY_PREFIX=/v2。

支持 HTTPS 吗? 当前版本仅支持 HTTP。对于需要 HTTPS 的 PWA 测试,建议使用 ngrok 或 Cloudflare Tunnel 等工具。

贡献

欢迎提 Issue 和 PR。以下是一些改进方向:

  • 支持 HTTPS,用于 PWA 和 Service Worker 测试
  • 支持同时预览多个页面
  • 支持自定义端口配置(无需手动编辑代码)
  • 支持远程访问(通过 ngrok 等集成)
  • 添加页面性能分析工具(Lighthouse 等)

License

MIT © 2026 WildeMatt

About

📱 Craft Agent Skill: Start a local Live Reload dev server and generate QR code for mobile phone preview

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages