LidRun so với Amphetamine: công cụ nào hợp cho công việc AI và dev?

So sánh LidRun và Amphetamine thực chất là chuyện phạm vi sử dụng: Amphetamine là ứng dụng giữ máy không ngủ hằng ngày tốt hơn — miễn phí, làm rất chỉn chu, với các quy tắc kích hoạt (trigger) đáp ứng nhu cầu của phần lớn người dùng. LidRun được xây cho một trường hợp hẹp hơn và khó hơn: các phiên chạy AI agent hoặc dev kéo dài hàng giờ, thường chạy bằng pin, thường đóng nắp máy, và không có ai ngồi canh để phát hiện pin sắp cạn hay chip đang quá nóng. Dưới đây là so sánh trực tiếp, tính năng theo tính năng, kể cả những chỗ Amphetamine vẫn thắng.
Những điều Amphetamine làm tốt
Amphetamine miễn phí, được cập nhật đều đặn, và làm đúng cái việc nó sinh ra để làm: một nút bật/tắt trên menu bar giữ Mac không ngủ chỉ với một cú click, và phía sau nút đó là một engine kích hoạt (trigger) thực sự sâu — thời lượng phiên làm việc, ứng dụng cụ thể được mở, kết nối màn hình ngoài, mạng Wi-Fi, ổ đĩa được mount, mức pin, thời điểm trong ngày. Ghép các điều kiện đó thành một quy tắc là chế độ giữ-không-ngủ sẽ tự bật tự tắt, khỏi cần bạn đụng vào icon lần nào nữa.
Với các tình huống phổ biến — giữ màn hình sáng khi thuyết trình, không cho ngủ trong lúc render hay tải file, chặn sleep khi rảnh tay trong cuộc gọi video — Amphetamine là công cụ đúng bài. Giống hầu hết ứng dụng giữ-Mac-không-ngủ khác, nó hoạt động qua chính power-assertion API của macOS, cùng họ system call mà lệnh caffeinate có sẵn trong hệ thống dùng; Amphetamine chỉ đơn giản là bọc nó trong một giao diện dễ với tay tới hơn so với việc mở Terminal.
Engine kích hoạt của nó sâu hơn nhiều so với mức đa số người dùng từng đụng tới. Điều kiện cắm dock, ổ đĩa mount, quy tắc theo ứng dụng mở, trigger theo sự kiện hệ thống — nếu bạn muốn giữ-không-ngủ tự bật tự tắt theo một tín hiệu cụ thể nào đó, gần như chắc chắn Amphetamine đã có sẵn quy tắc đó rồi.
Hai công cụ khác nhau ở đâu
Khác biệt cốt lõi nằm ở phạm vi hoạt động. Việc của Amphetamine là giữ Mac không ngủ. Việc của LidRun là giữ Mac không ngủ trong giới hạn pin và nhiệt độ — không phải kiểu giữ máy thức mù quáng — với các lớp bảo vệ cho những phiên chạy dài, không ai canh, nơi không có ai ngồi nhìn màn hình.
Ngưỡng pin. Amphetamine hoàn toàn không theo dõi mức pin — bắt đầu một phiên khi rút sạc, rồi đi đâu đó, nó sẽ giữ Mac không ngủ cho tới khi công việc xong hoặc pin về 0%, không hề có cảnh báo nào ở giữa. LidRun thì chạy theo phản ứng tăng dần: tự dừng ở mức pin 20%, cho Mac ngủ bình thường (đây là bước duy nhất bạn có thể tắt đi); cảnh báo pin yếu ở 15% và 5% trong khi phiên vẫn tiếp tục chạy; và một ngưỡng cứng trong khoảng 4–8% sẽ ép giải phóng mọi lệnh giữ-không-ngủ đang giữ và cho Mac ngủ bất kể Settings đang đặt gì, vì dưới mức đó macOS có thể không còn đủ dư địa để tắt máy một cách sạch sẽ. Ngưỡng cứng đó là bước duy nhất trong LidRun mà bạn không thể cấu hình để tắt đi.
Đóng nắp máy mà không cần màn hình ngoài. Đây là tính năng khiến nhiều người bất ngờ nhất, nên đáng để giải thích rõ cơ chế, chứ không chỉ nói hiện tượng. IOPMAssertionCreateWithName — API mà mọi ứng dụng giữ-Mac-không-ngủ đều dựa vào, kể cả Amphetamine — chỉ chặn được idle sleep. Việc đóng nắp máy lại kích hoạt một loại clamshell sleep riêng, ở tầng thấp hơn, mà assertion không đụng tới được; nó xảy ra chỉ trong vài giây trừ khi có màn hình ngoài đang cắm. Đòn bẩy công khai duy nhất chặn được nó là sudo pmset -a disablesleep 1, một lệnh miễn phí ai cũng có thể chạy ngay trong Terminal (xem so sánh đầy đủ giữa pmset và caffeinate để hiểu sâu hơn về cơ chế). Điểm đáng lưu ý: đây là một cài đặt hệ thống toàn cục, tồn tại lâu dài, chứ không phải assertion riêng theo từng app — nếu tiến trình đã bật nó bị chết giữa phiên, do crash hay bị force quit, Mac sẽ bị kẹt, từ chối ngủ cho tới khi có người tự tay tắt lại hoặc khởi động lại máy. Chế độ Closed-Lid của LidRun gọi đúng cờ pmset đó thông qua một helper có quyền hạn cao, được xin quyền một lần duy nhất qua hộp thoại admin gốc của macOS, và luôn ghép cặp giá trị 1 với 0 khi dừng, khi thoát, và ở lần khởi động kế tiếp, để cài đặt đó không bao giờ âm thầm tồn tại lâu hơn phiên đã yêu cầu nó. Amphetamine không đụng tới pmset, và đó chính xác là lý do vì sao đóng-nắp-không-cần-màn-hình-ngoài không phải là thứ nó cung cấp.
Giám sát nhiệt. LidRun đọc tín hiệu ProcessInfo.thermalState của Apple — nominal, fair, serious, critical — trong suốt phiên chạy. Riêng ở chế độ Closed-Lid, khi chạm mức critical, LidRun sẽ tự động thoát chế độ này để phần cứng được throttle và đi ngủ; nhiệt không thể thoát ra bình thường khi nắp máy đang đóng, đó chính xác là lý do cơ chế chặn này quan trọng nhất ở đây. Amphetamine hoàn toàn không đưa trạng thái nhiệt vào làm điều kiện chặn phiên chạy.
So sánh trực tiếp cho công việc AI và dev
AI agent và các build dev có đặc điểm khác hẳn một buổi thuyết trình hay một lượt tải file. Chúng chạy hàng giờ liền, khiến chip hoạt động liên tục, và thường không có ai canh — bạn khởi động một phiên Claude Code hay Cursor, gập laptop lại, rồi quay lại sau.
Thử hình dung một phiên agent chạy 4 tiếng bằng pin, nắp đóng, bắt đầu từ 100%, thực tế sẽ diễn ra thế nào với từng công cụ. Với Amphetamine: assertion giữ-không-ngủ vẫn ổn khi nắp mở, nhưng ngay khoảnh khắc bạn đóng nắp mà không cắm màn hình ngoài, clamshell sleep vẫn kích hoạt và phiên chạy dừng lại bất kể đang ở đâu — vì ngay từ đầu đã không có đường nào cho việc đóng nắp cả. Với chế độ Closed-Lid của LidRun đang bật: phiên chạy tiếp tục qua các mốc 20%, 15%, 5% kèm cảnh báo dọc đường, và chỉ buộc dừng ở ngưỡng cứng 4–8% — đến lúc đó, một job 4 tiếng trên pin MacBook đời mới thường đã xong hoặc ít nhất cũng đã được cho đủ cơ hội hợp lý để hoàn thành.
Auto Mode là nửa còn lại của câu chuyện. Thay vì bạn phải tự tay bật giữ-không-ngủ, LidRun theo dõi các AI agent và công cụ dev đã biết — Claude Code, Codex, Cursor, Windsurf, Aider, Cline, Ollama, Docker, và nhiều công cụ khác, có thể mở rộng thêm trong Settings — và chỉ giữ Mac không ngủ khi chúng thực sự đang làm việc. Riêng với các AI agent đã biết, chỉ cần đang chạy là đã tính là đang làm việc: một agent đứng ở mức CPU gần 0% trong lúc chờ phản hồi từ API vẫn đang giữa chừng một tác vụ, nên Auto Mode không nhả Mac ra chỉ vì CPU tụt xuống. Mọi thứ khác được theo dõi (build, container, render job) dùng ngưỡng phần trăm CPU — mặc định 20% — kèm khoảng ân hạn 60 giây, để một tiến trình thực sự đang rảnh ở nền không giữ Mac không ngủ vô thời hạn. Các quy tắc trigger của Amphetamine khá linh hoạt — mở ứng dụng, mount ổ đĩa, mạng Wi-Fi — nhưng không cái nào trong số đó đọc CPU theo từng tiến trình hay phân biệt được 'agent đang suy nghĩ' với 'agent đang rảnh.'
Chi phí và thiết lập: miễn phí so với Pro
Amphetamine hoàn toàn miễn phí trên Mac App Store — không có gói nào phải cân nhắc cả. Các chế độ cơ bản của LidRun (Keep Awake, Timer, Charging-only, và ngưỡng tự dừng khi pin yếu) cũng miễn phí vĩnh viễn: không dùng thử, không giới hạn số phiên, không có gì hết hạn. Hai tính năng mà bài so sánh này thực sự nói tới, Auto Mode và chế độ Closed-Lid, thuộc gói Pro của LidRun — mua một lần, không phải trả phí định kỳ, kèm thời hạn hoàn tiền 14 ngày.
Công sức thiết lập cũng khác nhau. Amphetamine chỉ cần một cú click: bật lên, có thể tùy chọn dựng thêm quy tắc, xong. Các chế độ miễn phí của LidRun cũng vậy — một cú click. Auto Mode và chế độ Closed-Lid đòi hỏi thêm chút công sức ban đầu: Auto Mode đã có sẵn danh sách AI và công cụ dev được chọn trước nên đa số người dùng không cần đụng tới watch list, còn chế độ Closed-Lid cần cấp quyền admin một lần cho helper pmset. Sau bước thiết lập đầu tiên đó, cả hai đều tự chạy.
Nếu mọi thứ bạn cần đều nằm trong gói miễn phí của một trong hai công cụ, thì hiện tại engine trigger của Amphetamine trưởng thành hơn. Nếu bạn cần các lớp bảo vệ về pin và nhiệt, hoặc hỗ trợ đóng nắp máy, thì đó chính xác là thứ giấy phép Pro của LidRun trả tiền để mua.
Cách chọn công cụ phù hợp với bạn
Amphetamine là lựa chọn đúng cho việc giữ-không-ngủ dùng chung: phiên chạy ngắn đến vừa, nắp máy vẫn mở hoặc có màn hình ngoài cắm sẵn, và bạn muốn một công cụ miễn phí với các quy tắc trigger sâu. Nó làm việc đó cực tốt, không có gì để bàn thêm.
LidRun hợp hơn khi phiên chạy kéo dài hàng giờ, bạn muốn đóng nắp máy mà không cần màn hình ngoài, hoặc bạn không muốn tự mình canh chừng tình trạng pin và nhiệt độ của một job dài không người trông. Với các phiên đóng nắp, hãy đặt Mac trên một bề mặt phẳng, cứng, thoáng khí — không để trong túi hay trên đệm mềm — và cắm sạc cho những phiên chạy dài nhất; ngưỡng pin yếu chỉ là lớp bảo vệ dự phòng, không thay thế được việc thông gió.
Cài cả hai cũng không có gì xung đột. Amphetamine cho việc giữ-không-ngủ thường ngày, LidRun cho các phiên AI và dev dài hơn, nơi ngưỡng an toàn và hỗ trợ đóng nắp thực sự quan trọng. Chỉ có điều đừng chạy chồng cả hai trong cùng một phiên — hai app cùng giữ assertion sleep riêng của mình nghĩa là có hai bộ quy tắc khác nhau cùng quyết định khi nào Mac được phép ngủ, và chuyện này sẽ rối rất nhanh. Hãy tạm dừng hoặc thoát phiên Amphetamine đang chạy trước khi bắt đầu một phiên Auto Mode hay Closed-Lid của LidRun.
LidRun giữ công việc của bạn chạy tiếp khi đóng nắp, với cơ chế bảo vệ pin và nhiệt tích hợp sẵn.
Đã có LidRun? Đọc hướng dẫn thiết lập →
Mới biết đến LidRun? Xem bảng giá →
Câu hỏi thường gặp
Với một phiên ngắn, cắm sạc và nắp mở, thì được. Nhưng với phiên chạy nhiều giờ bằng pin, Amphetamine hoàn toàn không có ngưỡng pin nào cả — nó giữ Mac không ngủ cho tới khi công việc xong hoặc pin về 0%, không hề cảnh báo ở giữa. Nó cũng không thể giữ nắp đóng mà không cần màn hình ngoài, và không theo dõi trạng thái nhiệt. Đó là ba khoảng trống quan trọng nhất với một phiên chạy qua đêm không người canh.
Không. Amphetamine giữ một assertion sleep tiêu chuẩn của hệ thống, nhưng clamshell sleep của macOS là một trigger riêng, ở tầng thấp hơn, mà assertion không chặn được — nó kích hoạt chỉ trong vài giây sau khi đóng nắp trừ khi có màn hình ngoài đang cắm. Đòn bẩy duy nhất ngăn được nó là sudo pmset -a disablesleep 1, một lệnh miễn phí ai cũng chạy được trong Terminal, và Amphetamine không dùng nó. Chế độ Closed-Lid của LidRun gọi đúng cờ pmset đó thông qua một helper có quyền hạn cao — có trong gói Pro của LidRun — và luôn ghép nó trở lại về 0 khi dừng hoặc thoát để nó không bị kẹt ở trạng thái bật.
Một chuỗi phản ứng pin gồm 4 mức (tự dừng ở 20%, cảnh báo ở 15% và 5%, ngưỡng ép ngủ cứng ở 4–8% không thể tắt), một cơ chế chặn theo nhiệt độ tự động thoát chế độ Closed-Lid khi nhiệt đạt mức critical, khả năng tiếp tục chạy khi đóng nắp mà không cần màn hình ngoài, và Auto Mode — phát hiện AI agent cùng công cụ dev qua hoạt động tiến trình, kể cả phát hiện dựa trên sự hiện diện cho những agent đang rảnh giữa các lượt gọi API — và tự động bật phiên chạy.
Một phần. Các chế độ Keep Awake, Timer, và Charging-only của LidRun miễn phí vĩnh viễn — không dùng thử, không giới hạn số phiên — cùng mô hình miễn-phí-vĩnh-viễn mà Amphetamine đang dùng. Hai tính năng mà bài so sánh này thực sự nói tới, Auto Mode và chế độ Closed-Lid, thuộc gói Pro của LidRun: mua một lần, không phải trả phí định kỳ, kèm thời hạn hoàn tiền 14 ngày.
Hai cách, tùy vào loại tiến trình. Với các AI agent và công cụ coding đã biết (Claude Code, Cursor, Codex, Aider, và một số công cụ khác trong danh sách có sẵn, có thể cập nhật từ server), chỉ cần đang chạy là đã tính là đang làm việc — một agent đứng ở mức CPU gần 0% trong lúc chờ phản hồi API vẫn đang giữa chừng một tác vụ, nên Auto Mode sẽ không nhả Mac ra chỉ vì CPU tụt xuống. Mọi tiến trình khác được theo dõi (build, container, render job) thì dùng ngưỡng phần trăm CPU kèm một khoảng ân hạn ngắn, để một thứ thực sự đang rảnh ở nền không giữ Mac không ngủ vô thời hạn.
Bạn có thể cài cả hai, nhưng đừng chạy chồng chúng trong cùng một phiên — hai app cùng giữ assertion sleep riêng nghĩa là có hai bộ quy tắc khác nhau cùng quyết định khi nào Mac được phép ngủ, và việc này sẽ rối rất nhanh. Cách chia thực tế: Amphetamine cho việc giữ-không-ngủ thường ngày, LidRun cho các phiên AI và dev dài, nơi ngưỡng pin, ngưỡng nhiệt, và hỗ trợ đóng nắp thực sự quan trọng. Hãy tạm dừng hoặc thoát phiên Amphetamine đang chạy trước khi bắt đầu một phiên Auto Mode hay Closed-Lid của LidRun.