一個 Agent Skill · 支援 Claude Code、Codex、Cursor、OpenCode、Pi
提一個難題,
收到一頁圖解,
而不是一堵文字牆。
Agent 只寫一份簡短的 Markdown 稿件,skill 自帶的 CLI 把它排成一頁帶圖表、表格和版式的 HTML。模型要寫的 token,只有手寫這頁 HTML 的約 1/8。
- 項目
- Answer me with HTML
- 版本
- 0.5.11
- 許可
- MIT
- 輸出
- 約 1/8 token
- 產物
- 1 個 .html,離線可看
- 適用於
- Claude Code · Codex · Cursor · OpenCode · Pi · DeepSeek Harness
一堵文字牆,還是一頁圖
同一個問題,同一個模型。沒有 skill 時,你得一行一行往下讀,在腦子裡自己拼出全貌;用了 skill,時序圖、狀態圖、對照表和提醒,一眼就能看全。
FIG. 1"講講 TCP 三次握手",兩種回答。
像平時一樣提問就行
| 你說 | 你會得到 |
|---|---|
| "講講 TCP 三次握手" | 時序圖、狀態遷移圖、標誌位對照表 |
| "這個倉庫的模組是怎麼組織的" | 目錄結構樹,加一張模組呼叫關係圖 |
| "Redis 和 Memcached 怎麼選" | 多維對比表,用 ✓ ✗ 標出差異,最後給結論 |
| "這段文案哪裡寫得不好" | 逐句標註,標出問題詞和改法 |
| "Kubernetes 是怎麼發展起來的" | 時間線,關鍵節點高亮 |
| "給快取改造做個方案" | 直接引用檔案裡的真實程式碼,待定的問題做成選項,在頁面上就能回答 |
"ls 怎麼看隱藏檔案" | 不出頁面。一句話能說清的問題照常回答 |
模型只寫內容,畫圖交給 CLI
讓模型直接寫 HTML,每一行 CSS、每一層 div、每一個 SVG 座標都得它一個字一個字打出來,而你等的正是這些輸出 token。這裡模型只寫內容,剩下的都由 CLI 完成。
模型寫的
---
title: TCP 三次握手與四次揮手
---
## A 三次握手 {span=2}
```sequence num
客戶端 -> 伺服器: SYN, seq=x
伺服器 -> 客戶端: SYN+ACK, seq=y, ack=x+1
客戶端 -> 伺服器: ACK, ack=y+1
note 客戶端, 伺服器: ESTABLISHED
```
## C 狀態遷移 {span=2}
```flow LR
(CLOSED) -> LISTEN: 被動打開
LISTEN -> SYN_RCVD: 收 SYN / 發 SYN+ACK
SYN_RCVD -> *ESTABLISHED: 收 ACK
```
CLI 替它寫的
- CSS 33.3 KB
- 頁面指令碼 34.4 KB
- SVG 8.5 KB
- HTML 8.1 KB
- 46×
- 頁面比稿件多出的體量,一個字都不用模型來寫
- 361
- 個 SVG 座標,由佈局程式碼算出,不靠模型猜
- 282
- 條 CSS 規則,覆蓋主題的亮色和暗色
- 0
- 個網路請求。打開頁面不連 CDN,也不載入外部字體
資料來自完整的 examples/tcp.md(63 行)。
線上試用
這裡跑的就是真實的渲染器,只是封裝成了瀏覽器版。改稿件,頁面跟著你的輸入實時更新。所有內容都留在你本機。
按 Tab 插入兩個空格。先按 Esc 再按 Tab,可以離開編輯器。
CLI 給 Agent 的就是這段報錯:行號、元件名、正確範例都有,Agent 照著改一次就好。
- 渲染
- —
- 大小
- —
- 面板
- —
- 元件
- —
- STE
- —
帶 src= 的程式碼塊會引用真實檔案,只能在 CLI 裡用;本機圖片同理。
元件
Agent 會按資訊的形狀挑元件。每張卡片都是用幾行稿件實時渲染出來的,點一下就能在上面的編輯器裡打開。
每個元件的完整寫法,一條命令就能查到。
am help <component>
三套主題,各有亮暗
同一份稿件,換一套主題實時重新渲染。預設由 CLI 按內容挑:長文用 paper,有圖表用 blueprint。你也可以加自己的主題。
講解影片
Karpathy 說的"理解 LLM 輸出"階梯,最後一級就是講解影片。直接說"給 TCP 握手做個 3b1b 風格的影片"就行。下面就是一個真實的 am video 播放頁。
- 1逐步建構
第 N 句旁白播出時,圖上出現第 N 步,箭頭一筆一筆畫出來。
- 2鏡頭聚焦
旁白裡寫
[Server],鏡頭就推向這個節點並高亮它。 - 3跨場景變形
下一個場景裡同名的節點,會平滑移到新位置,而不是硬切。
- 4配音
設定了密鑰就用 ElevenLabs,否則用系統語音,都沒有就只出字幕。加
--mp4另存 1080p 影片。
範例影片的整份稿件只有 835 個字元,也就是幾百個輸出 token。
只有你要影片時 Agent 才會做。完整語法:am help video。
## 兩端都在等待
```sequence
Client -> Server: SYN
Server -> Client: SYN-ACK
```
> 先是客戶端開口,發一個 SYN,意思是"我想跟你建個連線"。
> [Server] 聽到了,回一個 SYN-ACK:"收到,我這邊也沒問題。"
基準測試
同一個模型、同樣的問題,兩種方式各做一遍:一種讓模型直接寫 HTML,一種用 skill。提速在哪種環境裡都成立,花費則取決於你的環境。
頁面 · 普通的 Claude Code 環境
講解影片 · 手寫播放頁 vs am video
- 環境
- 普通 Claude Code:只有專案設定,沒有 MCP 服務
- 模型
- Claude Sonnet 5.5
- 頁面
- 3 個題目 × 每題 3 次。token 按儲存下來的頁面計數,耗時和花費取中位數
- 影片
- 1 個題目、5 次執行(手寫 3 次,am video 2 次),取中位數。只能看量級,不是精確倍數
STE 受控寫作檢查
ASD-STE100 是一套受控英語,最早用來寫飛機維修手冊,規定很具體:句子要短,一個詞只表達一個意思,步驟用祈使句。CLI 把其中能用機器檢查的部分做成了中英雙語規則,每次渲染都會檢查。拿你自己的文字試試。
- 句長步驟不超過 35 字,描述不超過 45 字,每段最多 6 句
- 用詞"進行優化"直接寫"優化";登陸 → 登入
- 句式一句裡三個以上"的"、"賦能""閉環"這類套話
安裝
本機需要 Node.js 20 或更高版本。不需要 npm install,CLI 已經封裝在 skill 裡了。
把下面這段話粘貼給你的 Agent,Claude Code、Codex、Cursor、OpenCode 都可以:
幫我安裝 Answer me with HTML:讀 https://raw.githubusercontent.com/doggy8088/answer-me-with-html/main/INSTALL.md,照著做。
INSTALL.md 是寫給 Agent 看的:已有安裝會保留,全程不向你提問,最後用 TCP 頁面驗證一遍,給你一份彙報。
在 Claude Code 裡依次執行:
/plugin marketplace add doggy8088/answer-me-with-html /plugin install answer-me-with-html@answer-me-with-html
在終端裡執行,把 skill 裝成 DeepSeek Harness 外掛:
dsh plugin --profile web add github:doggy8088/answer-me-with-html
換成你在用的 profile,自帶的是 web。下一個會話就能用。
它會問你裝到哪個 Agent。安裝器來自 vercel-labs/skills,支援 70 多種 Agent。
npx skills add doggy8088/answer-me-with-html
把 skills/answer-me-with-html 目錄放進你的 Agent 的 skill 目錄。以 Claude Code 為例:
git clone --depth 1 https://github.com/doggy8088/answer-me-with-html.git /tmp/answer-me-with-html cp -R /tmp/answer-me-with-html/skills/answer-me-with-html ~/.claude/skills/answer-me-with-html
其他 Agent 的 skill 目錄:Codex 是 ~/.codex/skills/,Cursor 是 ~/.cursor/skills/,OpenCode 是 ~/.config/opencode/skill/。
- 依賴
- Node.js 20+
- npm install
- 不需要
- 聯網
- 每天查一次新版本,可關閉
- 組態
- 無需組態