इस प्रोजेक्ट के बारे में

Clicky एक AI-संचालित शिक्षण सहायक है जो macOS पर आपके कर्सर के पास साथी के रूप में रहता है। यह आपकी स्क्रीन देख सकता है, बातचीत कर सकता है और विशिष्ट इंटरफ़ेस एलिमेंट्स की ओर दृश्य रूप से इशारा कर सकता है। इस रिपॉज़िटरी में Clicky का ओपन-सोर्स संस्करण शामिल है, जो MIT लाइसेंस के तहत जारी किया गया है, जिससे डेवलपर्स इसे संशोधित, अनुकूलित या इस पर आगे निर्माण कर सकते हैं। ## विशेषताएँ - **स्क्रीन जागरूकता**: स्क्रीन सामग्री को कैप्चर और विश्लेषण करने के लिए ScreenCaptureKit का उपयोग करता है। - **वॉइस इंटरैक्शन**: AssemblyAI के माध्यम से रीयल-टाइम ट्रांसक्रिप्शन के साथ पुश-टू-टॉक वॉइस कैप्चर। - **संवादात्मक AI**: संदर्भ-जागरूक प्रतिक्रियाओं के लिए ट्रांसक्रिप्ट और स्क्रीनशॉट को Claude पर स्ट्रीम करता है। - **टेक्स्ट-टू-स्पीच**: ElevenLabs TTS के माध्यम से प्रतिक्रियाएँ चलाता है। - **कर्सर पॉइंटिंग**: Claude कई मॉनिटरों पर विशिष्ट UI एलिमेंट्स पर कर्सर ले जाने के लिए विशेष टैग एम्बेड कर सकता है। - **मेन्यू बार ऐप**: एक नियंत्रण पैनल और एक फुल-स्क्रीन ओवरले विंडो के साथ हल्के मेन्यू बार एप्लिकेशन के रूप में चलता है। ## आर्किटेक्चर - **Swift ऐप** (`leanring-buddy/`): मुख्य एप्लिकेशन लॉजिक शामिल है, जिसमें केंद्रीय स्टेट मशीन, पैनल UI, Claude स्ट्रीमिंग क्लाइंट, ElevenLabs TTS क्लाइंट, ओवरले विंडो और AssemblyAI ट्रांसक्रिप्शन प्रोवाइडर शामिल हैं। - **Cloudflare Worker** (`worker/`): एक छोटा प्रॉक्सी जो API कुंजियों को सुरक्षित रूप से रखता है और `/chat`, `/tts` और `/transcribe-token` एंडपॉइंट्स पर अनुरोध रूट करता है। - **CLAUDE.md**: एक व्यापक आर्किटेक्चर दस्तावेज़ जो AI एजेंट्स के लिए कोडबेस को समझने के उद्देश्य से है। ## सेटअप ### पूर्वापेक्षाएँ - macOS 14.2+ (ScreenCaptureKit के लिए) - Xcode 15+ - Node.js 18+ (Cloudflare Worker के लिए) - एक Cloudflare खाता (मुफ़्त टियर काम करता है) - Anthropic, AssemblyAI और ElevenLabs के लिए API कुंजियाँ ### Claude Code के साथ त्वरित शुरुआत 1. Claude Code इंस्टॉल करें और चलाएँ। 2. दिए गए प्रॉम्प्ट को पेस्ट करें ताकि रेपो क्लोन हो, `CLAUDE.md` पढ़ा जाए और सेटअप के माध्यम से मार्गदर्शन मिले। ### मैनुअल सेटअप 1. **Cloudflare Worker सेट करें**: `worker/` पर जाएँ, `npm install` चलाएँ, फिर `npx wrangler secret put` का उपयोग करके अपनी API कुंजियाँ सीक्रेट के रूप में जोड़ें। `wrangler.toml` में ElevenLabs वॉइस ID सेट करें। `npx wrangler deploy` के साथ डिप्लॉय करें। 2. **Worker को स्थानीय रूप से चलाएँ** (वैकल्पिक): `npx wrangler dev` का उपयोग करें और अपनी कुंजियों के साथ एक `.dev.vars` फ़ाइल बनाएँ। Swift कोड में प्रॉक्सी URL को `http://localhost:8787` पर इंगित करने के लिए अपडेट करें। 3. **प्रॉक्सी URL अपडेट करें**: Swift कोड में `clicky-proxy` खोजें और इसे अपने Worker URL से बदलें। 4. **Xcode में खोलें**: `leanring-buddy.xcodeproj` खोलें, स्कीम चुनें, अपनी साइनिंग टीम सेट करें और Cmd+R के साथ चलाएँ। ### आवश्यक अनुमतियाँ - माइक्रोफ़ोन (पुश-टू-टॉक के लिए) - एक्सेसिबिलिटी (ग्लोबल कीबोर्ड शॉर्टकट के लिए) - स्क्रीन रिकॉर्डिंग (स्क्रीनशॉट के लिए) - स्क्रीन सामग्री (ScreenCaptureKit के लिए) ## प्रोजेक्ट संरचना ``` leanring-buddy/ # Swift स्रोत CompanionManager.swift # केंद्रीय स्टेट मशीन CompanionPanelView.swift # मेन्यू बार पैनल UI ClaudeAPI.swift # Claude स्ट्रीमिंग क्लाइंट ElevenLabsTTSClient.swift # टेक्स्ट-टू-स्पीच प्लेबैक OverlayWindow.swift # नीला कर्सर ओवरले AssemblyAI*.swift # रीयल-टाइम ट्रांसक्रिप्शन BuddyDictation*.swift # पुश-टू-टॉक पाइपलाइन worker/ # Cloudflare Worker प्रॉक्सी src/index.ts # तीन रूट: /chat, /tts, /transcribe-token CLAUDE.md # पूर्ण आर्किटेक्चर दस्तावेज़ ``` ## योगदान PRs का स्वागत है। यदि Claude Code का उपयोग कर रहे हैं, तो यह कोडबेस को समझने और फ़ीचर डेवलपमेंट या बग फ़िक्स में सहायता के लिए `CLAUDE.md` पढ़ सकता है। फ़ीडबैक X (@farzatv) पर लेखक को भेजा जा सकता है।