Vibe Companion và Cloudflare Tunnel trên MacBook

Tóm tắt

Bản tương đương trên macOS của vibe-companion-va-cloudflare-tunnel-tren-raspberry-pi: cài Vibe Companion (the-companion) trên MacBook Pro (opera.local), expose qua Cloudflare Tunnel (companion, ID 9432278b-...) tới domain opera.stupidsimpletempo.com, bảo vệ bằng Cloudflare Access. Khác Linux ở chỗ dùng launchd/LaunchAgent thay vì systemd, và ghi rõ vài lỗi/troubleshooting đặc thù macOS đã gặp phải.

Điểm chính

  • Dùng launchd (LaunchAgent plist trong ~/Library/LaunchAgents/) thay vì systemd; cả Companion và cloudflared đều có LaunchAgent riêng.
  • Trên macOS, config Cloudflare Tunnel (~/.cloudflared/config.yml) và credential nằm ngay trong home directory — không cần copy sang thư mục hệ thống như trên Linux, vì LaunchAgent chạy dưới user chứ không phải root.
  • Không dùng brew services start cloudflared vì service đó chạy cloudflared không kèm tham số tunnel run <name> — phải tự tạo LaunchAgent riêng chỉ định đúng tunnel.
  • Lỗi đã gặp: Claude CLI terminal bị mất session mỗi ngày. Nguyên nhân: module usage-limits của Companion tự đọc/refresh OAuth token trong macOS Keychain định kỳ; refresh token là single-use nên terminal CLI đang giữ bản cũ bị vô hiệu hoá. Cách khắc phục: tắt “Usage Limits” trong Panel Settings của Companion để ngừng polling.
  • Companion lưu session chat tạm thời ở tmpdir() (bị xoá khi reboot macOS) — có script backup/restore thủ công cho vibe-sessions/, còn session-names.jsonrecordings/ đã persistent sẵn trong ~/.companion/.
  • Bảng so sánh chi tiết sự khác biệt macOS vs Linux: service manager, đường dẫn config, user context.

Khái niệm

Người liên quan

Câu hỏi mở

  • Bug mất session CLI hàng ngày đã được xác nhận hết hẳn sau khi tắt “Usage Limits”, hay chỉ giảm tần suất?