Spark Creative Solutions

Spark Creative Solutions · मॉड्यूल 1

मॉड्यूल 1 · 7 नवंबर 2026

अपने AI सहायक का पुनरावर्ती आत्म-सुधार: न्यूनतम क्रेडिट सेटअप

मेरी कक्षा और दोस्तों के लिए। 7 नवंबर 2026 को Dan के अपने सेटअप पर एक दिन के काम से लिखा गया। Windows या Mac पर Claude, ChatGPT या Gemini के साथ काम करता है; यहाँ किसी भी चीज़ के लिए आपका प्रोग्रामर होना ज़रूरी नहीं। हर कदम बताता है कि हर ऐप में वह चीज़ कहाँ मिलेगी।

यह क्यों काम करता है

आपके ज़्यादातर क्रेडिट सोचने पर खर्च नहीं होते। वे चार रिसावों से बह जाते हैं, और हर एक को एक दोपहर में बंद किया जा सकता है।

  • आपने जो भी प्लगइन, कनेक्टर और टूल चालू कर रखा है, वह हर एक संदेश में लोड होता है, चाहे आप उसे इस्तेमाल करें या नहीं। बीस बेकार पड़े टूल हर चैट के हर मोड़ पर आपसे कीमत वसूलते हैं।
  • स्क्रीनशॉट। जब भी आपका सहायक आपकी स्क्रीन देखता है या तस्वीरों के सहारे ब्राउज़र चलाता है, वह टेक्स्ट पढ़ने से सैकड़ों गुना ज़्यादा चुकाता है।
  • दोबारा समझाना। हर नई चैट जो अंधी शुरू होती है, आपसे अपनी स्थिति फिर टाइप करवाती है, और सहायक से अपनी याददाश्त और पुरानी चैट खँगलवाती है ताकि वह पकड़ सके। वह खोज आपके संदेश से महँगी पड़ती है।
  • शेड्यूल किए गए काम जो हर सुबह सबसे महँगे मॉडल पर सब कुछ पढ़ते हैं, ताकि एक ऐसा पन्ना बने जिसे आप कभी नहीं खोलते।

पूरे सेटअप के पीछे एक ही विचार है: आपका सहायक शुरुआत में एक छोटी फ़ाइल पढ़ता है और अंत में एक छोटी फ़ाइल लिखता है। बाकी सब छँटाई है। Dan का अपना खाता सुबह के चार भारी रन से घटकर एक पर आ गया, और "फिर से बताओ हम कहाँ थे" से एक 300-टोकन की फ़ाइल पर, जिसे सहायक बोलने से पहले पढ़ता है। यही तरीके Claude, ChatGPT और Gemini में काम करते हैं, क्योंकि ये आदतें और फ़ाइलें हैं, फ़ीचर नहीं।

आपको क्या चाहिए और कीमत क्या है

एक भुगतान वाला सहायक प्लान, उसका मुफ़्त डेस्कटॉप ऐप, आपके कंप्यूटर पर एक फ़ोल्डर, और लगभग 40 मिनट। इस गाइड की बाकी हर चीज़ मुफ़्त है।

चीज़कीमतटिप्पणी
सहायक का प्लानकिसी एक ऐप का मानक भुगतान स्तर (Claude Pro, ChatGPT Plus या Google AI Pro)मुफ़्त स्तर फ़ाइल की आदतों के लिए काम करते हैं लेकिन भारी इस्तेमाल पर रोक लगाते हैं। ऊपर के स्तर पर तभी जाएँ जब आप ज़्यादातर दिन सीमा से टकराते हों। कभी भी दो भुगतान वाले प्लान एक साथ नहीं।
उस सहायक का डेस्कटॉप ऐपमुफ़्तआपके कंप्यूटर का फ़ोल्डर पढ़ने के लिए ज़रूरी। Windows और Mac।
एक टेक्स्ट एडिटरमुफ़्तWindows पर Notepad, Mac पर TextEdit, या Obsidian (मुफ़्त, बेहतर, वैकल्पिक)।
Google खातामुफ़्तकदम 6 के मुफ़्त ऑटोमेशन (Apps Script) और कदम 5 के सस्ते सहायक के लिए।
Pythonमुफ़्तसिर्फ़ कदम 4 की वैकल्पिक पल्स स्क्रिप्ट के लिए। Mac में पहले से है; Windows पर python.org से दो क्लिक में इंस्टॉल होता है।
खर्च की सीमा0पहले ही दिन तय करें: एक मासिक सीमा, ऑटो-रीलोड बंद। यही सीमा प्रयोग को सुरक्षित बनाती है।

जब तक आपके पास Mac न हो, Windows मानकर चलें; नीचे हर कदम के दोनों संस्करण हैं। फ़ोन पढ़ने के लिए है, इस सेटअप के लिए नहीं।

कदम 1, छँटाई

दस मिनट, और इस सूची की सबसे बड़ी अकेली बचत। जो कुछ चालू है, वह हर संदेश में लोड होता है।

  • ऐप की सेटिंग खोलें और देखें कि आपने कौन से प्लगइन, कनेक्टर, इंटीग्रेशन, GPT या एक्सटेंशन चालू कर रखे हैं। जो पिछले दो हफ़्तों में इस्तेमाल नहीं हुआ, सब बंद कर दें। ज़रूरत पड़ने पर एक क्लिक में वापस चालू हो जाएगा।
  • एक ऑटोमेशन कनेक्टर रखें, दो नहीं। अगर आपके पास IFTTT और Zapier दोनों हैं, तो वह रखें जिसमें कुछ असली हो।
  • याददाश्त: अपने सहायक से कहें कि वह दिखाए कि उसे क्या याद है ("मेरे बारे में जो कुछ याद है, श्रेणी के अनुसार निर्यात करो")। जो गलत या पुराना है, मिटा दें। सादे शब्दों में बताएँ कि क्या रखना है: आपका नाम, आपका काम, वे नियम जिनका पालन आप चाहते हैं। अच्छी याददाश्त का मतलब है कम दोबारा समझाना; पुरानी याददाश्त का मतलब है आत्मविश्वास से भरे गलत जवाब।
  • खर्च: बिलिंग पेज ढूँढें, मासिक सीमा तय करें, ऑटो-रीलोड बंद करें। अगर पिछले महीने आपके टॉप-अप फ़्लैट प्लान की कीमत से कहीं ऊपर गए, तो अगला स्तर क्रेडिट से सस्ता है।

कहाँ मिलेगा। Claude: Settings, फिर Connectors और Plugins; याददाश्त Settings, Memory में। ChatGPT: Settings, फिर Apps and connectors; याददाश्त Personalization, Manage memories में। Gemini: Settings, फिर Apps; याददाश्त Saved info में। खर्च की सीमा हर ऐप के बिलिंग पेज पर है, या API कंसोल पर अगर आप एक इस्तेमाल करते हैं।

कदम 2, होम फ़ोल्डर और तीन फ़ाइलें

एक ऐसा फ़ोल्डर बनाएँ जिसे आपका सहायक हमेशा देख सके, और उसमें तीन छोटी टेक्स्ट फ़ाइलें रखें। यही पूरी निरंतरता प्रणाली है; यह 40 पंक्तियों में समा जाती है।

अपनी होम डायरेक्टरी में ops नाम का फ़ोल्डर बनाएँ। सहायक के डेस्कटॉप ऐप में उसे जोड़ें (Claude: + बटन, Add folder; ChatGPT: Settings, Work with apps या डेस्कटॉप ऐप का फ़ोल्डर चयनकर्ता; Gemini: एक Google Drive फ़ोल्डर वही काम करता है, क्योंकि Gemini Drive पढ़ता है)। फिर किसी भी टेक्स्ट एडिटर से उसके अंदर ये तीन फ़ाइलें बनाएँ।

फ़ाइलइसमें क्या हैकौन लिखता है
NOW.mdआप अभी कहाँ हैं: किस पर काम कर रहे हैं, आख़िरी पूरी हुई चीज़, अगला कदम, वह एक चीज़ जो आपका इंतज़ार कर रही है। अधिकतम 20 पंक्तियाँ।आप, एक मिनट में, काम के खंड की शुरुआत और अंत में। या कदम 4 की पल्स स्क्रिप्ट, अपने आप।
handoff.mdहर सत्र की दो पंक्तियाँ: तारीख़, क्या हुआ, आगे क्या। सबसे नई प्रविष्टि ऊपर।सहायक, हर काम की चैट के अंत में, जब आप कहते हैं "हैंडऑफ़ लिखो"।
hands.mdउन कामों की टिक सूची जो सिर्फ़ आप कर सकते हैं: टाइप करने के लिए पासवर्ड, साझा करने के लिए फ़ाइल, दबाने के लिए बटन।सहायक जोड़ता है; आप टिक करते हैं।

तीनों के टेम्पलेट परिशिष्ट में हैं। जो नियम इन्हें काम का बनाता है: इन फ़ाइलों में कुछ भी गुप्त नहीं, कुछ भी लंबा नहीं, और सहायक कुछ और करने से पहले इन्हें पढ़ता है।

अगर आप Obsidian इस्तेमाल करते हैं, तो फ़ोल्डर को अपने वॉल्ट के अंदर रखें। Obsidian का Local REST API प्लगइन, और Claude डेस्कटॉप कॉन्फ़िग में एक पंक्ति, सहायक को हर बार फ़ोल्डर जोड़े बिना वॉल्ट पढ़ने और लिखने देता है; वह बाद की किसी शाम का प्रोजेक्ट है, पहले दिन का नहीं।

कदम 3, Ops प्रोजेक्ट और शुरुआती निर्देश

एक प्रोजेक्ट बनाएँ (Claude: Project; ChatGPT: Project या कस्टम GPT; Gemini: एक Gem, या निजी खातों पर 17 नवंबर 2026 के बाद, एक Saved info प्रविष्टि और एक पिन किया हुआ Drive फ़ोल्डर) और यह उसके निर्देश के रूप में चिपकाएँ:

On the first turn of every chat, before anything else, read ops/NOW.md, ops/handoff.md and ops/hands.md. Open by saying in one line where I am and what I was doing, then take my message. No screenshots and no searching old chats until those three files are read.

At the end of a working session, when I say "write the handoff", add two lines to the top of ops/handoff.md: the date, what was done, what is next. Anything that needs my own hands goes as a tick-box line into ops/hands.md.

Style: concise, no moralising, no numbered lists, no em dashes. Ask before anything that cannot be undone: sending, deleting, sharing, publishing, paying. Never type a password; I type those.

कॉपी करें: ops-project-instructions.txt (अंग्रेज़ी में; निर्देश हिन्दी में भी उतना ही काम करता है, चाहें तो अपने सहायक से अनुवाद करवा लें)

ops फ़ोल्डर को प्रोजेक्ट से ही जोड़ें, किसी एक चैट से नहीं, ताकि हर नई चैट उसे देख सके। लगभग सारा काम इसी एक प्रोजेक्ट के अंदर करें। ज़्यादातर ऐप्स में प्रोजेक्ट एक-दूसरे को नहीं देख पाते; जब आपका काम एक जगह रहता है तो यह मायने रखना बंद कर देता है।

असर: नई चैट शुरू करने की कोई कीमत नहीं। सहायक शुरू करता है "आप न्यूज़लेटर के ड्राफ़्ट के बीच में थे, Takeout अभी चल रहा है, और प्रिंटर को काग़ज़ चाहिए", और आप आगे बढ़ते हैं।

कदम 4, पल्स (वैकल्पिक, वह हिस्सा जो जादू जैसा लगता है)

एक छोटी सी स्क्रिप्ट हर पाँच मिनट में NOW.md को इस बात से फिर लिखती है कि आप असल में क्या कर रहे हैं, ताकि आपको उसे हाथ से कभी अपडेट न करना पड़े। यह तीन चीज़ें दर्ज करती है: सामने वाला ऐप और उसकी विंडो का शीर्षक, पिछले 15 मिनट में छुई गई फ़ाइलें, और hands.md व handoff.md का ऊपरी हिस्सा। कुछ भी आपके कंप्यूटर से बाहर नहीं जाता और यह कभी स्क्रीनशॉट नहीं लेती।

निजता शुरू से बनी हुई है, बाद में जोड़ी हुई नहीं। स्क्रिप्ट में ऐप्स की एक छोटी सूची है जिनके विंडो शीर्षक कभी दर्ज नहीं होते (पासवर्ड मैनेजर, Signal, बैंकिंग) और यह किसी भी निजी ब्राउज़िंग विंडो को छोड़ देती है। अगर कोई ऐप अनुमति सूची में नहीं है, तो सिर्फ़ उसका नाम दर्ज होता है। इंस्टॉल करने से पहले ये सूचियाँ संपादित करें।

  • Windows: परिशिष्ट से pulse.ps1 को ops में सहेजें, फिर Task Scheduler खोलें, Create Basic Task, ट्रिगर "When I log on", क्रिया "Start a program": powershell.exe -ExecutionPolicy Bypass -File "C:\Users\you\ops\pulse.ps1", और टास्क की प्रॉपर्टीज़ में इसे हर 5 मिनट दोहराने पर सेट करें। एक डायलॉग, हो गया।
  • Mac: परिशिष्ट से pulse.py और install-pulse.command को ops में सहेजें, .command फ़ाइल पर एक बार डबल-क्लिक करें, दोनों अनुमति संकेतों पर OK दबाएँ।

जाँचें कि यह काम करता है: पाँच मिनट बाद NOW.md खोलें। अगर पहली पंक्ति में समय है, तो चक्र पूरा हो गया, और अब से हर चैट यह जानते हुए खुलती है कि आप कहाँ हैं।

Gemini उपयोगकर्ता: स्क्रिप्ट का आउटपुट स्थानीय फ़ोल्डर की बजाय Drive फ़ोल्डर पर भेजें, और Gemini उसे वहाँ से पढ़ता है।

कदम 5, सस्ते सहायक

आपका मुख्य सहायक महँगा वाला है। भारी पढ़ाई किसी सस्ते को दें और सिर्फ़ नतीजा वापस लाएँ।

  • लंबी फ़ाइलें। 200 पन्नों का PDF कभी अपनी मुख्य चैट में न चिपकाएँ। पहले किसी सस्ते मॉडल से उसका सार बनवाएँ (AI Studio में Gemini का मुफ़्त स्तर, या तीनों ऐप्स में से किसी का मुफ़्त स्तर), फिर अपने मुख्य सहायक को दो पन्नों का सार दें। दस गुना सस्ता, अक्सर बेहतर, क्योंकि मुख्य सहायक अब एक साफ़ सार पर तर्क करता है।
  • दूसरी राय। किसी फ़ैसले के लिए एक मज़बूत जवाब चार से बेहतर है। कई मॉडल तभी इस्तेमाल करें जब आप चाहते हों कि वे असहमत हों, और फिर एक संश्लेषण माँगें।
  • टेक्स्ट चिपकाएँ, कभी अपलोड न करें। बहु-मॉडल सेवा पर अपलोड की गई फ़ाइल उनके स्टोरेज में बिना डिलीट बटन के पड़ी रह सकती है; Dan ने यह महँगे तरीके से सीखा। जो टेक्स्ट पढ़वाना है वही चिपकाएँ, नाम, पते, स्वास्थ्य और ग्राहक विवरण हटाकर, और कुछ नहीं। मुफ़्त स्तर आपके चिपकाए टेक्स्ट से प्रशिक्षण ले सकते हैं, इसलिए सफ़ाई वैकल्पिक नहीं है।
  • एक स्क्रिप्ट जो रखने लायक़ है, तकनीक में रुचि रखने वालों के लिए: 40 पंक्तियों की एक Python फ़ाइल, जिसके बगल की फ़ाइल में आपकी Gemini कुंजी हो, जो कमांड लाइन से किसी भी दस्तावेज़ का सार बना दे ताकि मुख्य सहायक को उसे कभी लोड न करना पड़े। Dan का संस्करण council.py है; उससे माँग लें। कुंजी पर खर्च की सीमा, महीने के कुछ यूरो, इसे भूल जाने लायक़ सुरक्षित बना देती है।

कहाँ मिलेगा। Gemini कुंजियाँ: AI Studio, API keys; भुगतान स्तर कौड़ियों का है और Google कहता है कि भुगतान स्तर का डेटा प्रशिक्षण में इस्तेमाल नहीं होता। Claude और ChatGPT कुंजियाँ: उनके डेवलपर कंसोल, वही विचार, वही सीमाएँ। पहले दिन ज़रूरी नहीं।

कदम 6, शेड्यूल किए गए काम जो अपनी कीमत वसूल करें

शेड्यूल किया गया काम एक ऐसी चैट है जो आपके बिना चलती है। इसकी कीमत एक चैट जितनी है, हर दिन, हमेशा, इसलिए हर एक को अपनी कीमत खुद वसूल करनी होगी।

  • वे रखें जिनका नतीजा आप तक पुश नोटिफ़िकेशन के रूप में पहुँचता है और जिसे आप सचमुच पढ़ते हैं। सुबह की एक पंक्ति जिसमें आज का कैलेंडर और वे दो ईमेल हों जो मायने रखते हैं, उसकी कीमत है। एक सुंदर पन्ना जिसे आप कभी नहीं खोलते, उसकी नहीं।
  • हर काम को उस सबसे सस्ते मॉडल पर रखें जो उसे कर सके। एक सूची पढ़ना और छाँटना छोटे मॉडल का काम है। रसीदें पढ़ना और रकम सही निकालना मध्यम मॉडल माँगता है। टाइमर पर सबसे बड़े मॉडल की ज़रूरत लगभग किसी को नहीं।
  • नियम-आधारित कामों को मॉडल की ज़रूरत ही नहीं। जाने-पहचाने भेजने वालों की मेल पर लेबल लगाना और संग्रहित करना एक Gmail फ़िल्टर है। किसी साझा फ़ोल्डर पर किसी और के संपादन की निगरानी छह पंक्तियों की एक Google Apps Script है जो टाइमर पर चलती है, मुफ़्त, और यह देख सकती है कि किसने संपादित किया, जो सहायक नहीं देख सकता। कैलेंडर की जाँच एक रेगेक्स है। सहायक से स्क्रिप्ट लिखवाएँ; आप उसे script.google.com में चिपकाएँ और एक बार Allow दबाएँ।
  • महीने में एक बार, सारे काम सूचीबद्ध करें और हर एक से पूछें: क्या मैंने इसे पिछले हफ़्ते पढ़ा? अगर नहीं, तो काट दें या आधा कर दें।

कहाँ मिलेगा। Claude: शेड्यूल किए गए काम, साइडबार में दिखते हैं, हर एक की अपनी मॉडल सेटिंग। ChatGPT: Tasks। Gemini: Scheduled actions। Google Apps Script तीनों के लिए काम करती है, क्योंकि वह आपके Google खाते में रहती है, सहायक में नहीं।

एक ऑडिट से पहले और बाद में Dan का खाता: सबसे बड़े मॉडल पर सप्ताह के दिनों के चार भारी रन एक हो गए; दिन में दो बार फ़ोल्डर की निगरानी एक मुफ़्त स्क्रिप्ट बन गई; बाकी छोटे मॉडलों पर चले गए। वही जानकारी उस तक पहुँचती है, क्रेडिट का एक अंश।

सुरक्षा नियम जो इस सबके साथ चलते हैं

ये सावधानी के लिए सावधानी नहीं हैं। हर एक इसलिए है क्योंकि इसे एक बार छोड़ने की कीमत किसी ने असली समय या निजता से चुकाई।

  • पासवर्ड और API कुंजियाँ आप टाइप करते हैं, अपने कंप्यूटर की फ़ाइल में, चैट में कभी नहीं। चैट में चिपकाई गई कुंजी उस ट्रांसक्रिप्ट में रह जाती है। अगर ऐसा हो जाए, तो उसी दिन नई कुंजी बनाएँ और पुरानी मिटा दें।
  • आपकी हाँ के बिना कुछ भी अपरिवर्तनीय नहीं: न भेजना, न मिटाना, न साझा करना, न प्रकाशित करना, न भुगतान। यह पंक्ति अपने प्रोजेक्ट निर्देशों में रखें और सहायक हर बार पूछेगा।
  • बाहरी मॉडलों को टेक्स्ट चिपकाएँ, फ़ाइलें कभी नहीं। पहले नाम, पते, स्वास्थ्य, पैसे और ग्राहक विवरण हटाएँ। उन शब्दों की सूची रखें जो आपकी मशीन से कभी बाहर नहीं जाने चाहिए और चिपकाने से पहले टेक्स्ट को उससे मिलाएँ।
  • Private नाम के फ़ोल्डर निजी रहते हैं। सहायक को बताएँ कि वह कौन से फ़ोल्डर कभी नहीं पढ़ सकता, और वह सूची प्रोजेक्ट निर्देशों में भी रखें।
  • विंडो शीर्षक और हाल की फ़ाइलें आपकी ज़िंदगी का लॉग हैं। पल्स की मना सूची को ईमानदार रखें, और NOW.md को किसी भी साझा की जाने वाली चीज़ से बाहर रखें।
  • सहायक की अनुमति प्रणाली का इनकार कोई बाधा नहीं जिसे घुमाकर पार किया जाए। वह प्रणाली अपना काम कर रही है; वह कदम आपकी hands.md सूची में जाता है।
  • अपने शब्द अपने रखें। जब आप सहायक की लिखी कोई चीज़ आगे भेजें, तो बताएँ। जब वह आपके लिए ड्राफ़्ट करे, तो अपना विराम-चिह्न और अपनी आवाज़ रखें; चमक ही पोल खोलती है।

हफ़्ते के पंद्रह मिनट

यही इसे पुनरावर्ती बनाता है: सहायक अपना सेटअप खुद सुधारता है, और आप वह हाथ हैं जो क्लिक करता है।

हफ़्ते में एक बार, Ops प्रोजेक्ट खोलें और कहें: "hands.md और handoff.md पढ़ो। बताओ कि इस हफ़्ते मैं किस चीज़ के पैसे दे रहा हूँ जो मैंने इस्तेमाल नहीं की, तुम्हें मुझसे क्या दो बार पूछना पड़ा, और कौन सा एक बदलाव सबसे ज़्यादा क्रेडिट बचाएगा। फिर जो हम तय करें, उससे प्रोजेक्ट निर्देश अपडेट करो।" जब तक वह सोचे, hands.md पर जो टिक कर सकें, कर दें।

तीन सवाल इस चक्र को ईमानदार रखते हैं:

  • इस हफ़्ते मैंने क्या दोबारा समझाया? वह प्रोजेक्ट निर्देशों या याददाश्त से गायब एक पंक्ति है।
  • सहायक ने क्या स्क्रीनशॉट लिया या खोजा जो एक फ़ाइल उसे बता सकती थी? वह NOW.md से गायब एक पंक्ति है।
  • शेड्यूल पर क्या चला जिसे मैंने कभी नहीं पढ़ा? वह काटने लायक़ एक काम है।

जवाब निर्देशों में लिखें, अपने दिमाग़ में नहीं। एक महीने में सेटअप आप पर दस्ताने की तरह फ़िट बैठेगा और क्रेडिट का बिल पहले का एक अंश रह जाएगा। फिर इसे एक दोस्त को सिखाएँ; समझाने से ही पता चलता है कि कौन से हिस्से आप अब भी आदत से करते हैं।

कहीं भी लंबे डैश नहीं, क्रमांकित सूचियाँ नहीं, जो कुछ आप अपने नाम से भेजें उसमें आपका अपना विराम-चिह्न। ओवर एंड आउट, प्यार के साथ।

परिशिष्ट: कॉपी करने के लिए टेम्पलेट और स्क्रिप्ट

तीनों फ़ाइलें, जैसी वे पहले दिन दिखनी चाहिए। हर एक डाउनलोड भी है; राइट-क्लिक, ops में सहेजें। फ़ाइलें अंग्रेज़ी में हैं; वे वैसे ही काम करती हैं, और अपने सहायक से उनका अनुवाद करवाना एक अच्छा पहला अभ्यास है।

NOW.md

# NOW.md
Working on: the newsletter draft, section 3
Last finished: sent the invoice to the printer
Next: proofread section 3, then export the PDF
Waiting on me: reply to the landlord about Thursday

डाउनलोड: NOW.md

handoff.md

# handoff.md (newest on top)
2026-11-07 Set up the ops folder, Project and pulse. Next: prune the plugins, set the spend cap.

डाउनलोड: handoff.md

hands.md

# hands.md: things only I can do
- [ ] set the monthly spend limit and turn auto-reload off
- [ ] connect the ops folder to the Project

डाउनलोड: hands.md

Windows पल्स: pulse.ps1

ops में सहेजें, Task Scheduler से हर 5 मिनट पर शेड्यूल करें। पहले ऊपर की दो सूचियाँ संपादित करें।

# pulse.ps1: rewrites ops\NOW.md with what you are doing. Nothing leaves this computer.
$ops = "$HOME\ops"
$deny = @("1Password","Bitwarden","KeePass","Signal","Passwords")          # never logged at all
$titleOk = @("Claude","ChatGPT","Code","Obsidian","chrome","msedge","firefox","WINWORD","EXCEL","notepad","explorer","WhatsApp","OUTLOOK","Zoom")  # window title logged only for these
Add-Type @"
using System; using System.Runtime.InteropServices;
public class W { [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")] public static extern uint GetWindowThreadProcessId(IntPtr h, out uint pid); }
"@
$h = [W]::GetForegroundWindow(); $procId = 0; [W]::GetWindowThreadProcessId($h, [ref]$procId) | Out-Null
$p = Get-Process -Id $procId -ErrorAction SilentlyContinue
$app = if ($p) { $p.ProcessName } else { "unknown" }; $title = ""
if ($deny -contains $app) { $app = "[private app]" }
elseif ($titleOk -contains $app -and $p.MainWindowTitle -and $p.MainWindowTitle -notmatch "InPrivate|Incognito|Private") { $title = $p.MainWindowTitle.Substring(0, [Math]::Min(90, $p.MainWindowTitle.Length)) }
$since = (Get-Date).AddMinutes(-15)
$files = Get-ChildItem "$HOME\Documents","$HOME\Desktop","$HOME\Downloads",$ops -Recurse -File -ErrorAction SilentlyContinue |
  Where-Object { $_.LastWriteTime -gt $since -and $_.FullName -notmatch "\\Private\\|Signal|\\\.git\\|node_modules|NOW\.md" } |
  Sort-Object LastWriteTime -Descending | Select-Object -First 8
$lines = @("# NOW (auto, $(Get-Date -Format 'ddd dd MMM HH:mm'), pulse.ps1, read this first)", "Active: $app" + $(if ($title) { " `"$title`"" } else { "" }))
$lines += "Files touched (last 15 min):"
if ($files) { $files | ForEach-Object { $lines += "  " + $_.FullName.Replace($HOME, "~") } } else { $lines += "  none" }
foreach ($f in @("hands.md","handoff.md")) { if (Test-Path "$ops\$f") { $lines += "From ${f}:"; Get-Content "$ops\$f" | Where-Object { $_.Trim() -and -not $_.StartsWith("#") } | Select-Object -First 5 | ForEach-Object { $lines += "  $_" } } }
$lines | Select-Object -First 22 | Set-Content "$ops\NOW.md" -Encoding UTF8

डाउनलोड: pulse.ps1

Mac पल्स: pulse.py और install-pulse.command

दोनों को ops में सहेजें, .command पर एक बार डबल-क्लिक करें।

#!/usr/bin/env python3
# pulse.py: rewrites ops/NOW.md with what you are doing. Nothing leaves this computer.
import os, subprocess, datetime, re
HOME = os.path.expanduser("~"); OPS = os.path.join(HOME, "ops")
DENY = {"Signal", "Passwords", "1Password", "Keychain Access", "Bitwarden", "Messages", "Photos"}
TITLE_OK = {"Claude", "ChatGPT", "Obsidian", "Google Chrome", "Safari", "Finder", "Pages", "Numbers", "TextEdit", "Notes", "Mail", "WhatsApp", "Zoom", "Code"}
EXCLUDE = ("/Private", "Signal", "/.git", "node_modules", "/Library/", "NOW.md")
def osa(s):
    try: return subprocess.run(["osascript", "-e", s], capture_output=True, text=True, timeout=8).stdout.strip()
    except Exception: return ""
app = osa('tell application "System Events" to get name of first application process whose frontmost is true')
title = ""
if app in DENY: app = "[private app]"
elif app in TITLE_OK:
    title = osa('tell application "System Events" to tell (first application process whose frontmost is true) to get name of front window')[:90]
    if re.search(r"incognito|private", title, re.I): title = "[private window]"
files = []
for d in ("Documents", "Desktop", "Downloads", "ops"):
    r = subprocess.run(["mdfind", "-onlyin", os.path.join(HOME, d), "kMDItemFSContentChangeDate >= $time.now(-900)"], capture_output=True, text=True)
    files += [p for p in r.stdout.splitlines() if os.path.isfile(p) and not any(x in p for x in EXCLUDE)]
files = sorted(set(files), key=os.path.getmtime, reverse=True)[:8]
lines = ["# NOW (auto, %s, pulse.py, read this first)" % datetime.datetime.now().strftime("%a %d %b %H:%M"), "Active: %s%s" % (app or "unknown", ' "%s"' % title if title else "")]
lines.append("Files touched (last 15 min):"); lines += ["  " + p.replace(HOME + "/", "~/") for p in files] or ["  none"]
for f in ("hands.md", "handoff.md"):
    p = os.path.join(OPS, f)
    if os.path.exists(p):
        lines.append("From %s:" % f); lines += ["  " + l.rstrip() for l in open(p, encoding="utf-8") if l.strip() and not l.startswith("#")][:5]
open(os.path.join(OPS, "NOW.md"), "w", encoding="utf-8").write("\n".join(lines[:22]) + "\n")

डाउनलोड: pulse.py

#!/bin/bash
# install-pulse.command: runs pulse.py every 5 minutes via launchd. Double-click once.
OPS="$HOME/ops"; PL="$HOME/Library/LaunchAgents/com.me.pulse.plist"; mkdir -p "$HOME/Library/LaunchAgents"
cat > "$PL" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>Label</key><string>com.me.pulse</string>
<key>ProgramArguments</key><array><string>/usr/bin/python3</string><string>$OPS/pulse.py</string></array>
<key>StartInterval</key><integer>300</integer><key>RunAtLoad</key><true/></dict></plist>
PLIST
launchctl bootout "gui/$(id -u)/com.me.pulse" 2>/dev/null; launchctl bootstrap "gui/$(id -u)" "$PL" && echo "installed"
python3 "$OPS/pulse.py" && cat "$OPS/NOW.md"

डाउनलोड: install-pulse.command

Gemini Gems, अगर वे आपके निजी Google खाते में हैं: उन्हें 17 नवंबर 2026 से पहले निर्यात करें (Google Takeout, सब अचयनित करें, सिर्फ़ "Gemini" चुनें); निर्देश टेक्स्ट के रूप में निकलते हैं जिन्हें आप किसी प्रोजेक्ट या Saved info प्रविष्टि में चिपका सकते हैं।