napkin

作者: github

基于浏览器的可视化白板,用于绘制创意草图,并通过绘图和便签与Copilot协作。在用户桌面打开交互式画布,可绘图、素描、添加便签,并通过“与Copilot共享”按钮将内容回传给Copilot。通过PNG快照(对草图、图表和布局的视觉解读)以及可选的JSON剪贴板数据(便签和标签中的精确文本)读取白板内容。专为非技术用户设计……

npx skills add https://github.com/github/awesome-copilot --skill napkin

Napkin — Visual Whiteboard for Copilot CLI

Napkin gives users a browser-based whiteboard where they can draw, sketch, and add sticky notes to think through ideas visually. The agent reads back the whiteboard contents (via a PNG snapshot and optional JSON data) and responds conversationally with analysis, suggestions, and next steps.

The target audience is lawyers, PMs, and business stakeholders — not software developers. Keep everything approachable and jargon-free.


Activation

When the user invokes this skill — saying things like "let's napkin," "open a napkin," "start a whiteboard," or using the slash command — do the following:

  1. Copy the bundled HTML template from the skill assets to the user's Desktop.

    • The template lives at assets/napkin.html relative to this SKILL.md file.
    • Copy it to ~/Desktop/napkin.html.
    • If ~/Desktop/napkin.html already exists, ask the user whether they want to open the existing one or start fresh before overwriting.
  2. Open it in the default browser:

    • macOS: open ~/Desktop/napkin.html
    • Linux: xdg-open ~/Desktop/napkin.html
    • Windows: start ~/Desktop/napkin.html
  3. Tell the user what to do next. Say something warm and simple:

    Your napkin is open in your browser!
    
    Draw, sketch, or add sticky notes — whatever helps you think through your idea.
    
    When you're ready for my input, click the green "Share with Copilot" button on the whiteboard, then come back here and say "check the napkin."
    

Reading the Napkin

When the user says "check the napkin," "look at the napkin," "what do you think," "read my napkin," or anything similar, follow these steps:

Step 1 — Read the PNG snapshot (primary)

Look for a PNG file called napkin-snapshot.png. Check these locations in order (the browser saves it to the user's default download folder, which varies):

  1. ~/Downloads/napkin-snapshot.png
  2. ~/Desktop/napkin-snapshot.png

Use the view tool to read the PNG. This sends the image as base64-encoded data to the model, which can visually interpret it. The PNG is the primary way the agent understands what the user drew — it captures freehand sketches, arrows, spatial layout, annotations, circled or crossed-out items, and anything else on the canvas.

If the PNG is not found in either location, do NOT silently skip it. Instead, tell the user:

I don't see a snapshot from your napkin yet. Here's what to do:

1. Go to your whiteboard in the browser
2. Click the green "Share with Copilot" button
3. Come back here and say "check the napkin" again

The button saves a screenshot that I can look at.

Step 2 — Read the clipboard for structured JSON (supplementary)

Also try to grab structured JSON data from the system clipboard. The whiteboard copies this automatically alongside the PNG.

  • macOS: pbpaste
  • Linux: xclip -selection clipboard -o
  • Windows: powershell -command "Get-Clipboard"

The JSON contains the exact text content of sticky notes and text labels, their positions, and their colors. This supplements the PNG by giving you precise text that might be hard to read from a screenshot.

If the clipboard doesn't contain JSON data, that's fine — the PNG alone gives the model plenty to work with. Do not treat a missing clipboard as an error.

Step 3 — Interpret both sources together

Synthesize the visual snapshot and the structured text into a coherent understanding of what the user is thinking or planning:

  • From the PNG: Describe what you see — sketches, diagrams, flowcharts, groupings, arrows, spatial layout, annotations, circled items, crossed-out items, emphasis marks.
  • From the JSON: Read the exact text content of sticky notes and labels, noting their positions and colors.
  • Combine both into a single, conversational interpretation.

Step 4 — Respond conversationally

Do not dump raw data or a technical summary. Respond as a collaborator who looked at someone's whiteboard sketch. Examples:

  • "I can see you've sketched out a three-stage process — it looks like you're thinking about [X] flowing into [Y] and then [Z]. The sticky note in the corner says '[text]' — is that a concern you want me to address?"
  • "It looks like you've grouped these four ideas together on the left side and separated them from the two items on the right. Are you thinking of these as two different categories?"
  • "I see you drew arrows connecting [A] to [B] to [C] — is this the workflow you're envisioning?"

Step 5 — Ask what's next

Always end by offering a next step:

  • "Want me to build on this?"
  • "Should I turn this into a structured document?"
  • "Want me to add my suggestions to the napkin?"

Responding on the Napkin

When the user wants the agent to add content back to the whiteboard:

  • The agent cannot directly modify the HTML file's canvas state — that's managed by JavaScript running in the browser.
  • Instead, offer practical alternatives:
    • Provide the response right here in the CLI, and suggest the user add it to the napkin manually.
    • Offer to create a separate document (markdown, memo, checklist, etc.) based on what was interpreted from the napkin.
    • If it makes sense, create an updated copy of napkin.html with pre-loaded content.

Tone and Style

  • Use the same approachable, non-technical tone as the noob-mode skill.
  • Never use developer jargon without explaining it in plain English.
  • Treat the napkin as a creative, collaborative space — not a formal input mechanism.
  • Be encouraging about the user's sketches regardless of artistic quality.
  • Frame responses as "building on your thinking," not "analyzing your input."

Error Handling

PNG snapshot not found:

I don't see a snapshot from your napkin yet. Here's what to do:

1. Go to your whiteboard in the browser
2. Click the green "Share with Copilot" button
3. Come back here and say "check the napkin" again

The button saves a screenshot that I can look at.

Whiteboard file doesn't exist on Desktop:

It looks like we haven't started a napkin yet. Want me to open one for you?

Important Notes

  • The PNG interpretation is the primary channel. Multimodal models can read and interpret the base64 image data returned by the view tool.
  • The JSON clipboard data is supplementary — it provides precise text but does not capture freehand drawings.
  • Always check for the PNG first. If it isn't found, prompt the user to click "Share with Copilot."
  • If the clipboard doesn't have JSON data, proceed with the PNG alone.
  • The HTML template is located at assets/napkin.html relative to this SKILL.md file.
  • If the noob-mode skill is also active, use its risk indicator format (green/yellow/red) when requesting file or bash permissions.

来自 github 的更多技能

console-rendering
github
在Go中使用基于结构体标签的控制台渲染系统的说明
official
acquire-codebase-knowledge
github
当用户明确要求映射、记录或熟悉现有代码库时使用此技能。触发词如“映射此代码库”、“记录…
official
acreadiness-assess
github
Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc…
official
acreadiness-generate-instructions
github
通过AgentRC指令命令生成定制化的AI代理指令文件。生成.github/copilot-instructions.md(默认,推荐用于VS Code中的Copilot…
official
acreadiness-policy
github
帮助用户选择、编写或应用AgentRC策略。策略通过禁用无关检查、覆盖影响/级别、设置…来定制就绪评分。
official
add-educational-comments
github
为代码文件添加教育性注释,将其转化为有效的学习资源。根据三个可配置的知识水平(初级、中级、高级)调整解释深度和语气。若未提供文件,自动请求文件,并附带编号列表以便快速选择。仅通过教育性注释将文件扩展最多125%(硬性限制:新增400行;超过1000行的文件限制为300行)。保留文件编码、缩进风格、语法正确性以及...
official
adobe-illustrator-scripting
github
使用ExtendScript(JavaScript/JSX)编写、调试和优化Adobe Illustrator自动化脚本。在创建或修改操作…的脚本时使用。
official
agent-governance
github
声明式策略、意图分类及审计追踪,用于控制AI代理工具访问与行为。可组合的治理策略定义允许/禁止的工具、内容过滤器、速率限制及审批要求——以配置而非代码形式存储。语义意图分类在执行工具前通过基于模式的信号检测危险提示(数据泄露、权限提升、提示注入)。工具级治理装饰器在函数层面强制执行策略...
official