---
title: "Ying Xiang Zhao — Blog"
url: https://geminixiang.com/
description: "Ying Xiang Zhao（geminixiang）是住在台北的 DevOps 工程師，工作橫跨雲原生基礎設施、CI/CD、ML 模型部署與全端開發。這個部落格記錄 infra、資安與 AI coding agent 的實戰筆記；作品包含開源專案 mikan（把 AI coding agent 帶進 Slack / Telegram / Discord）與 tiny-agent（用四種語言實作的極簡 coding agent），瀏覽器內的影片編輯器 Studio，並經營旅遊分帳工具 SentriPay。"
---

# Ying Xiang Zhao — Blog

## Posts

- 2026-06-28 [實測 boxd.sh 的 GitHub Token 注入：gh 走 cache，git 走 metadata](https://geminixiang.com/posts/boxd-github-token-injection.md) — 記錄一次對 exe.dev / boxd.sh 免費試用 VM 的觀察：gh CLI 透過 /run/boxd/github-token 做 5 分鐘 cache，但 git credential helper 會直接向 metadata API 取 GitHub token。
- 2026-06-26 [Claude Code 一直 API Error？試著清掉 macOS Keychain 的 OAuth 狀態](https://geminixiang.com/posts/claude-code-api-error-keychain.md) — 記錄一次 Claude Code 反覆 API Error 的排查：不是 ~/.claude，也不是 ANTHROPIC_API_KEY，而是 macOS Keychain 裡的舊 OAuth 狀態。
- 2026-05-25 [mikan 開發心得：把 AI Coding Agent 搬進 Slack、Telegram 與 Discord](https://geminixiang.com/posts/mikan-development-reflection.md) — 分享 mikan 這個多平台 AI coding agent 的開發心得：Slack / Telegram / Discord session model、sandbox 隔離、vault credential，以及開發 agent infra 時踩到的坑。
- 2026-04-09 [你的 Go Binary 正在洩漏 Secret：strings 指令的威力與防禦](https://geminixiang.com/posts/go-binary-secrets-leak.md) — 用 strings 一行指令就能從 Go binary 中撈出所有敏感資訊。從 ldflags -X 的明文注入問題，到 garble 混淆的實測與限制，完整解析 Go binary 的安全盲區。
- 2026-02-21 [Claude Code 使用心得：OpenRouter 整合與 Agent Teams 實戰](https://geminixiang.com/posts/claude-code-reflection.md) — 深入分享 Claude Code 的實戰經驗：如何透過 OpenRouter 整合 Qwen3.5、MiniMax M2.5、GLM5 等模型實現 provider failover，以及 Agent Teams 在並行任務協調上的應用與限制。
- 2026-01-17 [比較多個主流 OpenAPI SDK Generator](https://geminixiang.com/posts/openapi-sdk-generator-comparison.md) — 為 FastAPI 微服務挑選 SDK 產生器：實測 OpenAPI Generator（httpx / asyncio）與 Stainless，並比較 Speakeasy、Fern、Liblab 產生的 Python / TypeScript SDK 品質與適用情境。
- 2025-12-21 [Studio - 基於 WebCodecs 的網頁影片編輯器](https://geminixiang.com/posts/studio.md) — 深入探討 Studio 專案的技術架構：WebCodecs、OPFS 儲存策略，以及未來 AI Agent 整合的規劃。
- 2025-10-30 [部署靜態網頁到 Cloudflare](https://geminixiang.com/posts/deploy-ssg-page-to-cloudflare.md) — 把靜態網站（SSG / CSR）部署到 Cloudflare Pages：從匯入 GitHub repository、設定存取權限到完成部署的步驟。
- 2025-10-27 [Vibe coding 的一些抱怨](https://geminixiang.com/posts/vibe-coding.md) — LLM (vibe coding) 的深度反思: 探討如何在使用 AI 工具時保持程式碼品質，避免產出沒有靈魂的程式碼，以及如何透過 LLM 察覺自己的無知。
- 2022-09-04 [Go-學習筆記 vol.1](https://geminixiang.com/posts/golang-learning-note-vol1.md) — 用 Go 寫一個簡易 WebSocket 聊天室：搭配 gin 與 melody 框架，並整理 struct 的定義與使用方式。
- 2022-08-27 [Cpp簡易api教學](https://geminixiang.com/posts/cpp-simple-api-tutorial.md) — 用 header-only 的 cpp-httplib 在 C++ 架設簡易 HTTP API，再用 nlohmann/json 回傳 JSON。
- 2022-08-17 [AWS EMR 模式差異](https://geminixiang.com/posts/aws-emr-mode-difference.md) — AWS EMR 的 client mode 與 cluster mode 差在 driver 放在哪裡：比較兩者的記憶體設定、機器故障時的影響，以及各自適合的網路情境。
- 2022-08-17 [手機網頁100vh v.s. 網址列](https://geminixiang.com/posts/mobile-web-100vh-vs-address-bar.md) — 手機瀏覽器的網址列會讓 100vh 超出畫面：用 window.innerHeight 算出 --vh CSS 變數取代 vh，讓版面剛好填滿可視範圍。
- 2022-08-15 [Docker private registry搭建](https://geminixiang.com/posts/docker-private-registry.md) — 用 docker-compose 與 registry:2.8.1 快速架設私有 Docker registry，並示範 tag、push、pull 自己的 image。
- 2022-08-15 [Docker timezone 時區問題](https://geminixiang.com/posts/docker-timezone.md) — Docker 容器時間不對？兩種修正方式：掛載主機的 /etc/localtime，或設定 TZ 環境變數（推薦）；alpine image 還需要先安裝 tzdata。
- 2022-08-15 [Python 腦筋急轉彎](https://geminixiang.com/posts/python-brain-teaser.md) — 讓 x+1 is 1+x 為 False、x+2 is 2+x 為 True 的 Python 謎題：從小整數快取（-5 到 256）與自訂 __add__ 兩種解法，看懂 is 與 == 的差別。
- 2022-08-14 [Hugo 最新版搭建](https://geminixiang.com/posts/hugo-latest-setup.md) — apt 裝的 Hugo 卡在 0.68？在 Ubuntu 20.04 移除舊版，透過 GitHub API 下載最新 .deb 安裝 Hugo（2022-06 時為 v0.101.0）。

---

## About the author

**Ying Xiang Zhao** (geminixiang) — DevOps Engineer, Taipei, Taiwan.

Ying Xiang Zhao（geminixiang）是住在台北的 DevOps 工程師，工作橫跨雲原生基礎設施、CI/CD、ML 模型部署與全端開發。這個部落格記錄 infra、資安與 AI coding agent 的實戰筆記；作品包含開源專案 mikan（把 AI coding agent 帶進 Slack / Telegram / Discord）與 tiny-agent（用四種語言實作的極簡 coding agent），瀏覽器內的影片編輯器 Studio，並經營旅遊分帳工具 SentriPay。

**Open to work** — DevOps Engineer / Platform Engineer / Site Reliability Engineer / AI Infrastructure Engineer · Taipei, Taiwan / Remote. Résumé: https://geminixiang.com/about/ (JSON: https://geminixiang.com/resume.json)

Topics: DevOps, Cloud Native, Kubernetes, Docker, Terraform, Google Cloud, CI/CD, Security, AI coding agents, ML model deployment, TypeScript, Python

Projects:
- [mikan](https://github.com/geminixiang/mikan) — Self-hosted AI coding agent for Slack, Telegram, Discord and GitHub with per-conversation sandboxes
- [tiny-agent](https://github.com/geminixiang/tiny-agent) — Minimal AI coding agents in TypeScript, Go, Python and Rust, plus a book on how they work
- [SentriPay](https://sentripay.com) — Travel expense splitter with multi-currency conversion and shareable, live-synced trip ledgers
- [Studio](https://studio.geminixiang.com) — Browser-based video editor built on WebCodecs

[About](https://geminixiang.com/about/) · [Résumé](https://geminixiang.com/about/) · [LinkedIn](https://linkedin.com/in/geminixiang/) · [GitHub](https://github.com/geminixiang) · [Twitter](https://x.com/geminixiang)
