macOS companion app

Vòng đời Gateway trên macOS

Ứng dụng macOS mặc định quản lý Gateway qua launchd và không sinh Gateway như một tiến trình con. Trước tiên, ứng dụng cố gắng kết nối với một Gateway đã chạy sẵn trên cổng đã cấu hình; nếu không thể truy cập Gateway nào, ứng dụng sẽ bật dịch vụ launchd qua CLI openclaw bên ngoài (không có runtime nhúng). Điều này mang lại khả năng tự động khởi động đáng tin cậy khi đăng nhập và khởi động lại khi gặp sự cố.

Chế độ tiến trình con (Gateway được ứng dụng sinh trực tiếp) hiện không được sử dụng. Nếu bạn cần liên kết chặt hơn với UI, hãy chạy Gateway thủ công trong terminal.

Hành vi mặc định (launchd)

  • Ứng dụng cài đặt một LaunchAgent theo từng người dùng có nhãn ai.openclaw.gateway (hoặc ai.openclaw.<profile> khi dùng --profile/OPENCLAW_PROFILE; com.openclaw.* cũ vẫn được hỗ trợ).
  • Khi chế độ Cục bộ được bật, ứng dụng đảm bảo LaunchAgent đã được tải và khởi động Gateway nếu cần.
  • Log được ghi vào đường dẫn log Gateway của launchd (hiển thị trong Cài đặt gỡ lỗi).

Các lệnh thường dùng:

launchctl kickstart -k gui/$UID/ai.openclaw.gateway
launchctl bootout gui/$UID/ai.openclaw.gateway

Thay nhãn bằng ai.openclaw.<profile> khi chạy một hồ sơ có tên.

Bản dựng dev chưa ký

scripts/restart-mac.sh --no-sign dành cho các bản dựng cục bộ nhanh khi bạn không có khóa ký. Để ngăn launchd trỏ tới một binary relay chưa ký, lệnh này:

  • Ghi ~/.openclaw/disable-launchagent.

Các lần chạy đã ký của scripts/restart-mac.sh sẽ xóa phần ghi đè này nếu marker tồn tại. Để đặt lại thủ công:

rm ~/.openclaw/disable-launchagent

Chế độ chỉ kết nối

Để buộc ứng dụng macOS không bao giờ cài đặt hoặc quản lý launchd, hãy khởi chạy bằng --attach-only (hoặc --no-launchd). Thao tác này đặt ~/.openclaw/disable-launchagent, nên ứng dụng chỉ kết nối với một Gateway đã chạy sẵn. Bạn có thể bật/tắt cùng hành vi này trong Cài đặt gỡ lỗi.

Chế độ từ xa

Chế độ từ xa không bao giờ khởi động Gateway cục bộ. Ứng dụng dùng đường hầm SSH tới máy chủ từ xa và kết nối qua đường hầm đó.

Vì sao chúng tôi ưu tiên launchd

  • Tự động khởi động khi đăng nhập.
  • Ngữ nghĩa khởi động lại/KeepAlive tích hợp sẵn.
  • Log và giám sát dễ dự đoán.

Nếu một chế độ tiến trình con thực sự lại cần thiết trong tương lai, chế độ đó nên được ghi tài liệu như một chế độ riêng biệt, rõ ràng và chỉ dành cho dev.

Liên quan