Claude 草稿本 (whiteboard)
本機白板,作為共同草稿本:使用者繪製想法,Claude 在本機分析後回答並繪製到白板上。
程式碼位於此技能目錄中;以下 WB 為包含此檔案之目錄的路徑。
啟動
export WB_DATA="$PWD/.whiteboard" # 可選:為目前專案設定專屬白板(預設:WB/data)
WB/wb start [--port 8765] # 自動建立 .venv (python3 -m venv --without-pip),無需外部套件
- 提供使用者 URL (
http://127.0.0.1:8765),然後在背景執行WB/wb wait --timeout 3300(run_in_background)。 - 若設定了
WB_DATA,則對所有後續的wb指令都必須設定相同的值(直接在指令中設定:WB_DATA=... WB/wb ...)。 - 若在 git 儲存庫內使用
WB_DATA,請將.whiteboard/加入.gitignore。
服務循環
- 當
wait以回傳碼 0 結束時:讀取輸出。輸出包含問題、框選的區域、區域內的項目(含足夠的文字內容)以及 PNG 路徑(如有)。 - 僅在輸出列出 PNG 時才開啟該 PNG(僅當區域包含手繪線條、框架、箭頭或形狀時才有 PNG)。不要讀取整個白板;如需更多上下文,請使用
wb look X Y W H或wb item ID。 - 必要時在本機進行處理:讀取檔案、執行腳本、計算。
- 使用
wb reply --file F --done回覆,並在有益的情況下在白板上繪圖(請參閱下方說明)。 - 在背景再次執行
wait。回傳碼 2 表示逾時,無要求:只需重新執行wait,無需通知使用者。
當使用者想要停止時:WB/wb stop。
回覆規則
- 所有數學公式必須使用 LaTeX (
$…$行內,$$…$$展示),無論是在對話中還是在白板上。頁面使用 MathJax 渲染,預設巨集:\Adv。 - 多行文字或包含
$的文字,請寫入暫存目錄中的檔案,然後透過--file傳遞,以避免 shell 的 quoting 錯誤。 - 內容為輕量 Markdown:
**粗體**、*斜體*、`程式碼`、列表、表格|…|。 - Claude 建立的項目預設為紫色,並自動放置在正在處理的區域旁;使用
--at x,y放置在其他位置。
繪圖指令
| 指令 | 用途 |
|---|---|
wb note [TEXT|--file F] [--color C] [--at x,y] [--w W] | 卡片式筆記 (Markdown + LaTeX) |
wb tex [TEXT|--file F] [--size N] | 無邊框文字或公式 |
wb svg --file F --title T [--w W --h H] | 圖表、圖形、插圖 (SVG) |
wb rect X Y W H, wb arrow X Y DX DY | 白板原生框架、箭頭 |
wb patch ID [--text|--file|--svgfile|--at|--color], wb rm ID… | 修改、刪除 |
wb show [RID] [--pending], wb done [RID] | 檢視或關閉要求 |
筆記顏色:yellow, pink, sky, mint, violet。線條顏色 (rect, arrow):ink, red, blue, green, amber, violet。
節省 token 的 SVG 繪圖
- SVG 圖形透過
<img>顯示(安全,不執行腳本),因此 SVG 內部的 LaTeX 不會被渲染。如需公式,請使用 SVG 繪製框架和箭頭,然後在上面放置tex項目。 - 圖表或多點圖形:使用簡短的 Python 腳本產生 SVG,不要手動編寫座標。此時成本僅為腳本長度,與點數無關。
- 使用
<style>、<defs>和<marker>,對座標進行四捨五入。如果只需要幾個框架和箭頭,請使用rect/arrow。 - 讀取 SVG 幾乎免費:
wait僅為每個 SVG 圖形輸出一行描述,不會輸出原始碼。
架構與 API 詳細資訊:WB/docs/。