Pencil: VSCode 插件, AI-native 设计工具 (类 Figma 但内嵌 IDE), 通过 MCP 跟 Claude Code/Codex/Gemini/OpenCode/Kiro/Claude Desktop/Copilot 集成. Claude Code: 终端 CLI, 通过 MCP "看到" Pencil 当前画布内容, 能读 / 给建议 / 转代码.
┌────────────────────┐ ┌──────────────────────┐
│ VSCode + Pencil │ MCP │ WSL 终端 + Claude │
│ (画 UI) │ ◄────► │ Code (生成代码/建议) │
└────────────────────┘ └──────────────────────┘
│ │
│ 设计 ←→ 代码 │
▼ ▼
prototype/.pen 文件 小程序 wxml/less/ts
│ │
└────────► commit + push ◄──────┘
│
▼
GitHub (双端同步)
你截图里显示 Pencil Settings → MCP Integrations 已勾选 7 个 CLI:
注脚 "On Pencil startup, MCP is automatically setup" — 重启 Pencil 自动注册到 Claude Code.
在 WSL 终端打开 Claude Code:
claude进入交互后输 /mcp 列出当前可用的 MCP server. 应该看到
pencil (或类似名字) 在列表里.
如果没看到, 检查 ~/.claude/settings.json:
cat ~/.claude/settings.json | grep -A 5 mcpServersPencil 启动时应该自动写入这块. 没有就手动看 Pencil → Settings → MCP →
Copy MCP config (你截图里底部那个按钮), 粘到
~/.claude/settings.json 的 mcpServers 里.
[Pencil] 画了一个粗略首页 (几个 Rectangle + Text 占位)
│
▼
[终端] claude
> 我在 Pencil 当前画布画了智能随访首页, 看一下给我建议
↓
[Claude Code] (通过 MCP 读 Pencil 当前 page 的 layers)
"看到了 5 个 layer: 顶部 patient-bar, 中部 conn-bar, 4 个 quick-btn 网格.
建议:
1. quick-btn 高度增加到 96rpx 增强可点击性
2. patient-bar 加渐变背景而不是纯色
3. 缺少今日采集统计区..."
[Pencil] 画完一个 Frame (例如 Tab 3 数据视图)
│
▼
[Pencil] 选中这个 Frame
│
▼
[终端] > 把当前选中的 Frame 转成微信小程序的 wxml + less
↓
[Claude Code] (通过 MCP 读选中 Frame 的几何 + 样式 + 子图层)
生成 pages/data/index.wxml + index.less
写到本地文件
[Claude Code]
> 看一下我现在 pages/index/ 的实现, 跟 Pencil 当前 Slide "首页 v10" 的设计对比,
列出哪里不一致
↓
[Claude Code] (读 wxml/less + Pencil Slide layers)
"差异:
1. 设计稿 quick-btn 4 个, 实现里只有 2 个
2. 实现里缺少 '今日采集' 统计卡
3. 顶部高度: 设计稿 188px, 实现 ~120px..."
[终端]
> 在 Pencil 当前画布加一个 Frame 名为 "Tab 3 数据视图":
- 顶部 horizontal scroll 4 个 chip (患者门诊号)
- 中间 3 个数字统计卡 (血压条数, 心率条数, 异常)
- 下面 2 个柱状图占位
- 最下方导出按钮
↓
[Claude Code] (调用 Pencil MCP 的 create_frame / add_layer 等工具)
"已在 Pencil 创建 Frame 'Tab 3 数据视图', 含 12 个 layer"
↓
[Pencil 自动刷新画布] 显示新 Frame
⚠️ 模式 4 是否能用取决于 Pencil MCP 暴露的写接口.
如果只读不写, 模式 4 不行, 你得自己画. 进入 Claude Code 后输
/mcp 看 Pencil 暴露的 tool 列表, 有 create_* /
add_* 之类的就支持写.
suifang-v10.pen在 Pencil 顶部 Components tab 创建可复用组件:
每个 Slide 拖组件用即可, 改组件全局生效. 跟 Figma Components 同概念.
Pencil 的 "Slides" tab (你截图里有) 可以把多个 Frame 当幻灯片, 用左右键切换. 给客户演示 4-tab 流程时一键过.
Pencil 顶部 "Libraries" tab 能定义 design tokens (色值/字号/圆角). 一处改全局生效, 不用每个 Frame 改一遍.
Pencil 文件是二进制(或加密 JSON), Claude Code 直接写可能损坏. 让它通过 MCP 工具调用 (模式 4) 而不是直接 Write 工具改 .pen.
.pen 文件入仓 → 设计版本可追溯. 但 .pen 体积可能大, 注意检查是否要进 .gitattributes 走 LFS.
echo "*.pen filter=lfs diff=lfs merge=lfs -text" >> .gitattributes| 现象 | 原因 | 解决 |
|---|---|---|
Claude Code /mcp 不显示 pencil |
MCP 配置没写入 | 重启 Pencil; 检查 ~/.claude/settings.json |
| Pencil 启动后 Claude Code 还是看不到画布 | Claude Code 进程已开启时 MCP 没刷新 | 退出 Claude Code 重进 |
| Claude Code 说"Pencil MCP 工具不可用" | Pencil 没启动或没打开任何 .pen 文件 | 先在 Pencil 打开 .pen 文件再问 |
| 画布修改后 Claude Code 看到的是旧的 | MCP 缓存 / 没自动刷新 | 让 Claude Code 重新调用 MCP read 工具 |
| WSL 跑 claude, 但 Pencil 在 Windows 主机 | 跨平台 IPC 可能不通 | 检查 Pencil 是否监听 0.0.0.0 而非仅 localhost |
WSL ↔︎ Windows 主机 的 MCP 跨边界问题如果出现, 退路是: 在 Windows PowerShell 里用 Claude Code (D:\suifang_dev 工作区那边), 跟 Pencil 同进程边界, 必通.
打开 docs/business-logic-v10.md, 跟同事/医生评审 9 个决策点 决策完了再动手画 Pencil, 否则方向错画了白画.
同时让同事:
prototype/suifang-v10.pen本机 (WSL) 同步:
git pull 拿 docs/ + prototype/不要急: 业务对齐 > UI 细化 > 代码实施. 跳步必返工.