
1. 从「做 PPT 到凌晨」到一句话出稿guizang-ppt-skill 到底解决了什么做 PPT 这件事痛点从来不是「不会排版」而是「排版太耗时间」。你要找模板、调字号、对齐文本框、配颜色一套流程下来两三个小时没了内容反而没打磨几遍。更麻烦的是传统 PPT 工具操作的是二进制文件AI Agent 根本没法直接读写——你让 Claude 帮你写内容可以让它帮你把内容变成一份能直接演示的稿子它做不到。guizang-ppt-skill 就是冲着这个场景来的。它是归藏op7418开源的一个 Claude Code Skill核心能力一句话说清让 Claude Code 直接生成可以在浏览器里打开、左右翻页的单文件 HTML 演示文稿。你只需要说一句「帮我做一份瑞士风 PPT」Agent 就会拷贝模板、填充内容、挑选版式、调整文案最后吐出一个 index.html双击就能演示。它为什么能做得稳因为它不是让 AI 自由发挥而是给 AI 一套严格的视觉系统和版式约束。Style A 是电子杂志 × 电子墨水风灵感来自 Monocle 杂志大面积留白、衬线字体、图文交错内置 5 套主题色预设墨水经典、靛蓝瓷、森林墨、牛皮纸、沙丘10 种页面布局。Style B 是瑞士国际主义风16 列 grid、直角色块、1px 发丝线、无阴影无渐变无圆角22 个锁定版式S01 到 S224 套高饱和锚点色克莱因蓝 IKB、柠檬黄、柠檬绿、安全橙。颜色只能从预设里选不能自己填 hex——作者故意这么设计的自由选色太容易翻车。这套约束的价值在于Agent 的产出稳定可控。真放开了让它自己选色排版大概率五颜六色没法看。而 HTML 作为交付物还有个天然优势——它是纯文本Agent 能直接读、改、验证还能用脚本跑版式校验。瑞士风就带了一个校验器node scripts/validate-swiss-deck.mjs path/to/index.html能拦住居中标题、实验版式、SVG 内写字、图片脱离槽位等问题。换句话说它不只是「好看」还可验证。适合谁线下分享、行业内部讲话、私享会、AI 产品发布、demo day——这类场景本来就允许更强的个人风格用它最舒服。大段表格数据、培训课件就别勉强了信息密度和协作需求都撑不起来毕竟它是静态 HTML没法多人同时编辑。但这里有个前提你得先让 Claude Code 能正常调用模型。很多人卡在第一步——API Key 和 Base URL 怎么配。这篇就聚焦这条完整链路从装 Skill 到配好 TaoToken再到真正跑通一次 PPT 生成。2. 前置准备TaoToken 接入 Claude Code 的 Base URL 与 Key 配置Claude Code 默认走 Anthropic 官方接口但国内直连经常不稳定或者你手头只有第三方兼容接口的 Key。TaoToken 提供的是 Anthropic 兼容的 API 端点配置方式就是改两个环境变量ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN。这一步配不对后面 Skill 装得再好也跑不起来。先说清楚要准备什么。你需要一个 TaoToken 的 API Key在控制台的 API Keys 页面创建。地址是 https://taotoken.net/api-keys 登录后点「创建 Key」复制出来的一串就是你的ANTHROPIC_AUTH_TOKEN。注意这个 Key 只在创建时完整显示一次丢了就得重建。Base URL 这块要区分两个地址。官网是 https://taotoken.net/ 但 API 端点不带 UTM 参数直接用 https://taotoken.net/api 。Claude Code 走的是 Anthropic 协议所以配置时填的 Base URL 就是https://taotoken.net/api不要在后面加/v1或者/messagesClaude Code 会自己拼接路径。这一点很多人踩坑——多写一段路径就变成 404。配置方式有两种看你习惯。第一种是临时环境变量适合先测试export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥第二种是写进 shell 配置文件长期生效。如果你用 zshmacOS 默认编辑~/.zshrc如果用 bash编辑~/.bashrcecho export ANTHROPIC_BASE_URLhttps://taotoken.net/api ~/.zshrc echo export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥 ~/.zshrc source ~/.zshrcWindows 用户如果用 PowerShell可以走系统环境变量[Environment]::SetEnvironmentVariable(ANTHROPIC_BASE_URL, https://taotoken.net/api, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_AUTH_TOKEN, sk-你的TaoToken密钥, User)设完要重开终端才生效。验证是否配好可以跑一句echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_AUTH_TOKEN能打印出正确值就说明环境变量生效了。如果打印为空说明配置文件没 source 或者终端没重启。这里有个细节要注意Claude Code 读的是ANTHROPIC_AUTH_TOKEN不是ANTHROPIC_API_KEY。有些教程写的是后者那是给 SDK 用的Claude Code CLI 认的是前者。两个都设上也不冲突但至少保证ANTHROPIC_AUTH_TOKEN有值。另外如果你之前配过其他中转或者官方 Key记得先清理掉旧的ANTHROPIC_BASE_URL否则新配置可能被覆盖。检查方法env | grep ANTHROPIC把所有 ANTHROPIC 开头的变量列出来确认没有多余的旧值。配好之后先别急着装 Skill跑一个最小验证在终端输入claude进入交互模式随便问一句「你好请回复 OK」。如果模型正常返回说明 Base URL 和 Key 都通了。如果报 401说明 Key 无效或者没读到如果报连接超时说明 Base URL 写错了或者网络有问题。这一步过了再往下走。3. 可复制配置settings.json 与 Skill 安装的完整片段Claude Code 除了读环境变量还支持项目级的settings.json配置文件。这个文件放在项目根目录的.claude/settings.json或者用户级的~/.claude/settings.json。项目级配置优先级更高适合给不同项目配不同的 Key。如果你想让 guizang-ppt-skill 在特定项目里跑推荐用项目级配置。先建目录和文件mkdir -p .claude touch .claude/settings.json然后写入以下内容。注意 JSON 格式不能有注释路径和字段名要和原文一致{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥 }, permissions: { allow: [ Bash(node scripts/validate-swiss-deck.mjs:*), Read, Write, Edit ] } }这里env字段就是给 Claude Code 进程注入环境变量效果和 export 一样但只在这个项目里生效。permissions.allow是提前授权一些常用操作避免每次生成 PPT 时 Claude Code 反复问你「是否允许执行这个命令」。Bash(node scripts/validate-swiss-deck.mjs:*)这一条是专门给瑞士风校验器放行的通配符*表示允许带任意参数。如果你用的是 Codex 环境配置方式不同走的是~/.codex/auth.json。这个文件结构长这样{ OPENAI_API_KEY: sk-你的TaoToken密钥, OPENAI_BASE_URL: https://taotoken.net/api }注意 Codex 读的是OPENAI_前缀不是ANTHROPIC_。如果你两个环境都用建议分开配别混在一个文件里。配好 settings.json 后装 Skill。官方给了一行命令npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill这条命令会自动把 Skill 克隆到~/.claude/skills/guizang-ppt-skill。如果 npx 跑不动或者你想手动控制安装位置可以直接 git clonegit clone https://github.com/op7418/guizang-ppt-skill ~/.claude/skills/guizang-ppt-skill装完检查三个关键目录是否存在ls ~/.claude/skills/guizang-ppt-skill/SKILL.md ls ~/.claude/skills/guizang-ppt-skill/assets/ ls ~/.claude/skills/guizang-ppt-skill/references/SKILL.md是 Skill 的入口描述文件Claude Code 靠它识别这个 Skill 能干什么、什么时候触发。assets/放的是模板和主题色资源references/放的是版式参考和 checklist。这三个缺一个Skill 都可能跑不起来。如果你更习惯让 Claude Code 自己装可以把这段话直接丢给它帮我安装 guizang-ppt-skill。请把 https://github.com/op7418/guizang-ppt-skill 克隆到 ~/.claude/skills/guizang-ppt-skill安装完成后检查 SKILL.md、assets/、references/ 是否存在。Claude Code 会自己执行 git clone 并做检查。这种方式的好处是它会顺便帮你确认目录结构坏处是如果网络有问题它可能卡在 clone 那一步。装完之后Skill 不会自动触发需要你在对话里提到相关关键词比如「做一份杂志风 PPT」「帮我生成瑞士风演示文稿」。Claude Code 读到这些词会去~/.claude/skills/里找匹配的 Skill然后加载SKILL.md里的指令。这里有个容易忽略的点Skill 的触发依赖 Claude Code 的 Skill 发现机制。如果你装了但没反应先确认 Claude Code 版本是否支持 Skill 功能。跑claude --version看一下太老的版本可能没有这个能力。另外~/.claude/skills/这个路径是固定的别装到别的地方去。配置和安装都完成后建议先跑一个空转测试在项目目录下输入claude然后说「列出你可用的 skills」。如果 guizang-ppt-skill 出现在列表里说明安装成功。如果没出现检查SKILL.md是否存在且格式正确。4. 验证请求从一句话到一份可演示 HTML 的完整过程配置和安装都到位后真正跑一次生成流程。这一步的目标是验证整条链路Claude Code 能读到 TaoToken 的 Key、能加载 Skill、能生成 HTML、能通过校验。先准备一份输入素材。guizang-ppt-skill 最舒服的用法是给它一篇长文章或者 Markdown 文档让它自动提炼。你可以拿自己写过的技术笔记、产品分析、分享提纲存成input.md放在项目目录下。内容不用很规整Agent 会自己梳理结构。然后进入 Claude Codeclaude在交互界面里输入指令。指令要包含三个要素风格、页数、素材来源。比如帮我用 guizang-ppt-skill 做一份瑞士风 PPT8 页左右素材在 input.md 里。受众是技术团队时长 15 分钟。Claude Code 收到指令后会先加载 Skill 的SKILL.md读取里面的工作流定义。按照 Skill 的设计它会问你 7 个澄清问题风格、受众、时长、素材、图片需求、主题色、硬约束。如果你在指令里已经说清楚了它会跳过重复提问直接进入生成。生成阶段Agent 会做几件事拷贝模板到工作目录、读取 input.md 提炼核心观点、按 22 个锁定版式里挑合适的布局、填充文案、调整字号和间距。这个过程可能需要一两分钟取决于内容长度和模型响应速度。生成完成后你会得到一个index.html文件。先跑校验器node scripts/validate-swiss-deck.mjs index.html如果输出类似All checks passed说明版式合规。如果报错比如Centered title detected on page 3说明某页标题居中了瑞士风不允许居中标题需要让 Agent 改。校验器能拦住的问题包括居中标题、实验版式、SVG 内写字、图片脱离槽位。校验通过后直接用浏览器打开open index.htmlmacOS 用openWindows 用startLinux 用xdg-open。打开后你应该能看到一份完整的演示文稿支持键盘左右箭头翻页、触屏滑动、ESC 呼出索引、底部圆点导航。如果生成过程中报错最常见的几种情况第一种是401 Unauthorized。这说明 TaoToken 的 Key 没读到或者无效。检查echo $ANTHROPIC_AUTH_TOKEN是否有值以及 settings.json 里的 Key 是否复制完整。Key 通常以sk-开头长度比较长容易漏字符。第二种是local proxy failed或者连接超时。这说明 Base URL 写错了。确认是https://taotoken.net/api不要加/v1不要加/messages。如果公司网络有特殊限制可能需要检查网络配置。第三种是reading choices相关报错。这通常是模型返回格式不符合预期可能是 Base URL 指向的端点不支持 Anthropic 协议。TaoToken 的/api端点是兼容 Anthropic 的如果你填了别的路径可能返回的是 OpenAI 格式Claude Code 解析不了。第四种是 Skill 没触发。你说了「做 PPT」但 Claude Code 没调用 guizang-ppt-skill。检查~/.claude/skills/guizang-ppt-skill/SKILL.md是否存在以及 Claude Code 版本是否支持 Skill。可以试着在指令里明确说「使用 guizang-ppt-skill」。跑通一次之后后续就简单了。你给它一篇长文章说「帮我做成 8 页左右的瑞士风 PPT」它会自动提炼核心观点、分配页面节奏、挑选合适布局然后直接生成。你不用管文本框放哪里、字号多少、颜色怎么配——这些都在模板和约束规则里定义好了。5. 常见报错排查401、local proxy failed、reading choices 与 OAuth 问题这一节把实际跑的时候最容易撞上的几类报错拆开讲。每个都给出触发原因和具体动作你对着改就行。401 Unauthorized / invalid api key这是最高频的一个。表现是 Claude Code 一启动就报 401或者第一次请求就失败。原因基本是 Key 没读到、Key 无效、或者 Key 被覆盖。先确认环境变量echo $ANTHROPIC_AUTH_TOKEN如果输出为空说明 shell 配置没生效。检查~/.zshrc或~/.bashrc里有没有写对写完要source或者重开终端。如果输出有值但仍然是 401去 TaoToken 控制台确认这个 Key 是否还在、是否被禁用。地址是 https://taotoken.net/api-keys 。还有一种情况是 settings.json 和环境变量冲突。Claude Code 的优先级是项目级 settings.json 用户级 settings.json 环境变量。如果你在 settings.json 里写了一个旧 Key环境变量里的新 Key 不会生效。检查.claude/settings.json里的ANTHROPIC_AUTH_TOKEN值。local proxy failed / connection refused / timeout这个报错说明 Claude Code 连不上 Base URL。原因通常是 Base URL 写错、网络不通、或者端点路径不对。先确认 Base URLecho $ANTHROPIC_BASE_URL正确值应该是https://taotoken.net/api。如果你写成了https://taotoken.net/api/v1或者https://taotoken.net/api/messages都会导致路径拼接错误。Claude Code 会自己在 Base URL 后面拼/v1/messages你多写一段就变成/api/v1/v1/messages直接 404。如果 Base URL 正确但还是超时用 curl 测一下端点连通性curl -I https://taotoken.net/api能返回 HTTP 状态码说明网络通。如果 curl 也超时说明是网络层问题检查本机网络配置。reading choices / unexpected response format这个报错通常出现在模型返回了非 Anthropic 格式的响应。Claude Code 期望的是 Anthropic Messages API 格式如果你配的 Base URL 指向了一个 OpenAI 兼容端点返回结构不一样Claude Code 解析choices字段就会失败。确认你用的是https://taotoken.net/api这个端点是 Anthropic 兼容的。如果你之前配过 OpenAI 兼容的地址改回来。另外检查 settings.json 里有没有混入OPENAI_BASE_URL之类的字段Claude Code 不读这个。OAuth / authentication flow 相关报错Claude Code 某些版本会尝试走 OAuth 登录流程如果你用的是 API Key 模式可能会看到 OAuth 相关的提示。这种情况下确认你没有同时启用 OAuth 和 API Key。检查~/.claude/目录下有没有credentials.json之类的 OAuth 缓存文件有的话先移走mv ~/.claude/credentials.json ~/.claude/credentials.json.bak然后重新用 API Key 模式启动。如果还是报 OAuth 错误检查 Claude Code 版本太老的版本可能不支持纯 API Key 模式升级到最新版。Skill 不触发 / SKILL.md not found你说了「做 PPT」但 Claude Code 没调用 Skill。先确认 Skill 装对了位置ls ~/.claude/skills/guizang-ppt-skill/SKILL.md如果文件不存在重新装。如果存在但没触发检查SKILL.md里的触发关键词是否和你的指令匹配。guizang-ppt-skill 的触发词包括「PPT」「演示文稿」「slides」「杂志风」「瑞士风」等。你可以直接在指令里说「使用 guizang-ppt-skill 做一份 PPT」强制指定。还有一个可能是 Claude Code 的 Skill 功能没开启。跑claude --version确认版本然后在交互模式里输入/skills看看能不能列出已安装的 Skill。如果这个命令不存在说明你的版本不支持 Skill需要升级。生成成功但校验器报错validate-swiss-deck.mjs报错说明版式不合规。常见的有居中标题、图片脱离槽位、SVG 内写字。这些不是配置问题是生成内容的问题。把报错信息贴给 Claude Code让它改校验器报了 Centered title detected on page 3请修正这一页的标题对齐方式。Agent 会重新读模板规则调整对应页面。改完再跑一次校验器直到通过。6. 把 PPT 交给 Agent 之后长期编码与 Agent 工作流的接入建议跑通一次生成之后你会发现这套流程的价值不只是「省了排版时间」。它真正改变的是工作方式你把内容生产的最后一公里——从文字到可演示的稿子——也交给了 Agent。这意味着你可以把精力集中在观点打磨上而不是在 PowerPoint 里拖文本框。如果你打算长期用这套组合有几个实践建议。第一把 TaoToken 的配置固化到项目模板里。每次新建一个分享项目先复制一份.claude/settings.jsonKey 用环境变量引用而不是硬编码。这样既方便又不会把 Key 提交到 git。可以在.gitignore里加上.claude/settings.local.json把敏感配置隔离出去。第二给不同类型的分享建不同的 Skill 调用模板。比如技术分享用瑞士风个人故事用杂志风产品发布用瑞士风加配图。你可以把这些指令存成 snippet每次直接粘贴省去重复描述。第三善用校验器。瑞士风的validate-swiss-deck.mjs是质量兜底每次生成后都跑一遍。杂志风虽然没有校验器但可以对照references/checklist.md人工过一遍。质量稳定的前提是约束稳定。第四如果你同时用 Claude Code 和 Codex注意两边的配置是分开的。Claude Code 读ANTHROPIC_前缀Codex 读OPENAI_前缀。TaoToken 的 API 端点两边都兼容但配置文件要各写各的。Codex 那边走~/.codex/auth.json字段是OPENAI_API_KEY和OPENAI_BASE_URL。第五长期高频使用的话关注一下 Coding Plan。TaoToken 的 Coding Plan 是包月制的适合每天都要跑 Agent 的场景。地址是 https://taotoken.net/coding-plan 。如果你只是偶尔做几份 PPT按量付费的 API Key 就够了。第六模型选择上Claude Code 默认会用一个通用模型。如果你发现生成 PPT 时文案提炼不够精准可以在指令里指定用更强的模型。TaoToken 的模型对话页面可以测试不同模型的效果地址是 https://taotoken.net/chat 。先在那里试好再回到 Claude Code 里用。第七接入文档值得通读一遍。TaoToken 的文档页 https://taotoken.net/doc 里有完整的端点说明、参数列表、错误码解释。遇到报错先查文档比到处搜教程快。最后说一个实际体验这套流程最爽的地方在于你给它一篇长文章说「帮我做成 8 页左右的瑞士风 PPT」它会自动提炼核心观点、分配页面节奏、挑选合适布局然后直接生成。你不用管文本框放哪里、字号多少、颜色怎么配。下次要做分享直接说一句「帮我做一份瑞士风 PPT」就行。装一个试试的成本几乎为零而省下来的时间够你多打磨两遍内容。