Ứng dụng giúp AI agent tiếp tục chạy ở chế độ clamshell ngay cả khi gập MacBook — Electronic Clam
(github.com/jadhvank)Xin chào. Mình tạo một ứng dụng menu bar cho macOS để chia sẻ, cho phép AI agent tiếp tục chạy không bị dừng ngay cả khi gập MacBook lại (chế độ clamshell).
Gần đây có những tin tức như “các lập trình viên phải di chuyển mà không thể đóng laptop giữa cơn sốt AI coding” (còn gọi là meme
“đi bộ với laptop đang mở”).
(https://www.donga.com/news/Economy/article/all/20260513/133913987/3)
Đó đúng là câu chuyện của mình. Có lúc mình phải giao việc cho agent trong lúc di chuyển rồi rời chỗ,
nhưng cứ gập MacBook lại là máy ngủ, công việc bị ngắt quãng.
Trong bài báo đó cũng có ý kiểu như “dùng caffeinate là được mà”,
nhưng thực tế dù có bật caffeinate thì nếu đóng nắp mà không có màn hình ngoài, máy vẫn ngủ theo chế độ clamshell.
Còn nếu cứ để máy luôn thức thì lại chỉ biết process có còn chạy hay không; kể cả khi công việc đã xong, máy vẫn tiếp tục thức gây nóng
và hao pin. Những ứng dụng kiểu “cà phê” hiện có либо không chặn được, hoặc có chặn nhưng vẫn còn hơi thiếu.
Vì vậy mình đã tự làm nó.
- Không cho máy ngủ dù đóng nắp — chỉ với một nút bật/tắt. Không cần lệnh terminal, cũng không cần xác thực lại.
- Ngăn quá nhiệt và cạn pin — theo dõi pin và nhiệt độ, nếu vượt ngưỡng cấu hình thì sẽ cho tác vụ nghỉ để
ngăn MacBook bị quá nóng trong túi hoặc hết pin. Khi đóng nắp không có màn hình ngoài thì nghiêm ngặt hơn,
còn ở chế độ Desktop thì nới lỏng hơn — ngưỡng thay đổi theo trạng thái. - Phát hiện công việc chứ không chỉ process — nếu tác vụ của agent đã kết thúc từ lâu mà máy vẫn ở clamshell
thì cũng chỉ tốn pin và sinh nhiệt. Ứng dụng phát hiện có thực sự đang làm việc hay không, và khi việc xong sẽ tự động
chuyển sang trạng thái nhàn rỗi (Strict). Cũng có chế độ Lax để giữ máy thức miễn là process còn sống. - Nhận diện sẵn 5 agent phổ biến — Claude Code · Codex · Cursor · opencode · Antigravity.
Bạn cũng có thể tự thêm agent khác bằng pattern glob hoặc chỉ với một file khai báo. - Nhận biết công việc từ xa — nếu đang kết nối qua SSH, chia sẻ màn hình hoặc Tailscale thì máy sẽ không ngủ, giúp tác vụ từ xa không bị gián đoạn.
- Bảo mật — phần nhận diện chỉ đọc thời gian sửa đổi của file transcript. Không đọc nội dung.
Ngoài ra còn có CLI, session đặt tên, thông báo Telegram (tùy chọn), và cơ chế an toàn ba lớp để khôi phục sleep khi thoát.
Tech stack là Swift + AppKit không phụ thuộc thư viện ngoài; điều khiển nguồn dùng IOKit SPI
(IOPMSetSystemPowerSetting), và quyền hạn được xử lý bằng một helper thông qua daemon SMAppService.
Ứng dụng được ký bằng Developer ID. Chỉ hỗ trợ Apple Silicon · macOS 13+ (Ventura).
Hiện vẫn đang trong giai đoạn phát triển nên còn những chỗ thô ráp.
Đây là mã nguồn mở miễn phí, nếu bạn dùng thử và góp ý thì mình sẽ rất biết ơn 🙏
Nếu có agent nào bạn muốn được nhận diện nữa thì hãy cho mình biết.
Chưa có bình luận nào.