মূল কনটেন্টে যান
এআই টিউটোরিয়াল

macOS Spotlight ও Siri থেকে Claude Code ব্যবহার করুন

Siri-এর জন্য Claude কীভাবে ইনস্টল করবেন, এটি একটি প্রমাণীকৃত Claude Code অ্যাকাউন্টের সঙ্গে সংযুক্ত করবেন, পরীক্ষামূলক provider discovery চালু করবেন এবং Spotlight-এর মাধ্যমে টেক্সট প্রম্পট পাঠাবেন তা শিখুন। এই টিউটোরিয়ালে প্রকল্পটির আর্কিটেকচার, নিরাপত্তা-সংক্রান্ত সীমাবদ্ধতা, পরীক্ষার সরঞ্জাম, সমস্যা সমাধানের ধাপ এবং বর্তমান সীমাবদ্ধতাগুলিও ব্যাখ্যা করা হয়েছে।

macOS Spotlight ও Siri থেকে Claude Code ব্যবহার করুন

Claude for Siri কী করে

Claude for Siri একটি পরীক্ষামূলক macOS প্রকল্প, যা সাইন-ইন করা Claude Code অ্যাকাউন্টকে macOS Spotlight এবং সংশ্লিষ্ট Siri ইন্টারফেসে provider হিসেবে ব্যবহারযোগ্য করে। এর মেনু বার অ্যাপ্লিকেশনটি একটি বিল্ট-ইন Swift bridge চালায়, sandboxed provider extension থেকে অনুরোধ গ্রহণ করে, স্থানীয় Claude Code CLI চালু করে এবং Apple-এর নেটিভ response interface-এ টেক্সট উত্তর স্ট্রিম করে।

নিরাপত্তা সতর্কতা: এই প্রকল্পের জন্য System Integrity Protection এবং Apple Mobile File Integrity নিষ্ক্রিয় থাকা macOS 27 প্রয়োজন। এতে macOS-এর নিরাপত্তা সুরক্ষা উল্লেখযোগ্যভাবে কমে যায়। প্রাথমিক বা production মেশিনের বদলে একটি নির্দিষ্ট development Mac ব্যবহার করুন। অ্যাপ্লিকেশন ও এর script-গুলো আপনার হয়ে এই সুরক্ষাগুলো নিষ্ক্রিয় করে না।

এটি একটি স্বতন্ত্র proof of concept, কোনো অফিসিয়াল Apple বা Anthropic integration নয়। এটি private, beta-specific API-এর ওপর নির্ভরশীল এবং macOS 27 build 26A428 ও Xcode 27 27A266a-এ পরীক্ষা করা হয়েছে।

প্রধান বৈশিষ্ট্য ও সীমাবদ্ধতা

বর্তমানে যা কাজ করে

  • Spotlight-এ provider discovery, consent এবং invocation প্রদর্শিত হয়েছে।
  • Swift bridge একটি authenticated Claude Code account-এর মাধ্যমে live request সম্পন্ন করতে পারে।
  • উত্তরগুলো ধাপে ধাপে Apple-এর নেটিভ response UI-তে স্ট্রিম হয়।
  • প্রতিটি অনুরোধ একটি নতুন conversation শুরু করে।
  • নির্বাচিত টেক্সটের জন্য Writing Tools support বাস্তবায়িত হয়েছে, যদিও নেটিভ ইন্টারফেসে এটি যাচাই করা হয়নি।
  • মেনু বার অ্যাপ্লিকেশনে connection পরীক্ষা, discovery চালু এবং স্বাভাবিক discovery আচরণ পুনরুদ্ধারের নিয়ন্ত্রণ রয়েছে।

গুরুত্বপূর্ণ সীমাবদ্ধতা

  • Provider কেবল টেক্সট পরিচালনা করে।
  • এটি ছবি তৈরি করতে বা attachment গ্রহণ করতে পারে না।
  • এটি device action সম্পাদন করতে পারে না।
  • এটি Siri-এর mail, contacts, messages বা semantic index-এ প্রবেশ করে না।
  • Voice routing এখনো যাচাই করা হয়নি।
  • এই extension-কে system-wide default Ask provider করার কোনো যাচাইকৃত উপায় নেই।
  • Spotlight, Siri-এর আলাদা Ask menu এবং System Settings-এ ভিন্ন provider list দেখা যেতে পারে।

Apple-এর সাধারণ onboarding interface-এ image generation-এর উল্লেখ থাকতে পারে বা একটি placeholder icon দেখা যেতে পারে। এগুলো এই প্রকল্পের দেওয়া capability নির্দেশ করে না। নির্ভরযোগ্য routing পদ্ধতি হলো প্রতিটি Spotlight request-এর জন্য স্পষ্টভাবে Ask… → Claude নির্বাচন করা।

পূর্বশর্ত

প্রকল্পটি ইনস্টল করার আগে প্রয়োজনীয় software ও configuration-সহ একটি development Mac প্রস্তুত করুন:

  • SIP এবং AMFI আগে থেকেই নিষ্ক্রিয় থাকা macOS 27।
  • Xcode 27, যার license গ্রহণ করা এবং প্রথমবার চালুর component installation সম্পন্ন করা হয়েছে।
  • XcodeGen ইনস্টল করার জন্য Homebrew।
  • XcodeGen।
  • Claude Code, ইনস্টল ও সাইন-ইন করা।
  • Git এবং একটি terminal ব্যবহারের access।

Homebrew দিয়ে XcodeGen ইনস্টল করুন:

brew install xcodegen

Claude Code-এ authenticate করুন:

claude auth login

এগিয়ে যাওয়ার আগে account state নিশ্চিত করতে পারেন:

claude auth status

Claude for Siri ইনস্টল করুন

1. Repository clone করুন

git clone https://github.com/mpociot/claude-siri-ai.git
cd claude-siri-ai

2. Application build ও install করুন

./scripts/install.sh

Installer application-টি build করে ~/Applications/Claude.app-এ রাখে এবং এটি খোলে। একই নির্দিষ্ট path-এ অন্য কোনো application আগে থেকেই থাকলে installation থেমে যায়। /Applications/Claude.app-এ থাকা Anthropic-এর application আলাদা এবং user-local installation path-এর সঙ্গে সংঘর্ষ করে না।

Build-এ xcode-select দ্বারা নির্বাচিত Xcode ব্যবহার করা হয়। ভুল developer directory সক্রিয় থাকলে Xcode স্পষ্টভাবে নির্দিষ্ট করুন:

DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer ./scripts/install.sh

3. Claude Code connection পরীক্ষা করুন

ইনস্টল করা Claude application খুলে Test Connection-এ ক্লিক করুন। Application-টি Claude CLI-এর জন্য প্রচলিত location-গুলো অনুসন্ধান করে। সঠিক executable খুঁজে না পেলে Choose Claude CLI… ব্যবহার করে ম্যানুয়ালি নির্বাচন করুন।

4. Provider discovery চালু করুন

Enable in Spotlight…-এ ক্লিক করুন এবং macOS administrator dialog-এ authenticate করুন। macOS যাতে custom extension খুঁজে পায়, সে জন্য application-টি সাময়িকভাবে Siri ও Spotlight-কে expanded provider discovery সহ পুনরায় চালু করে।

এই ব্যবস্থা সাময়িক। Mac restart করা বা Siri service restart করার পর আবার Enable in Spotlight…-এ ক্লিক করতে হতে পারে। সাময়িক process override সরাতে Restore Normal Discovery ব্যবহার করুন।

আপনার প্রথম Prompt পাঠান

  1. Claude menu bar application চালু রাখুন।
  2. Spotlight খোলার জন্য ⌘Space চাপুন।
  3. Spotlight input field-এ right-click করুন।
  4. Ask… → Claude নির্বাচন করুন।
  5. একটি text prompt লিখে submit করুন।
  6. macOS Apple-এর consent interface দেখালে Turn On flow সম্পন্ন করুন।

উদাহরণস্বরূপ, আপনি জিজ্ঞেস করতে পারেন:

Explain the difference between async and parallel programming in three short paragraphs.

উত্তরটি Apple-এর নেটিভ interface-এ স্ট্রিম হওয়া উচিত। প্রতিটি request যেহেতু নতুন conversation শুরু করে, তাই Spotlight-এর মাধ্যমে জমা দেওয়া আগের prompt Claude মনে রেখেছে ধরে নেবেন না।

Application-এর settings window বন্ধ করলে bridge বন্ধ হয় না; এটি মেনু বারের মাধ্যমে সচল থাকে। Application-টি স্বয়ংক্রিয়ভাবে চালু করতে চাইলে Open at login চালু করুন, তবে এই option বাধ্যতামূলক নয়।

Integration কীভাবে কাজ করে

Spotlight / Siri
  → স্যান্ডবক্সে চলা ClaudeProvider.appex
  → 127.0.0.1:17839-এ প্রমাণীকৃত HTTP/NDJSON
  → Claude.app-এর ভেতরের Swift bridge
  → সাইন-ইন করা Claude Code CLI
  → স্ট্রিম করা টেক্সট
  → নেটিভ Siri প্রতিক্রিয়া

প্রোভাইডার এক্সটেনশনটি স্যান্ডবক্সে চলে এবং IPv4 লুপব্যাকের মাধ্যমে হোস্ট অ্যাপ্লিকেশনের সঙ্গে যোগাযোগ করে। হোস্ট স্যান্ডবক্সের বাইরে থাকে, যাতে এটি Claude Code CLI চালু করতে পারে।

প্রতিটি অনুরোধের জন্য CLI একটি ব্যক্তিগত অস্থায়ী ডিরেক্টরিতে চলে; টুল নিষ্ক্রিয় থাকে, কোনো MCP সার্ভার থাকে না, নিরাপদ মোড চালু থাকে, Chrome ইন্টিগ্রেশন থাকে না এবং কোনো স্থায়ী কথোপকথন রাখা হয় না। কাজ শেষ হওয়ার পর অস্থায়ী প্রম্পট ইনপুট মুছে ফেলা হয়। প্রকল্পের নথি অনুযায়ী, ব্রিজটি প্রম্পট, প্রতিক্রিয়া বা শংসাপত্র লগ করে না।

স্থানীয় সার্ভার প্রতিটি অনুরোধের প্রমাণীকরণ করে এবং ব্রাউজারের Origin হেডার ও অস্পষ্ট HTTP ফ্রেমিং প্রত্যাখ্যান করে। এটি অনুরোধের বডির আকার, খোলা সংযোগ, একসঙ্গে চলা Claude প্রক্রিয়া এবং কাজের সময়ও সীমিত রাখে।

স্থানীয় টোকেন বুঝে নিন

বিল্ডের সময় .local/bridge.json-এ একবার একটি এলোমেলো bearer token তৈরি করা হয় এবং সেটি হোস্ট ও এক্সটেনশন টার্গেটে যুক্ত করা হয়। পুনরায় বিল্ড করলেও টোকেনটি অক্ষুণ্ণ থাকে। আপনার স্থানীয় টোকেন থাকা কম্পাইল করা অ্যাপ্লিকেশন বান্ডেল বিতরণ করবেন না।

টোকেনটি দুর্ঘটনাজনিত বা ব্রাউজার-ভিত্তিক প্রবেশ ঠেকাতে সাহায্য করে, তবে অ্যাপ্লিকেশন বান্ডেল পড়তে সক্ষম অন্য কোনো স্থানীয় প্রক্রিয়ার বিরুদ্ধে এটি নিরাপত্তা-সীমা নয়।

ডিসকভারি বুঝে নিন

প্রোভাইডার ডিসকভারি Apple-এর বিদ্যমান Siri ও প্রোভাইডার প্রক্রিয়াগুলোর মধ্যে একটি অস্থায়ী, সীমিত পরিসরের রানটাইম শিম ব্যবহার করে। এটি Apple-এর বাইনারি, লঞ্চ প্লিস্ট, বুট আর্গুমেন্ট, entitlement যাচাই বা প্রোভাইডারের অনুমোদন পরিবর্তন করে না। Apple-এর নেটিভ সম্মতি প্রক্রিয়ার মাধ্যমে আপনাকে এখনও প্রোভাইডারটি অনুমোদন করতে হবে।

বিল্ড ও ডেভেলপমেন্ট কমান্ড

ইনস্টল না করে বিল্ড করুন

./scripts/build.sh

বিদ্যমান বিল্ড ইনস্টল করুন

./scripts/install.sh --skip-build

XcodeGen প্রকল্প তৈরি করে। হোস্ট ও এক্সটেনশন উভয়ই ব্যক্তিগত com.apple.developer.model-delegation entitlement ব্যবহার করে এবং ad-hoc স্বাক্ষরিত। এই সেটআপ বিতরণযোগ্য Apple entitlement প্রদান করে না।

ইনস্টলেশনের পর অ্যাপ্লিকেশনটি bridge, discovery script এবং কম্পাইল করা discovery shim অন্তর্ভুক্ত করে। তাই রানটাইমে ইনস্টল করা অ্যাপ্লিকেশনের repository checkout, Xcode বা Python প্রয়োজন হয় না। Claude Code ইনস্টল করা ও প্রমাণীকৃত অবস্থায় থাকতে হবে। Discovery সেশনের সময় ইনস্টল করা অ্যাপ্লিকেশনটি তার বর্তমান path থেকে সরাবেন না।

কমান্ড লাইন থেকে ডিসকভারি নিয়ন্ত্রণ করুন

./scripts/discovery-session.sh start
./scripts/discovery-session.sh stop

প্রথম কমান্ডটি অস্থায়ী discovery session শুরু করে। দ্বিতীয়টি স্বাভাবিক discovery আচরণ পুনরুদ্ধার করে।

প্রকল্প পরীক্ষা করা

Swift টেস্ট স্যুট চালান

swift test --scratch-path .local/swift-build

নেটিভ Swift পরীক্ষাগুলোর জন্য Claude account প্রয়োজন হয় না। দশটি পরীক্ষা HTTP প্রমাণীকরণ ও অনুরোধ যাচাই, ধাপে ধাপে টেক্সট সরবরাহ, কাজ সম্পন্ন ও ত্রুটি ব্যবস্থাপনা, প্রক্রিয়ার সময়সীমা ও বাতিলকরণ এবং একটি নকল CLI-এর মাধ্যমে বাস্তব localhost round trip যাচাই করে।

লাইভ ব্রিজ অনুরোধ চালান

./scripts/smoke.sh

এই কমান্ডটি চলমান অ্যাপ্লিকেশন ও আপনার প্রমাণীকৃত Claude account-এর মাধ্যমে একটি লাইভ অনুরোধ পাঠায়। নথিভুক্ত সফল প্রতিক্রিয়া হলো Claude bridge works।

এক্সটেনশন ও অ্যাপ্লিকেশনের স্বাক্ষর পরীক্ষা করুন

pluginkit -m -A -D -v -i dev.goldengate.Claude.Provider
codesign --verify --deep --strict "$HOME/Applications/Claude.app"

প্রথম কমান্ডটি macOS প্রোভাইডার এক্সটেনশনটি নিবন্ধন করেছে কি না পরীক্ষা করে। দ্বিতীয়টি ইনস্টল করা অ্যাপ্লিকেশনের কোড স্বাক্ষর যাচাই করে।

সমস্যা সমাধান

ব্রিজ শুরু হয় না

Claude for Siri-এর ডুপ্লিকেট কপিগুলো বন্ধ করুন এবং অন্য কোনো প্রক্রিয়া TCP port 17839 ব্যবহার করছে কি না পরীক্ষা করুন। কেবল নির্দিষ্ট ব্রিজটিরই এই port-এ listen করা উচিত।

Ask মেনুতে Claude দেখা যায় না

অ্যাপ্লিকেশনটি খুলে আবার Enable in Spotlight… চালান। প্রদর্শিত যেকোনো macOS সম্মতি প্রম্পট সম্পন্ন করুন। reboot বা Siri service restart-এর পর Discovery আবার চালানোর প্রয়োজন হতে পারে।

Claude CLI শনাক্ত হয় না

claude auth status দিয়ে নিশ্চিত করুন যে Claude Code ইনস্টল ও প্রমাণীকৃত আছে। এরপর অ্যাপ্লিকেশনে Choose Claude CLI… ব্যবহার করে executable-টি ম্যানুয়ালি নির্বাচন করুন।

Spotlight ও System Settings-এর তথ্য মেলে না

এটি পরীক্ষামূলক provider-discovery path-এর একটি পরিচিত ফলাফল। Spotlight, Siri-এর আলাদা Ask মেনু এবং System Settings ভিন্ন provider list দেখাতে পারে। একটি interface-এ কোনো provider দেখা গেলেই যে সেটি সব interface-এ দেখা যাবে, এমন নয়।

Claude স্বয়ংক্রিয়ভাবে ব্যবহৃত হয় না

এই প্রকল্প যাচাই করা default-provider setting প্রদান করে না। আগের কোনো কথোপকথনে Claude নির্বাচিত থাকলেও প্রতিটি নতুন Spotlight অনুরোধ Ask… → Claude দিয়ে খুলুন। অ্যাপ্লিকেশনটি ইচ্ছাকৃতভাবে যাচাই না করা Make default নিয়ন্ত্রণ দেখায় না।

উন্নত ব্যবহার ও নিরাপত্তা পরামর্শ

  • একটি আলাদা ডেভেলপমেন্ট মেশিন ব্যবহার করুন, কারণ SIP এবং AMFI নিষ্ক্রিয় করলে অপারেটিং সিস্টেমের মূল সুরক্ষা ব্যবস্থা দুর্বল হয়ে যায়।
  • কোনো ডিসকভারি সেশন সক্রিয় থাকা অবস্থায় ইনস্টল করা অ্যাপ্লিকেশনটি ~/Applications/Claude.app-এ রাখুন।
  • পরীক্ষামূলক ডিসকভারি আর প্রয়োজন না হলে Restore Normal Discovery অথবা ./scripts/discovery-session.sh stop ব্যবহার করুন।
  • স্থানীয়ভাবে তৈরি বান্ডেল বিতরণ করবেন না, কারণ এগুলোতে আপনার সেটআপের জন্য তৈরি করা bearer token থাকে।
  • ব্রিজের অথেন্টিকেশন, স্ট্রিমিং, টাইমআউট বা বাতিলকরণের আচরণ পরিবর্তন করার আগে Swift টেস্ট চালান।
  • ব্রিজ বা অ্যাকাউন্টের সমস্যা থেকে Spotlight ডিসকভারি-সংক্রান্ত সমস্যা আলাদা করতে স্মোক টেস্ট ব্যবহার করুন।
  • স্থায়ী কথোপকথনের পরিবর্তে স্বতন্ত্র অনুরোধ প্রত্যাশা করুন।
  • আলাদা নেটিভ পরীক্ষা না করে Writing Tools, ভয়েস রাউটিং বা ডিফল্ট-প্রোভাইডারের আচরণের ওপর নির্ভর করবেন না।

উপসংহার

Claude for Siri দেখায়, কীভাবে একটি স্যান্ডবক্সড macOS প্রোভাইডার এক্সটেনশন, একটি স্থানীয় অথেন্টিকেটেড Swift ব্রিজ এবং Claude Code একসঙ্গে Spotlight-এর নেটিভ Ask ইন্টারফেসে টেক্সট প্রতিক্রিয়া স্ট্রিম করতে পারে। প্রকল্পটি পরীক্ষা-নিরীক্ষা ও ডেভেলপমেন্টের জন্য উপযোগী হলেও এর প্রাইভেট API, হ্রাসকৃত সিস্টেম সুরক্ষা, অস্থায়ী ডিসকভারি ব্যবস্থা এবং যাচাই না করা Siri আচরণের কারণে সাধারণ প্রোডাকশন ব্যবহারের জন্য এটি উপযুক্ত নয়।