學會在 Apple Silicon Mac 安裝 Hermes Agent、建立 Telegram Bot、固定專案工作目錄並整合 Codex CLI,安全地從手機遠端指派 AI 程式開發任務。
核心架構概覽
Telegram → Hermes Gateway (Mac 常駐) → Hermes Agent (規劃/確認) → Local Terminal → Codex CLI (讀寫指定專案)
Hermes 內建 codex skill,可在指定 Git repository 執行 codex exec 一次性任務。此方案不接管既有互動式 Codex session,而是每次在固定資料夾啟動新任務;若需保留 session 需額外設計 resume 機制。
先決條件
- macOS (Apple Silicon M 系列)
- 已安裝並登入 Codex CLI (
codex指令可用) - 目標專案為 Git repository
- Telegram 帳號
安裝與設定步驟
1. 驗證 Codex CLI 環境
cd ~/Projects/your-project
git status
codex
確認 Codex CLI 可正常啟動,且專案已初始化 Git。Hermes 要求在 Git repository 中執行,Codex 可使用 OPENAI_API_KEY 或 OAuth 登入狀態。
2. 安裝 Hermes Agent
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.zshrc
hermes
安裝後可用 hermes、hermes model、hermes tools、hermes gateway 等指令。
3. 初始化 Hermes 設定
hermes setup
# 或使用整合式 OAuth
hermes setup --portal
確認已啟用 terminal 工具(Hermes 透過本機 terminal 呼叫 codex exec)。
4. 鎖定專案工作目錄
編輯 ~/.hermes/config.yaml:
terminal:
backend: local
cwd: /Users/你的帳號/Projects/your-project
terminal.cwd 是 Telegram gateway 的預設工作目錄,也是將操作範圍限定在特定專案的核心設定。
5. 建立 Telegram Bot
- 在 Telegram 對
@BotFather發送/newbot建立 bot,取得 token - 對
@userinfobot查詢自己的數字 Telegram User ID(非 username)
6. 連接 Telegram 到 Hermes
最簡單方式:
hermes gateway setup
選擇 Telegram,輸入 bot token、你的 User ID、僅允許自己帳號。
或手動編輯 ~/.hermes/.env:
TELEGRAM_BOT_TOKEN=123456789:你的BotToken
TELEGRAM_ALLOWED_USERS=你的數字TelegramUserID
啟動 gateway:
hermes gateway start
hermes gateway status
Hermes 使用 long polling,適合本機常駐部署。
實際使用範例
設定完成後,在 Telegram 對 bot 下指令:
請在目前專案檢查登入流程的 bug。
先只做分析,列出可能原因、相關檔案與修改方案,不要改檔。
確認分析後:
依照剛才方案修改。
請先建立 feature/fix-login 分支,完成後執行測試,
最後回報修改的檔案、git diff 摘要與測試結果。
結構化指令範本:
[CODEX]
目標:修正 checkout 頁面的手機版版面跑掉
限制:只可改 src/components/Checkout 與相關測試
流程:先分析 -> 等我確認 -> 才修改 -> 跑測試
多專案管理策略
| 需求 | 建議做法 |
|---|---|
| 單一專案 | 一個 Hermes profile + 固定 terminal.cwd |
| 多專案嚴格隔離 | 每專案一個 profile + 不同 Telegram bot token |
| 同專案不同工作脈絡 | 同一 bot 使用 Telegram Topics 分隔對話 |
| 同時多任務不互相干擾 | 使用 Git worktree(官方推薦隔離方式) |
重要:Telegram Topics 僅分隔 Hermes 對話歷程,不會自動切換 terminal.cwd。嚴格固定不同實體資料夾請用不同 profile/bot。
多 Profile 範例
# 建立 client-a profile
hermes -p client-a gateway start
# 建立 client-b profile
hermes -p client-b gateway start
各 profile 獨立 config.yaml 與 .env,對應不同 bot token 與專案資料夾。
安全強化規則(必做)
terminal.cwd 是預設工作目錄,非作業系統級沙箱。Agent 若被允許執行任意 shell 指令,理論上仍可 cd .. 存取其他路徑。
1. 建立專案規則檔 AGENTS.md
在專案根目錄建立:
# Telegram Codex Rules
- 工作範圍只限此 Git repository。
- 不可讀取或修改父資料夾、家目錄、SSH keys、.env 或其他專案。
- 不可使用 rm -rf、git reset --hard、git push --force。
- 修改前,先說明計畫並等待明確確認。
- 所有程式碼修改必須先建立 branch。
- 完成後執行對應測試,回報 git diff 與測試結果。
- 未經明確指示,不得 commit、push、部署或傳送資料到外部服務。
2. 基礎安全清單
- Bot token 視同密碼:洩漏時立即在 BotFather 用
/revoke撤銷 TELEGRAM_ALLOWED_USERS僅填自己的數字 ID,勿設為公開 bot- 禁用
--full-auto/--yolo:採「分析 → 確認 → 修改」兩階段流程 - Mac 必須保持開機、網路可用、Hermes gateway 常駐(可用 launchd 管理服務)
替代方案比較
| 工具 | 適用情境 |
|---|---|
| Hermes Agent (官方內建 codex skill) | 需要總控、記憶、多工具編排、Telegram 入口、固定資料夾的完整方案 |
| Telecodex | 只想要輕量「Telegram → Codex CLI」橋接,不需 Hermes 進階功能 |
| OpenAB | 社群 wrapper,支援 session resume 與 history 切換 |
| CodexClaw | 需同時支援 Claude Code、Codex CLI、MCP routing、multi-agent、cron 的重型方案 |
核心需求若是「Hermes 總控 + Telegram 遠端 + Codex 實作指定資料夾」,優先採用 Hermes 官方內建 codex skill + 專用 profile + 固定 terminal.cwd,元件最少、除錯最容易。
常見問題
Q: 能否接管已經開啟的 Codex 互動式 session?
A: 不能。Hermes 每次在指定資料夾呼叫新的 codex exec。需保留 session 需自行設計 resume 機制。
Q: 為什麼不直接用 SSH + tmux?
A: Hermes 提供自然語言理解、任務規劃、確認機制、多工具編排與記憶體,純 SSH 無法提供同等級的 AI 代理體驗。
Q: 如何讓 Hermes 在背景長期執行?
A: 使用 macOS launchd 將 hermes gateway start 註冊為服務,或用 nohup/screen/tmux 保持進程。
結語
透過 Hermes Agent 內建的 Codex skill、Telegram gateway 與 terminal.cwd 固定專案資料夾,即可在 Apple Silicon Mac 上建立一套安全、可審計、多專案隔離的遠端 AI 程式開發工作流。關鍵在於:
- 一專案一 profile,嚴格鎖定
cwd - 兩階段確認流程,避免自動執行破壞性操作
- 專案層級規則檔 (
AGENTS.md),補足作業系統沙箱的不足 - Bot token 與 User ID 嚴格管控,最小權限原則
此架構讓你在咖啡廳、通勤途中,透過手機 Telegram 就能指派 AI 分析 bug、撰寫功能、跑測試並回報結果,真正實現「隨時隨地掌控本機開發環境」。