开发者用Claude Code结合Stockfish分析Lichess对局,生成带语音注释的视频,每次分析约消耗15美元API费用。
展示 HN:一款分析棋局的 Claude Code skill
让你的棋局变成一份真正可读的复盘报告:用通俗语言解释你的失误,并对照 Stockfish 进行验证,还能生成全棋局的带解说视频。
编辑:没想到竟然冲上了 HackerNews 头版。相关讨论可以去这里看:https://news.ycombinator.com/item?id=49857528
我真该选一盘没有在自己这边走出大昏招的棋局,哈哈。
如果上方播放器无法加载(需要 GitHub 登录),可以直接下载 mp4 查看(10 MB)。
时长 6 分 49 秒,英文解说,带字幕。
这是我的一盘真实对局: lichess 上的 15+10 快棋(棋谱 ID:5KmlrdyT),执白,对阵纳道尔夫变例的西西里防御,段位约 1700。对局过程中我用手机录下了自己大声思考的过程(法语),旁边放着棋盘。对局结束后,我把 lichess 链接和 mp3 音频一起交给了 Claude。
Claude 先用 whisper.cpp 在本地转写音频,再根据 PGN 中的时钟时间将每句话对应到我做出那步决策的时刻。所以视频里说"第八步时你在想象 bishop 应该放在 c4 还是 e2",那确实是我自己当时的疑问,再由引擎给出回答。视频里展示的所有内容(转写稿、Stockfish 全局扫描、标注版 PGN、分镜脚本)都在 examples/game-010/ 目录下。
Stockfish 的分析给你数字和变化图。它读起来毫无乐趣,而且往往不会告诉你为什么——走出那步之后显示 -1.8,然后甩给你一条 12 步的变化图,而你在实际对局中根本想不到那里去。
我意识到 Claude 可以直接驱动 Stockfish。它向引擎提出人类会问的问题("我走的这步为什么不成立?""如果黑方直接吃子会怎样?"),一直追问到答案合理为止,然后用人类的语言写下来。而且因为它知道我在对局中实际在想什么,所以能反驳我真正的思路,而不是猜一个。由于它了解我的想法,分析完成后我可以继续就任何局面提问题,它会先让引擎验证再回答。
适合,如果:
你想从慢棋或快棋对局中真正学到东西,而不是光看胜率曲线哪里塌了;
你愿意在本地运行 Claude Code;
你愿意在对局时做笔记或出声思考(可选,但这是让结果变得有价值的关键)。
不适合,如果:
你只是想快速复盘一盘闪电战。 Lichess 或 chess.com 的分析几秒就搞定。
需要时间。完整运行(全局扫描、深度分析、棋谱标注、视频生成)大约需要一个小时的计算时间。用在那些你认真思考过的对局上,不要每盘棋都用。
强烈建议你提供整盘棋的文字笔记或录音。有了这些,你能得到的是对你思路的复盘——哪些担忧是有道理的、哪些计划是可行的、你问了什么问题以及答案是什么。没有的话也能得到不错的引擎解析。
AI 仍然可能出错。每一条结论都会对照 Stockfish 验证,还会有一轮核查重新检查结果,根据我的经验错误很罕见。如果你觉得哪里不对劲,可以让 Claude 用引擎再查那个局面。
skill 是写给 Claude 看的,所以 SKILL.md 文件本身兼作文档。先从 skills/chess-analysis/SKILL.md 开始。
将 skill 文件夹复制(或符号链接)到你的项目 .claude/skills/ 目录下,或者放到 ~/.claude/skills/ 让所有项目都能用:
git clone https://github.com/brumar/chess-postmortem-skills
cp -r chess-postmortem-skills/skills/* ~/.claude/skills/
然后对 Claude 说类似"analyze this game: "或"make a video of game 010"这样的话。
你不需要手动安装这些依赖。Claude Code 大概率可以直接帮你安装:让它"install the dependencies for the chess skills",它会读取下面的依赖列表和 SKILL.md 文件。
Python venv,里面装 python-chess、cairosvg(用于分析),外加 pillow;视频部分需要 piper-tts。 Skill 假设仓库根目录有 .venv-chess,不存在的话会自动创建。
scripts/get_stockfish.sh 会优先用 $STOCKFISH 或 PATH 中的版本,否则下载官方 Linux 二进制文件。
ffmpeg,以及一个 piper 语音(下载命令在 chess-video/SKILL.md 里)。
whisper.cpp 用于出声思考的语音转文字。
游戏文件放在你运行 Claude 的项目根目录下的 chess-games/ 文件夹中(games/、boards/、video/)。
每条评论都会根据读者水平来措辞(annotations.json 里的 audience.level)。对你自己的对局,告诉 Claude 你的水平一次并让它记住,可以写在 CLAUDE.md 里:
My lichess handle is <handle>. Write chess analysis for a 1800 player.
不告诉的话, skill 会用被复盘那方的 PGN Elo,找不到或 Elo 是临时的时候就提示询问。
game 010
要重新生成视频的话,把 piper 语音下载到 examples/game-010/video/voices/,然后在分镜脚本上运行 make_video.py。
MIT, vendored 的 chess.js 除外(BSD 2-Clause),cburnett 棋子图形集除外(CC BY-SA / GFDL)。详见 LICENSE。