आपका Mac 40 GB download के आधे रास्ते में सो गया। या remote session गिर गया, या demo के बीच में screen काली हो गई। कोई आपको Mac के लिए Amphetamine app लेने को कहता है, और वो सही है: यह free है, 2014 से Mac App Store में है, और आपके Mac को कब जागते रहना है यह तय करने के इतने तरीक़े देता है कि ज़्यादातर लोगों को उनकी ज़रूरत ही न पड़े।
यह उसी machinery पर चलता है जो macOS आपको free में देता है। यह जानना कि कौन-सी setting किस हिस्से से map होती है, बताता है कि आपको app कब चाहिए, कब एक Terminal command काफ़ी है, और lid बंद करने पर आम keep-awake switch हार क्यों मान लेता है।
छोटा जवाब: Amphetamine, William Gustafson का बनाया एक free menu bar app है जो आपके Mac को — और चाहें तो उसकी display को — on demand, timer पर, किसी file के download या किसी app के चलते हुए, या rule-based Triggers से automatically जागता रखता है। इसे Mac App Store से install करें; इसके लिए macOS 10.13 या बाद का version चाहिए, और मौजूदा version 5.3.2 है, जो November 2023 में release हुआ। एक-बारगी काम के लिए built-in caffeinate command ही असली काम कर देती है। Amphetamine अपनी जगह Triggers और अपने closed-lid mode से बनाता है।
Amphetamine for Mac क्या है, और इसे कौन maintain करता है
Amphetamine एक independent developer, William Gustafson, की बनाई sandboxed Mac App Store utility है। App Store listing (October 2026 में check की गई) पैसे के बारे में साफ़ है: free, कोई ads नहीं, कोई in-app purchases नहीं, कोई paid tier नहीं और कोई tracking नहीं।
दो बातें जो listing सामने नहीं रखती।
आख़िरी release November 2023 का है। Apple का App Store lookup API version 5.3.2 बताता है, जो November 10, 2023 को release हुआ। पहला release November 2014 में था।
5.3.2 के notes एक Sonoma crash ठीक करते हैं। उसके बाद Apple Sequoia, Tahoe और macOS 27 shipped कर चुका है — Apple के Mac User Guide में version picker देखें। इससे app टूटी हुई नहीं हो जाती, पर उन systems में जो बदलाव हुए, उनमें से किसी को किसी release में address नहीं किया गया है।
नाम की वजह से यह लगभग हट ही गया था। December 2020 में Apple ने Gustafson से कहा कि नाम और pill icon "नियंत्रित पदार्थों के अनुचित इस्तेमाल को बढ़ावा देते" दिखते हैं, और January 12, 2021 की deadline तय की। January 2, 2021 को, उनके बयान के मुताबिक़, Apple ने मान लिया कि दोनों का इस्तेमाल "रूपक" के तौर पर और "चिकित्सा अर्थ" में हुआ है। App का नाम बचा रहा।
Sessions और Triggers: Amphetamine app आपके Mac को जागता कैसे रखता है
Session manual mode है। Menu bar से आप एक session शुरू करते हैं जो अनिश्चित काल तक, एक तय अवधि तक, किसी clock time तक, किसी file के download होते हुए, या किसी चुने हुए app के चलते हुए चलता है। Session के अंदर आप तय करते हैं कि display sleep, screen saver, built-in display बंद होने पर sleep, automatic cursor movement और screen locking की इजाज़त है या नहीं (App Store listing)।
Trigger अपनी शर्तें पूरी होने पर ख़ुद एक session शुरू कर देता है। Listing पर मौजूद criteria पाँच groups में बँटते हैं:
- Displays: कोई external display जुड़ा हो, या display mirror हो रही हो।
- Devices: कोई USB या Bluetooth device जुड़ा हो, कोई drive या volume mount हो, headphones या कोई और audio output इस्तेमाल में हो।
- Power: battery charge हो रही हो या किसी threshold से ऊपर हो, power adapter जुड़ा या अलग हुआ हो।
- Network: कोई ख़ास IP address, Wi-Fi network या DNS server, या Cisco AnyConnect VPN connection।
- Apps and load: कोई app चल रहा हो, कोई app चल रहा हो और frontmost हो, CPU use किसी threshold से ऊपर हो, Mac किसी threshold से ज़्यादा idle हो।
यहीं macOS पीछे रह जाता है। macOS 26 में जोड़े गए Shortcuts automations एक पल पर fire होते हैं — display जुड़ी, Mac किसी Wi-Fi network से जुड़ा, charger लगाया गया। Amphetamine के criteria "जब तक" वाली शर्तें हैं: condition बनी रहे, session चलता रहे।
Version history में एक Schedule criterion का भी ज़िक्र है, और एक bug ठीक किया गया है जो एक Trigger में एक से ज़्यादा criteria जोड़ने से रोकता था।
एक sandbox की सीमा: app-running criterion सिर्फ़ वही देख पाता है जो sandbox उसे देखने दे। 5.3 से, एक Process Discovery script — जिसे While App Is Running menu के (?) बटन से install किया जाता है — Amphetamine को Apple Silicon पर ज़्यादा processes देखने देती है (release notes)। 5.3 से पहले इसके लिए एक अलग helper चाहिए था, Amphetamine Enhancer।
क्या Amphetamine lid बंद रहते काम करता है?
हाँ — वो है Closed-Display Mode, यानी वो session option जो built-in display बंद होने पर sleep को रोकता है। Apple Silicon पर एक पेंच है: release notes के मुताबिक़, session के बीच में power लगाना या हटाना इसे तोड़ सकता था। 5.3 ने एक fix script जोड़ी जिसे Touch ID या admin password चाहिए था; 5.3.1 ने वो prompt हटा दिया। वो add-on, Amphetamine Power Protect, GitHub पर अलग से आता है क्योंकि, जैसा उसका install page बताता है, Apple इसे Amphetamine से सीधे install नहीं करने देता।
Power Protect जो install करता है वो नाम से ज़्यादा ठोस है। Developer की published files में मौजूद configuration file एक sudoers rule है जो किसी भी admin account को बिना password के ठीक दो commands चलाने देती है: pmset -a disablesleep 1 और उसका undo, pmset -a disablesleep 0। Script की comments कहती हैं कि Power Protect ऑन करने का मतलब है built-in display बंद रहते sleep को disable करना।
disablesleep Apple के pmset man page में नहीं है; इसकी state pmset -g में SleepDisabled के रूप में दिखती है। दो मुकाबले वाली lid-closed apps, Sleepless और Clamshell, के बनाने वाले कहते हैं कि यह बंद MacBook को battery पर भी जागता रखता है। Apple की documentation इसका ज़िक्र नहीं करती।
Amphetamine Enhancer, search results में दिखने वाला दूसरा add-on, ज़्यादा पुराना है। इसके README के मुताबिक़ यह एक notarized, open-source helper था जो closed-display fail-safe जोड़ता था और Triggers को हर चल रहा process देखने देता था — वो काम जो कोई sandboxed app अकेले नहीं कर सकती। इसका repository आख़िरी बार July 2020 में update हुआ था (GitHub)।
आज Apple Silicon पर process monitoring built-in है और closed-lid भरोसेमंदी Power Protect से आती है।
Apple के supported रास्ते के लिए कोई app नहीं चाहिए। Lid बंद किए Mac laptop तब तक external display चलाता रहता है जब तक वो "power से जुड़ा हो और external keyboard और mouse इस्तेमाल कर रहा हो" (Apple Support)। लंबे चलने वाले कामों के लिए मैंने एक पिछले post में MacBook clamshell mode की पूरी walkthrough दी थी।
क्या आपको Amphetamine की असल में ज़रूरत है?
अगर आपको "X होने पर जागते रहो" वाली automation चाहिए, या menu bar switch वाला lid-closed mode, तो हाँ। एक-बारगी काम के लिए macOS के पास पहले से tool है:
| आपको क्या चाहिए | सबसे आसान tool | सबसे करीबी Amphetamine feature |
|---|---|---|
| किसी command के पूरा होने तक जागते रहें | caffeinate -i ./long-job.sh |
While app is running |
| किसी चल रहे process के quit होने तक जागते रहें | caffeinate -i -w <pid> |
While app is running |
| अगले दो घंटे तक जागते रहें | caffeinate -i -t 7200 |
Timed session |
| Slides या dashboard के लिए screen ऑन रखें | caffeinate -d |
Display sleep बंद वाला session |
| External drive को idle होने से रोकें | caffeinate -m |
Drive Alive |
| Power लगा रहते कभी idle-sleep न हो | System Settings → Battery → Options → "Prevent automatic sleeping on power adapter when the display is off" | — |
| SSH session इस्तेमाल में रहते जागते रहें | अक्सर कुछ नहीं चाहिए: pmset -g में ttyskeepawake check करें |
— |
| Dock, Wi-Fi network, VPN या charger पर जागते रहें | एक Amphetamine Trigger | Trigger |
| External display, keyboard, mouse और power के साथ lid बंद | कुछ नहीं — Apple का closed-display mode | — |
| बिना external display के lid बंद | Amphetamine Closed-Display Mode (Apple Silicon पर Power Protect भी), या हाथ से sudo pmset -a disablesleep 1 |
Closed-Display Mode |
Browser downloads एकमात्र session type हैं जिनके लिए कोई सुथरी one-liner नहीं है, क्योंकि wrap करने को कोई command ही नहीं है।
Table पर दो notes। Battery वाला रास्ता Apple की sleep and wake guide से है; desktop Macs पर वही switch Energy के नीचे है। और ttyskeepawake, pmset man page के मुताबिक़, remote login session सक्रिय रहते idle sleep को रोकता है — जिस macOS 26.7 MacBook पर मैंने check किया, उस पर यह 1 था।
हर option क्या रोकता है, macOS की अपनी भाषा में
Amphetamine, caffeinate की तरह, power assertions रोककर काम करता है — ये नाम वाली requests होती हैं जो macOS को सोने से मना करती हैं; इसके 5.3.2 notes में "power assertions बनाने और छोड़ने" पर काम का ज़िक्र है (App Store)। pmset हर assertion को उसे रोकने वाले process के साथ list करता है, और caffeinate इन्हें Terminal से बनाता है (man page)। मैंने macOS 26.7 पर हर flag चलाया और pmset -g assertions से पढ़ा कि उसने क्या बनाया:
| Flag | यह कौन-सी assertion बनाता है | यह क्या रोकता है | यह क्या नहीं रोक सकता |
|---|---|---|---|
कोई नहीं, या -i |
PreventUserIdleSystemSleep | Idle sleep; display फिर भी सो सकती है | Lid बंद होना, Apple menu से sleep, low battery |
-d |
PreventUserIdleDisplaySleep | Display sleep, और उसके साथ idle sleep | Lid बंद होना |
-m |
PreventDiskIdle | Disks का idle होना | System sleep |
-s |
PreventSystemSleep | System sleep, सिर्फ़ AC power पर | Battery पर कुछ भी |
-u |
UserIsActive | Display ऑन करता है; 5 सेकंड, जब तक -t कुछ और न कहे |
— |
आख़िरी column का source Apple है: IOPMLib.h, यानी वो header जो इन assertions को define करता है, पहली तीन rows को cover करता है; caffeinate man page -s को। यह रही असली entry जो caffeinate -i -t 5 ने बनाई (excerpt: system-wide summary और बाकी processes हटाए गए हैं):
$ caffeinate -i -t 5 &
$ pmset -g assertions
pid 78373(caffeinate): [0x001a50d600019830] 00:00:01 PreventUserIdleSystemSleep named: "caffeinate command-line tool"
Details: caffeinate asserting for 5 secs
Localized=THE CAFFEINATE TOOL IS PREVENTING SLEEP.
Timeout will fire in 4 secs Action=TimeoutActionRelease
यही command किसी Amphetamine session के दौरान चलाइए और देखिए कि आपके चुने options क्या रोक रहे हैं; हर line अपना मालिक बताती है। "मेरा Mac जागता किस वजह से है?" का सबसे तेज़ जवाब भी यही है — सादा pmset -g, sleep prevented by के बाद process के नाम छापता है।
लोग lid पर ही अटकते हैं। उस idle-sleep assertion के बारे में जो caffeinate by default और -i के साथ लेता है, Apple का header कहता है कि system "lid बंद होने, Apple menu, low battery या किसी और sleep वजह से फिर भी सो सकता है।" इसीलिए caffeinate और KeepingYouAwake — जो इसे wrap करता है और साफ़ कहता है कि बंद MacBook को जागता नहीं रख सकता — lid पर आकर रुक जाते हैं। Lid बंद रखने के लिए या तो Apple वाला external-display setup चाहिए या कोई lid-sleep override।
क्या Amphetamine सुरक्षित है?
Mac utilities के हिसाब से देखा जाए तो Amphetamine Mac app काफ़ी दायरे में रहती है। Mac App Store की apps sandboxed चलती हैं — यही वजह है कि Enhancer का अस्तित्व ही है (Enhancer README)। App Store पर developer का privacy label सिर्फ़ diagnostics दिखाता है, वो भी आपसे linked नहीं।
जो तीन add-ons sandbox के बाहर काम करते हैं वो सब opt-in हैं और GitHub पर published हैं: Enhancer, MIT-licensed और Apple से notarized; Process Discovery script, जो Triggers को ज़्यादा processes देखने देती है; और Power Protect, यानी एक script और एक sudoers file जो सिर्फ़ उन दो pmset commands को cover करती है।
असली risk ये है कि कोई भूला हुआ session battery पर sleep को रोके बैठा रहे। Amphetamine battery कम होने पर sessions ख़त्म कर सकता है — इसे ऑन कर लें। अगर आप Closed-Display Mode इस्तेमाल करना बंद कर दें, तो इसके menu में Feedback & Support → Uninstall Scripts… इसकी scripts हटा देता है।
Timex कहाँ फिट होता है
मैं Timex बनाता हूँ, Mac के लिए एक time tracker, और उसमें एक Stay Awake toggle है, तो यह रहा ईमानदार comparison। Stay Awake एक switch है। यह caffeinate -i की तरह idle sleep को तब तक रोकता है जब तक आप इसे बंद न करें, relaunch के बाद भी बना रहता है और quit करने पर release हो जाता है। Display फिर भी सोती है और screen फिर भी lock होती है। Power लगी हो और lid बंद हो, तो Mac चलता रहता है; battery पर lid बंद हो, तो macOS उसे फिर भी सुला देता है। यह एक switch है, rules engine नहीं।
मैंने इसे अपनी ही समस्या ठीक करने के लिए shipped किया — लंबे local-model runs इसलिए अटक जाते थे कि Mac सो जाता था — और मैं चाहता था कि switch उस tracker के बग़ल में हो जो बताता है कि run चलता रहा या नहीं। Local LLM runs पर time track करने वाली बात यही है। Timex में Stay Awake हमेशा के लिए free है। पर अगर आपको बस एक जागता रहने वाला Mac चाहिए, तो Amphetamine free है और कहीं ज़्यादा करता है। Timex के लिए Apple Silicon पर macOS 15 या बाद का version चाहिए, और यह install करने लायक़ सिर्फ़ tracker के लिए है।
ईमानदार caveats
मैंने इस article के लिए Closed-Display Mode test नहीं किया है। इसके बारे में यहाँ जो कुछ है वो developer के release notes और published files से आया है।
disablesleep undocumented है। अगर आपने इसे हाथ से set किया है, तो काम पूरा होने पर sudo pmset -a disablesleep 0 से undo कर दें।
बिना releases वाला app चुपचाप बूढ़ा होता है। 5.3.2 को लगभग तीन साल हो गए हैं। अगर कोई macOS update किसी Trigger को तोड़ दे, तो कोई fix shipped नहीं हुआ है।
बंद lid गर्मी रोक लेती है। Lid बंद करके भारी काम कम airflow में चलता है, जैसा Sleepless FAQ कहता है, और Clamshell की guide इसे bag या sleeve में चलाने से मना करती है। Desk पर रखें।
तो, install करें?
अगर आपको ऐसा Mac चाहिए जो ख़ुद तय करे कि कब जागते रहना है, तो हाँ — macOS में built-in कुछ भी जागने को display, network या charger से उस तरह नहीं बाँधता जैसे Trigger बाँधता है, और Amphetamine का कोई ख़र्च नहीं। अगर हफ़्ते में एक बार किसी download के लिए चाहिए, तो एक Terminal tab में caffeinate -i यानी एक app कम install करना।
और अगर यह भी जानना हो कि Mac के जागते रहते आपके घंटे कहाँ गए, तो Timex download करें। 100 घंटे की trial tracking के लिए काफ़ी है; Stay Awake किसी भी हाल में free रहता है।
— DK