[{"content":"起因 今天我在手机上通过微信跟一个 AI 机器人聊天，让它帮我：\n写了 4 个小游戏（打飞机、打坦克、逃离迷宫、人脸识别互动） 搭建并部署了个人博客（Hugo + GitHub Pages） 把博客管理流程整理成了可复用的 Skill 还顺手修了一堆坑 整个过程没有碰电脑——全靠手机上的微信语音/文字对话完成。\n技术架构 整个系统由以下几个核心组件组成：\n┌─────────────┐ WebSocket ┌──────────────┐ │ 微信 App │ ◄──────────────► │ ClawBot │ │ (发送消息) │ │ (微信插件) │ └─────────────┘ └──────┬───────┘ │ 长连接 ▼ ┌──────────────────┐ │ CodeBuddy │ │ (AI 编程助手) │ │ │ │ ┌─────────────┐ │ │ │ LLM (GLM-5v) │ │ │ └─────────────┘ │ │ ┌─────────────┐ │ │ │ Tool 执行引擎 │ │ │ └─────────────┘ │ └─────────┬────────┘ │ Shell / Node.js ┌───────────────────┼───────────────────┐ │ │ │ ┌───────▼───────┐ ┌──────▼──────┐ ┌──────▼──────┐ │ Termux │ │ Git/GitHub │ │ HTTP Server │ │ │ │ │ │ │ │ • 文件读写 │ │ • 克隆仓库 │ │ • 本地游戏 │ │ • 进程管理 │ │ • 提交推送 │ │ 服务 │ │ • 网络工具 │ │ • SSH 密钥 │ │ │ │ • 包管理(pkg) │ │ │ │ │ └───────────────┘ └──────────────┘ └──────────────┘ 核心组件详解 1. Termux — Android 终端神器 Termux 是一个 Android 终端模拟器，提供完整的 Linux 环境：\n# 在手机上安装完整开发环境 pkg install nodejs git hugo python openssh # 运行任何 Linux 命令 ssh git@github.com # SSH 连接 node server.js # 启动服务 hugo --minify # 构建静态站点 git push origin master # 推送代码 关键能力：\n无需 root 权限运行 Linux 命令 支持安装 npm/pip/pkg 包 可以运行 Node.js、Python、Go 等运行时 支持 SSH/Git 操作 2. CodeBuddy — AI 编程助手 CodeBuddy 是核心大脑，它具备：\nLLM 对话能力：使用 GLM-5v-Turbo 模型（支持多模态） 工具调用：能执行文件读写、Shell 命令、Git 操作等 Skill 系统：可扩展的技能模块（类似插件） Gateway 服务：暴露 HTTP API 供外部调用 3. WeChat ClawBot — 微信桥梁 ClawBot 是微信的一个插件/机器人框架：\n通过长连接与 CodeBuddy Gateway 通信 将微信消息转发给 AI 处理 把 AI 的回复发回微信 支持文字、语音转文字、图片等多媒体 4. Serveo 隧道 — 公网访问 由于 Android 手机通常在 NAT 后面，外部无法直接访问：\n# SSH 反向隧道，将本地端口暴露到公网 autossh -M 0 -o ServerAliveInterval=30 \\ -R 80:127.0.0.1:33525 serveo.net 注：cloudflared 在 Termux 上不可用（DNS 解析问题），改用 serveo。\n网络拓扑 手机 (Android/Termux) ├── rmnet_data2: 10.x.x.x (移动数据, 用于对外服务) ├── wlan0: 192.168.110.64 (WiFi) │ ├── CodeBuddy Gateway :46523 │ ├── WeChat ClawBot ←→ WebSocket ←→ 微信 │ ├── HTTP API (/api/v1/runs) │ └── Web UI │ ├── 游戏服务器 :8899 (Node.js HTTP) │ └── 访问地址: http://10.x.x.x:8899/ │ ├── Stock Bot Daemon (定时任务) │ └── cron 推送到微信 │ └── Serveo Tunnel → 公网 URL 实战：今天做了什么 小游戏开发 通过微信对话，我让 AI 写了 4 个纯前端游戏：\n游戏 技术点 行数 打飞机 Canvas 2D、粒子系统、波次递进 ~300 打坦克 Canvas 绘制坦克、虚拟摇杆、碰撞检测、AI 敌人 ~350 逃离迷宫 递归回溯算法生成迷宫、D-Pad 控制、闯关模式 ~280 人脸互动 getUserMedia 调用摄像头、肤色检测追踪、多游戏模式 ~400 每个游戏的开发流程：\n用户(微信) → \u0026#34;写个打飞机游戏\u0026#34; → CodeBuddy 生成 HTML/CSS/JS → 写入 ~/work/plane-game.html → 启动 Node.js HTTP 服务器 (:8899) → 获取 rmnet_data2 的 IP 地址 → 回复用户访问链接 http://10.x.x.x:8899/plane-game.html → 用户在手机浏览器打开游玩 博客搭建 从零到上线：\n1. 安装 Hugo: pkg install hugo 2. 克隆仓库: git clone git@github.com:mikilangkilo/mikilangkilo.github.io.git 3. 本地构建: hugo --minify 4. 推送部署: git push origin master 5. 解决 404: 添加 .nojekyll 文件 6. 修复 Actions: 升级 Hugo 版本到 0.140.1 7. 新增文章: 编辑 content/posts/ 8. 创建 Skill: blog-manager.md 踩过的坑：\n问题 原因 解决方案 Pages 404 Jekyll 过滤中文路径 .nojekyll 文件 Actions 构建失败 Hugo 版本过旧 升级 + 用 peaceiris action 当天文章不显示 buildFuture 默认 false 配置 buildFuture: true 手机按钮点击无效 touch-action:none 阻止事件 改用 touchend 监听 Skill 化管理 将博客操作封装为 Skill（blog-manager.md），包含：\n完整的目录结构和文件说明 写文章的标准模板和流程 构建部署的一键命令 常见问题 FAQ 运行日志记录表 以后只需说\u0026quot;写篇文章\u0026quot;，AI 就按 Skill 流程自动完成全部操作。\n为什么这个方案有意思 1. 纯移动端开发 传统开发需要电脑 + IDE + 浏览器调试。这套方案把整个开发链路搬到了手机上：\n电脑: IDE → 终端 → 浏览器 → Git → 部署 手机: 微信对话 → CodeBuddy → Termux → 自动化 2. 自然语言编程 不需要懂具体语法：\n\u0026ldquo;写个打坦克的游戏\u0026rdquo; → 生成 350 行游戏代码 \u0026ldquo;帮我部署博客\u0026rdquo; → 执行完整的 CI/CD 流程 \u0026ldquo;把这个做成 Skill\u0026rdquo; → 生成结构化的技能文档 3. 多模态交互 支持多种输入方式：\n文字: 直接打字或粘贴需求 语音: 微信语音消息自动转文字 图片: 可以发送截图让 AI 分析 局限性 当然这套方案也有局限：\n方面 限制 性能 手机 CPU/内存有限，不适合大型项目 屏幕 手机屏幕小，代码审查效率低 网络 移动数据不稳定，SSH 隧道可能断连 权限 非 root 环境，某些系统级操作受限 时效 LLM 响应有延迟，不适合实时调试 适合的场景：轻量开发、脚本编写、博客维护、小游戏、自动化任务。\n总结 一台 Android 手机 + Termux + WeChat ClawBot + CodeBuddy，就能构成一个完整的「口袋开发环境」：\n输入端：微信（随时随地） 处理端：CodeBuddy AI（理解意图、调用工具） 执行端：Termux（Linux 环境） 展示端：浏览器（游戏）/ GitHub Pages（博客） 这不是替代电脑开发的方案，而是一种补充——当你不在电脑前，但有个想法想立刻实现时，掏出手机跟微信里的 AI 聊几句就够了。\n本文由 CodeBuddy (GLM-5v-Turbo) 在 Termux 环境下撰写，通过 WeChat ClawBot 发布到博客。\n","permalink":"https://mikilangkilo.github.io/posts/wechat-coding-on-phone/","summary":"一台 Android 手机 + Termux + WeChat ClawBot + CodeBuddy，就能实现随时随地通过微信对话来写代码、管理博客、开发小游戏。本文记录整套技术方案的架构和实战体验。","title":"用手机微信 AI 机器人写代码、搭博客、做游戏"},{"content":"为什么选 Hugo？ 在 Android 手机（Termux）上写博客，Hugo 是最佳选择：\n纯静态：不需要数据库，不需要服务器运行时 构建快：几百篇文章也能秒级生成 主题丰富：PaperMod 主题美观且功能齐全 Markdown 写作：专注内容，不用管样式 技术栈 组件 选型 静态生成器 Hugo 0.161.1 主题 PaperMod 托管 GitHub Pages 域名 mikilangkilo.github.io 运行环境 Termux on Android 踩过的坑 1. GitHub Pages 404 仓库配置了 Deploy from branch → master / root，但一直返回 404。\n原因：GitHub Pages 默认启用 Jekyll 处理，中文目录名（如 分类/、标签/）被 Jekyll 过滤掉。\n解决：在根目录添加 .nojekyll 文件：\necho \u0026#34;\u0026#34; \u0026gt; .nojekyll git add .nojekyll \u0026amp;\u0026amp; git push 2. GitHub Actions 构建失败 原始 workflow 配置的 Hugo 版本过旧（0.125），安装方式不兼容。\n修复：\n升级到 Hugo 0.140.1 使用 peaceiris/actions-hugo@v3 安装 Dart Sass 改用 npm 安装 3. 用户主页仓库的部署方式 username.github.io 这类用户主页仓库比较特殊：\n如果用 GitHub Actions 部署，需要在 Settings → Pages 中选择 Source 为 GitHub Actions 如果直接推送静态文件，Source 选择 Deploy from a branch → master → / (root) 两种方式不能混用，否则容易出问题 博客目录结构 mikilangkilo.github.io/ ├── .nojekyll # 关键！禁用Jekyll处理 ├── hugo.yml # Hugo配置 ├── content/ │ ├── about/index.md # 关于页面 │ └── posts/ # Markdown文章 ├── themes/PaperMod/ # 主题 └── public/ # 构建输出(不推送) 在 Termux 上管理博客 所有操作都可以在手机上完成：\n# 安装工具链 pkg install hugo git # 克隆仓库 git clone git@github.com:mikilangkilo/mikilangkilo.github.io.git ~/work/blog # 写文章（编辑 content/posts/xxx.md） # 本地预览 cd ~/work/blog \u0026amp;\u0026amp; hugo server --bind 0.0.0.0 # 构建并部署 hugo --minify cp -r public/* . rm -rf public git add -A \u0026amp;\u0026amp; git commit -m \u0026#34;new post\u0026#34; \u0026amp;\u0026amp; git push origin master 后续计划 配置自定义域名 接入评论系统（Giscus） 添加 Google Analytics 图片懒加载和优化 ","permalink":"https://mikilangkilo.github.io/posts/hugo-blog-setup/","summary":"在 Termux (Android) 环境下使用 Hugo 静态站点生成器搭建个人技术博客，部署到 GitHub Pages。","title":"用 Hugo + GitHub Pages 搭建个人博客"},{"content":"欢迎来到我的新博客 这是使用 Hugo 搭建的新博客。\n博客特点 使用 Hugo 静态生成 使用 PaperMod 主题 部署在 GitHub Pages package main import \u0026#34;fmt\u0026#34; func main() { fmt.Println(\u0026#34;Hello, Hugo!\u0026#34;) } 更多内容敬请期待\u0026hellip;\n","permalink":"https://mikilangkilo.github.io/posts/my-first-post/","summary":"\u003ch2 id=\"欢迎来到我的新博客\"\u003e欢迎来到我的新博客\u003c/h2\u003e\n\u003cp\u003e这是使用 Hugo 搭建的新博客。\u003c/p\u003e\n\u003ch3 id=\"博客特点\"\u003e博客特点\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e使用 Hugo 静态生成\u003c/li\u003e\n\u003cli\u003e使用 PaperMod 主题\u003c/li\u003e\n\u003cli\u003e部署在 GitHub Pages\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;fmt\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003efmt\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ePrintln\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Hello, Hugo!\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e更多内容敬请期待\u0026hellip;\u003c/p\u003e","title":"我的第一篇文章"},{"content":"关于我 你好，我是殷鹏程，一名Android开发者。\n联系方式 GitHub: mikilangkilo Email: 913925047@qq.com ","permalink":"https://mikilangkilo.github.io/about/","summary":"\u003ch2 id=\"关于我\"\u003e关于我\u003c/h2\u003e\n\u003cp\u003e你好，我是殷鹏程，一名Android开发者。\u003c/p\u003e\n\u003ch2 id=\"联系方式\"\u003e联系方式\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGitHub: \u003ca href=\"https://github.com/mikilangkilo\"\u003emikilangkilo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmail: \u003ca href=\"mailto:913925047@qq.com\"\u003e913925047@qq.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"关于我"},{"content":"博客管理 Skill 基本信息 博客地址: https://mikilangkilo.github.io 仓库: git@github.com:mikilangkilo/mikilangkilo.github.io.git 本地路径: ~/work/blog/ 框架: Hugo + PaperMod 主题 作者: 殷鹏程 语言: 中文 (zh-cn) 部署方式: GitHub Pages (master 分支, root 目录) 重要: 必须保留 .nojekyll 文件（否则中文目录名导致404） 目录结构 ~/work/blog/ # 本地仓库根目录 ├── .nojekyll # 必须！禁用Jekyll ├── .gitignore ├── .github/workflows/hugo.yml # GitHub Actions（备用） ├── hugo.yml # Hugo配置文件 ├── content/ # 文章内容 │ ├── about/ # 关于页面 │ │ └── index.md │ └── posts/ # 文章目录 │ ├── my-first-post.md │ └── 新文章.md # 新文章放这里 ├── themes/PaperMod/ # 主题（git submodule） └── public/ # 构建输出（.gitignore忽略，不推送） 写新文章流程 1. 创建文章 cd ~/work/blog 文章放在 content/posts/ 下，格式如下：\n--- title: \u0026#34;文章标题\u0026#34; date: YYYY-MM-DDTHH:mm:ss+08:00 draft: false # false=发布, true=草稿(不显示) tags: [\u0026#34;标签1\u0026#34;, \u0026#34;标签2\u0026#34;] categories: [\u0026#34;分类\u0026#34;] summary: \u0026#34;摘要文字\u0026#34; # 可选，首页显示 --- # 文章正文 用 Markdown 写内容。 注意: date 格式必须带时区，例如 2026-05-09T18:00:00+08:00\n2. 本地预览 cd ~/work/blog \u0026amp;\u0026amp; hugo server -D --bind 0.0.0.0 --baseURL http://10.57.106.247:1313 然后用手机浏览器打开 http://\u0026lt;rmnet_data2的IP\u0026gt;:1313 预览。\n3. 构建并部署 cd ~/work/blog # 构建 hugo --minify # 将静态文件复制到根目录 cp -r public/* . rm -rf public # 提交推送 git add -A git commit -m \u0026#34;new post: 文章标题\u0026#34; git push origin master # 等待30秒后验证 sleep 30 \u0026amp;\u0026amp; curl -s -o /dev/null -w \u0026#34;%{http_code}\u0026#34; https://mikilangkilo.github.io 4. 部署检查清单 .nojekyll 文件存在（关键！） 根目录有 index.html hugo.yml 中 baseURL 是 https://mikilangkilo.github.io/ 中文分类/标签页面能正常访问 快捷命令速查 操作 命令 创建新文章 编辑 content/posts/xxx.md 本地预览 hugo server -D --bind 0.0.0.0 --baseURL http://IP:端口 构建生成 hugo --minify 部署上线 复制public→root → git push 查看状态 curl -sI https://mikilangkilo.github.io | head -5 清理缓存 hugo --gc PaperMod 主题常用功能 Front Matter 参数 --- title: \u0026#34;\u0026#34; # 必填：标题 date: \u0026#34;\u0026#34; # 必填：日期（带时区） draft: false # 是否草稿 tags: [] # 标签 categories: [] # 分类 summary: \u0026#34;\u0026#34; # 自定义摘要 cover: image: \u0026#34;\u0026#34; # 封面图（相对路径 content/posts/images/xxx.jpg） alt: \u0026#34;\u0026#34; caption: \u0026#34;\u0026#34; hidden: true # 是否在首页隐藏封面 params: ShowToc: true # 显示目录 comments: true # 开启评论 series: [] # 系列文章 --- ### 短代码用法 PaperMod 主题支持以下短代码（在文章 Markdown 中使用）： - **折叠内容**: `{{\u0026lt; details \u0026#34;标题\u0026#34; \u0026gt;}}内容{{\u0026lt; /details \u0026gt;}}` - **提示框**: notice / warning / note - **图片**: figure 短代码 具体语法参考 PaperMod 官方文档。 ## 常见问题 ### Q: 推送后还是404？ A: 检查根目录是否有 `.nojekyll` 文件和 `index.html` ### Q: 新文章没显示？ A: 检查 `draft: false`，日期不能是未来时间 ### Q: 中文链接404？ A: `.nojekyll` 文件丢失了，重新添加并推送 ### Q: 图片怎么加？ A: 放在 `content/posts/images/` 目录下，Markdown中用相对路径引用 ## 运行日志 \u0026gt; 以下记录博客每次变更操作 | 日期 | 操作 | 说明 | |------|------|------| | 2026-05-09 | 初始化 | 从 GitHub 克隆仓库，安装 Hugo 0.161.1，修复 Actions workflow(Hugo版本0.125→0.140.1)，解决Jekyll中文路径404问题(.nojekyll)，成功部署上线 | | 2026-05-09 | 创建 Skill | 将博客管理流程整理为 CodeBuddy Skill | ","permalink":"https://mikilangkilo.github.io/docs/blog-management-guide/","summary":"\u003ch1 id=\"博客管理-skill\"\u003e博客管理 Skill\u003c/h1\u003e\n\u003ch2 id=\"基本信息\"\u003e基本信息\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e博客地址\u003c/strong\u003e: \u003ca href=\"https://mikilangkilo.github.io\"\u003ehttps://mikilangkilo.github.io\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e仓库\u003c/strong\u003e: \u003ca href=\"mailto:git@github.com\"\u003egit@github.com\u003c/a\u003e:mikilangkilo/mikilangkilo.github.io.git\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e本地路径\u003c/strong\u003e: ~/work/blog/\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e框架\u003c/strong\u003e: Hugo + PaperMod 主题\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e作者\u003c/strong\u003e: 殷鹏程\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e语言\u003c/strong\u003e: 中文 (zh-cn)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e部署方式\u003c/strong\u003e: GitHub Pages (master 分支, root 目录)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e重要\u003c/strong\u003e: 必须保留 \u003ccode\u003e.nojekyll\u003c/code\u003e 文件（否则中文目录名导致404）\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"目录结构\"\u003e目录结构\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e~/work/blog/              # 本地仓库根目录\n├── .nojekyll             # 必须！禁用Jekyll\n├── .gitignore\n├── .github/workflows/hugo.yml  # GitHub Actions（备用）\n├── hugo.yml              # Hugo配置文件\n├── content/              # 文章内容\n│   ├── about/            # 关于页面\n│   │   └── index.md\n│   └── posts/            # 文章目录\n│       ├── my-first-post.md\n│       └── 新文章.md     # 新文章放这里\n├── themes/PaperMod/      # 主题（git submodule）\n└── public/               # 构建输出（.gitignore忽略，不推送）\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"写新文章流程\"\u003e写新文章流程\u003c/h2\u003e\n\u003ch3 id=\"1-创建文章\"\u003e1. 创建文章\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd ~/work/blog\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e文章放在 \u003ccode\u003econtent/posts/\u003c/code\u003e 下，格式如下：\u003c/p\u003e","title":""}]