समर्थन ईमेलों में एक पैटर्न दिखा जिसकी मुझे उम्मीद नहीं थी।

"मैंने Ollama के साथ एक लंबा inference run शुरू किया, अपना MacBook बंद किया, और चला गया। दो घंटे बाद आया तो chat ने सिर्फ़ 80 tokens बनाए थे और Timex उस अंतराल के लिए कुछ नहीं दिखा रहा था।"

Mac सो गया था। स्थानीय LLM उसके साथ सो गया था। Timex भी सो गया था। तीन चीज़ें एक बार में रुकीं, और उनमें से केवल एक को रुकना था।

अगर तुम कुछ ऐसा चलाते हो जिसे ढक्कन बंद होते हुए काम करते रहना है — Ollama, LM Studio, MLX, लंबा Whisper transcription, रात भर का render, Time Machine बैकअप, Docker build, SSH tunnel — तुम इससे टकरा चुके हो। यहाँ है कि वास्तव में क्या हो रहा है, और एक और मेनू बार ऐप ख़रीदे बिना ढक्कन बंद होने पर भी अपने Mac को जगाए रखने का सबसे साफ़ तरीक़ा।

जब तुम ढक्कन बंद करते हो तब macOS क्या करता है

डिफ़ॉल्ट रूप से, macOS बंद ढक्कन को suspend signal की तरह मानता है। डिस्प्ले बंद हो जाती है। CPU schedulers पार्क हो जाते हैं। रेडियो low-power मोड पर गिरते हैं। तुम्हारा लैपटॉप अब पंद्रह के बजाय एक watt से कम उपयोग कर रहा है। तुम्हारी बैटरी धन्यवाद देती है। तुम्हारा inference run नहीं।

अपवाद Apple का आधिकारिक MacBook "clamshell mode" है: अगर Mac बाहरी पावर, एक बाहरी डिस्प्ले, और एक बाहरी कीबोर्ड या माउस से जुड़ा है, तो macOS ढक्कन बंद होने पर सब कुछ जगा रखता है। यह समर्थित रास्ता है।

असमर्थित-पर-काम-करता रास्ता है एक power assertion रखना जो system sleep रोकता है। macOS इसे एक सार्वजनिक CLI — caffeinate command — के रूप में expose करता है:

caffeinate -dimsu

flags कहते हैं: display sleep रोको (-d), idle sleep (-i), disk idle sleep (-m), system sleep (-s), और user को सक्रिय घोषित करो (-u, जो display भी चालू करता है)। उसे terminal में चलाओ और तुम्हारा Mac तब तक नहीं सोएगा जब तक तुम Ctrl-C नहीं दबाते — पर ढक्कन तभी रास्ते से हटता है जब AC पावर लगी हो: -s केवल पावर पर मान्य है, और बैटरी पर तुम कुछ भी पकड़ो, ढक्कन बंद होते ही macOS सो जाता है। कोई GUI नहीं, कोई मेनू बार indicator नहीं, job ख़त्म होने के बाद कोई automatic stop नहीं — व्यवहार में यही इसे भंगुर बनाता है।

यह विशेष रूप से स्थानीय LLMs के लिए क्यों मायने रखता है

जब Mac सोता है, Ollama / LM Studio / MLX जिस GPU और Neural Engine context का उपयोग कर रहा है वह evict हो जाता है। अगला token 30 ms में नहीं आता — वह तब आता है जब तुम फिर से ढक्कन खोलते हो। बदतर, कुछ configurations में Metal context invalidate हो जाता है और मॉडल को disk से reload करना पड़ता है, जो 70B-class मॉडल के लिए 10–30 सेकंड हो सकता है।

निराशाजनक हिस्सा यह है कि यह "तुम्हारा Mac बहुत धीमा है" समस्या नहीं है। Mac ठीक है। यह एक ऐसी पावर पॉलिसी के तहत चल रहा है जो विमान में email टाइप करने के लिए डिज़ाइन की गई है, अनदेखे inference के लिए नहीं।

दूसरा निराशाजनक हिस्सा: अधिकांश "stay awake" ऐप्स तब लिखे गए थे जब स्थानीय LLMs आम नहीं थे, और वे sleep prevention को एक global toggle के रूप में मानते हैं। या तो तुम Mac को हमेशा के लिए जगाए रखते हो, या इसे बंद करना याद रखते हो। "इस run के ख़त्म होने तक जगे रहो" मोड नहीं है।

अपने Mac को सोने से कैसे रोकें: जो setups वास्तव में काम करते हैं

1. बाहरी मॉनिटर + पावर + USB peripheral। यह Apple का समर्थित clamshell मोड है। बस काम करता है। नुक़सान यह है कि तुम्हें हार्डवेयर और डेस्क स्थान चाहिए। अगर तुम सड़क पर रहते हो, यह उत्तर नहीं है।

2. caffeinate(1) के साथ ढक्कन-बंद मोड। CLI काम करता है, पर तुम्हें ढक्कन बंद करने से पहले शुरू करना और बाद में रोकना याद रखना है। अगर भूल गए तो Mac पूरी रात ख़ुशी से full power पर जगा रहेगा। मुझसे पूछो कि मैं कैसे जानता हूँ।

3. pmset noidle के साथ ढक्कन-बंद मोड। caffeinate जैसा ही परिणाम, थोड़ा अलग invocation। वही भूल-कर-रोकना न-पाने का failure mode।

4. एक मेनू बार wake-keeper ऐप। Amphetamine, Lungo, KeepingYouAwake — सब उसी kernel mechanism को wrap करते हैं। अच्छे वाले max duration और "जब तक यह ऐप quit नहीं करता" trigger जोड़ते हैं। बुरे adware बन जाते हैं। सावधानी से चुनो।

5. Timex में Stay Awake मोड। यह वह है जो मैंने अपनी समस्या हल करने के लिए शिप किया। मेनू बार से toggle करो, Mac तब तक जगा रहता है जब तक तुम बंद नहीं करते। कोई timer नहीं है: toggle launch के पार बना रहता है, और मेनू बार में एक स्पष्ट amber pill है ताकि तुम न भूलो कि यह चालू है। डिस्प्ले सामान्य रूप से सोती रहती है। caffeinate -s की तरह, यह ढक्कन बंद होने पर Mac को केवल AC पावर पर जगाए रखता है।

मैं पक्षपाती हूँ। जो फ़िट हो वह चुनो। बात यह है: डिफ़ॉल्ट ढक्कन-बंद व्यवहार और उम्मीद के साथ लंबा LLM job मत चलाओ।

एक walkthrough जो run के पूरा होने पर ख़त्म होता है

मान लो तुम रात भर एक छोटा मॉडल fine-tune करना चाहते हो, या AC पावर पर, ढक्कन बंद के साथ, मूल्यांकनों का लंबा batch चलाना चाहते हो।

# 1. AC में प्लग करो। बैटरी + बंद ढक्कन पर, macOS किसी भी ऐप की
#    परवाह किए बिना force-sleep करता है — वह kernel सीमा है।

# 2. terminal disconnect से बचने के लिए inference job tmux में शुरू करो।
tmux new -s eval
ollama run llama3:70b < eval-prompts.txt > eval-output.txt
# Ctrl-b d से detach करो

# 3. Timex Stay Awake चालू करो (Settings → Stay awake, या
#    मेनू बार popover)। toggle launch के पार बना रहता है।

# 4. ढक्कन बंद करो। चले जाओ। सुबह आओ।

Mac जगा रहता है। अगर ज़रूरत हो तो रेडियो चालू रहता है। Neural Engine context लोड रहता है। Timex पूरे session को लॉग करता है — जब तुम ढक्कन फिर खोलते हो, तुम ठीक देख सकते हो कि हर output कब बना।

ब्रेक टाइमर के बारे में क्या?

यह वह सवाल है जो हमेशा आगे आता है: "अगर Stay Awake मोड Mac को जगा रखता है, और ब्रेक टाइमर हर 25 मिनट पर बजता है, तो क्या मैं 200 banner की एक notification stack पर वापस आऊँगा?"

नहीं। macOS banners को coalesce करता है जब display कुछ देर से बंद रही हो। तुम ढक्कन खोलने पर सबसे हाल का देखोगे, सब नहीं। और ब्रेक टाइमर ट्रैकिंग के समान idle gate का सम्मान करता है — जब 120 सेकंड तक कोई input नहीं, ब्रेक clock भी रुकता है। बिना input के 6 घंटे का eval चलाओ, तुम्हें 14 notifications नहीं मिलतीं। तुम्हें एक मिलती है जब तुम वापस आते हो, काम के पिछले सक्रिय ब्लॉक को framing करती।

"लेकिन मेरी बैटरी" चेतावनी

Stay Awake मोड मुफ़्त नहीं है। CPU जगा रहता है, रेडियो चालू रहता है, SSD spun up रहता है। पूर्ण Metal उपयोग पर inference चलाने वाला 70B मॉडल बैटरी पर 30–50 W खींचेगा। तुम्हें 90 मिनट, शायद दो घंटे मिलेंगे, फिर लैपटॉप मर जाएगा।

एक घंटे से लंबी किसी भी चीज़ के लिए, प्लग करो। Apple की "Optimized Battery Charging" बैटरी को रात भर 100% पर भी स्वस्थ रखेगी, इसलिए लंबी run के लिए प्लग करने की लागत अनिवार्य रूप से शून्य है।

दूसरी चेतावनी: गर्मी। बंद ढक्कन कीबोर्ड के विरुद्ध गर्मी फँसाती है। आधुनिक Apple Silicon Macs उल्लेखनीय thermal performers हैं, पर वे अभी भी कीबोर्ड सतह से गर्मी बाहर निकालने के लिए डिज़ाइन किए गए हैं। अगर तुम मुलायम सतह (सोफ़ा, बिस्तर, गोद) पर घंटों clamshell मोड में भारी job चलाते हो, chassis थर्मल throttling तक पहुँचेगा और तुम्हारे tokens-per-second आधे हो जाएँगे। डेस्क पर रखो। ज़रूरत हो तो उसे एक तरफ झुकाओ।

यह क्या नहीं है

यह असली headless compute की ज़रूरत के लिए workaround नहीं है। अगर तुम production traffic के लिए 24/7 inference चला रहे हो, उत्तर एक Mac mini है जो शेल्फ़ पर बैठा है pmset -a sleep 0 set के साथ और तुम्हारा लैपटॉप तस्वीर से बाहर। MacBook पर Stay Awake मोड उस मामले के लिए है जहाँ तुम कल उसी मशीन से काम करना चाहते हो, पर साथ ही चाहते हो कि वह आज रात का job तुम्हारे बिना grinding करे।

यह "Apple की sleep policy को दूर करने का trick" भी नहीं है। sleep policy 2026 में लैपटॉप्स के लिए सही है। बैटरी जीवन headline feature है। हम जानबूझकर एक विशिष्ट class के लंबे चलने वाले task के लिए opt out कर रहे हैं। ज़रूरत पड़ने पर toggle उपयोग करो। न पड़े तो बंद करो।

TL;DR

  • बंद-ढक्कन नींद डिफ़ॉल्ट है और विमान में टाइप करने के लिए सही है।
  • यह लंबे LLM jobs, रात के renders, या किसी और चीज़ के लिए ग़लत है जो तुम्हारे कीबोर्ड पर न होने पर चलते रहना चाहिए।
  • Apple का समर्थित उत्तर है बाहरी display + पावर + input।
  • CLI उत्तर है caffeinate -dimsu, इस catch के साथ कि इसे रोकना याद रखना है।
  • Timex का उत्तर है Stay Awake के लिए मेनू बार toggle, और एक amber pill ताकि तुम न भूलो कि यह चालू है।
  • एक घंटे से ज़्यादा किसी भी चीज़ के लिए प्लग करो। गर्मी देखो। उन MacBooks की दुनिया में स्वागत है जो शुरू की हुई चीज़ ख़त्म करते हैं।

अगर तुम MacBook पर स्थानीय मॉडल चलाते हो, ढक्कन-बंद toggle को आज़माओ। यह मुफ़्त tier का हिस्सा है — कोई trial सीमा नहीं, कोई license आवश्यक नहीं। 100 घं cap केवल समय-ट्रैकिंग side पर लागू होता है। जब तुम असीमित tracking भी चाहो तो $49 में Timex ख़रीदो।