
স্ক্রিনে বড় তীর কী করে
স্ক্রিনে বড় তীর, যাকে bigarrow-ও বলা হয়, একটি macOS কমান্ড-লাইন টুল, যা প্রতিটি উইন্ডোর ওপরে অত্যন্ত দৃশ্যমান একটি তীর ও নির্দেশনা দেখায়। এটি এমন AI এজেন্টদের জন্য তৈরি, যারা কম্পিউটারের বেশিরভাগ কাজ করতে পারে, কিন্তু কিছু সিদ্ধান্ত মানুষের কাছে ফিরিয়ে দিতে হয়।
উদাহরণস্বরূপ, কোনো এজেন্ট System Settings-এর Allow বোতাম দেখিয়ে দিতে পারে, সঠিক ব্রাউজার উইন্ডো শনাক্ত করতে পারে, অথবা কাউকে একাধিক ধাপের কাজ সম্পন্ন করতে নির্দেশনা দিতে পারে। নিয়ন্ত্রণ ব্যবহারকারীর কাছেই থাকে: bigarrow কখনো ক্লিক, টাইপ বা স্ক্রিন ধারণ করে না।
ওভারলে সাধারণ উইন্ডো, ডায়ালগ, পূর্ণ-স্ক্রিন অ্যাপ এবং Spaces-এর ওপরে দেখা যায়, তবে ইতিমধ্যে ফোকাসে থাকা অ্যাপের কীবোর্ড ফোকাস অপরিবর্তিত থাকে। লক্ষ্যস্থানে ক্লিক করলে তা নিচের অ্যাপের কাছেই পৌঁছে যায়। নির্ধারিত সময় শেষ হলে বা মালিক প্রক্রিয়া বন্ধ হয়ে গেলে তীরটিও স্বয়ংক্রিয়ভাবে সরিয়ে যায়।
আপনার এজেন্ট কী করতে হবে তা ব্যাখ্যা করতে পারে, তারপর মানুষকে ব্যবহার করতে হবে এমন নির্দিষ্ট নিয়ন্ত্রণটির ওপর দৃশ্যমানভাবে আঙুল রাখতে পারে।
কখন ব্যবহার করবেন
যখনই কোনো AI এজেন্টের সিদ্ধান্ত নেওয়া বা কোনো কাজ সম্পন্ন করার জন্য মানুষের সাহায্য দরকার হয়, তখন bigarrow উপকারী। সাধারণ উদাহরণের মধ্যে রয়েছে অনুমতির প্রম্পট, OAuth সম্মতি স্ক্রিন, দ্বি-ধাপের প্রমাণীকরণ, CAPTCHA, passkey, পেমেন্ট, স্বাক্ষর এবং আইনি নিশ্চিতকরণ।
একই ধরনের একাধিক উইন্ডো বা নিয়ন্ত্রণ দৃশ্যমান থাকলেও এটি নির্দেশনাকে আরও স্পষ্ট করতে পারে। ব্যবহারকারীকে খোলা অনেক উইন্ডোর মধ্যে খুঁজতে বলার বদলে কোনো এজেন্ট নির্দিষ্ট অ্যাপ্লিকেশন, উইন্ডো বা ব্রাউজার ট্যাব নির্বাচন করতে পারে।
অন্যান্য ব্যবহারের মধ্যে রয়েছে কাউকে কোনো অ্যাপ্লিকেশন ব্যবহার শেখানো, দূরবর্তী সহায়তা দেওয়া, স্ক্রিনকাস্টের সময় নিয়ন্ত্রণগুলো হাইলাইট করা এবং অন্য কোনো অটোমেশন টুল থেকে পাওয়া স্থানাঙ্ক সঠিক কি না তা যাচাই করা।
macOS-এ ইনস্টল করুন
প্রকল্পটি macOS 14 বা পরবর্তী সংস্করণ সমর্থন করে। ইনস্টলের সবচেয়ে সহজ পদ্ধতি হলো Homebrew:
brew install franzenzenhofer/tap/bigarrow
Claude Code এবং Codex কখন ও কীভাবে টুলটি ব্যবহার করবে তা জানাতে চাইলে এর agent skill-ও ইনস্টল করুন:
bigarrow install-skill
এটি Claude Code-এর জন্য ~/.claude/skills এবং Codex-এর জন্য ~/.agents/skills-এ skill ইনস্টল করে। Skill ইনস্টল না করেও শেল থেকে সরাসরি bigarrow চালাতে পারেন।
সোর্স থেকে বিল্ড করুন
নিজে প্রকল্পটি কম্পাইল করতে Xcode 16 বা পরবর্তী সংস্করণ ব্যবহার করুন:
swift build -c release
তৈরি হওয়া বাইনারিটি .build/release/bigarrow-এ থাকে। অ্যাপ্লিকেশনটি Swift-এ লেখা। scripts/-এর shell ও Python ফাইলগুলো স্ক্রিনশট এবং পরীক্ষার কাজে ব্যবহৃত হয়।
প্রথমবার নির্দেশ করার কমান্ড
তিনটি মৌলিক প্যাটার্ন হলো কোনো accessibility element-এর দিকে নির্দেশ করা, স্থানাঙ্কের দিকে নির্দেশ করা এবং আপনি থামানো পর্যন্ত তীরটি দৃশ্যমান রাখা।
লেবেলযুক্ত নিয়ন্ত্রণে নির্দেশ করুন
bigarrow point --element "Allow" --app "System Settings" --text "Franz, click Allow: Ghostty may control your Mac"
--element লেবেল ব্যবহার করে কোনো নিয়ন্ত্রণ খুঁজে বের করে, আর --app সেটি থাকা অ্যাপ্লিকেশন শনাক্ত করে। নির্দেশনাটি ব্যবহারকারীকে কী করতে হবে তা ব্যাখ্যা করে।

স্থানাঙ্কে নির্দেশ করুন
bigarrow point --at 760,500 --text "Franz, click HERE"
স্থানাঙ্কে বিশ্বব্যাপী ওপর-বাম দিক থেকে গণনা করা logical point ব্যবহার করা হয়। macOS Accessibility, CGWindowList এবং Peekaboo যে একই স্থানাঙ্ক ব্যবধান জানায়, এটিও সেই ব্যবধান। আপনি একটি আয়তক্ষেত্রের দিকেও নির্দেশ করতে পারেন:
bigarrow point --rect 600,400,240,80 --text "This is the area to review"
পরবর্তী ধাপ পর্যন্ত তীর দৃশ্যমান রাখুন
bigarrow start --window "Safari:Inbox" --text "This window"
bigarrow stop
start সঙ্গে সঙ্গে ফল ফেরত দেয় এবং তীরটি দৃশ্যমান রাখে। বর্তমান তীর সরাতে stop, অথবা সব তীর সরাতে stop --all ব্যবহার করুন।
একবার চালানো point কমান্ডের ডিফল্ট স্থায়িত্ব আট সেকেন্ড। --duration দিয়ে এটি পরিবর্তন করুন; start-এর ডিফল্ট 300 সেকেন্ড। সময়সীমা না রাখতে --duration 0 ব্যবহার করুন।
সঠিক লক্ষ্য নির্বাচন করুন
bigarrow বিভিন্ন উৎস থেকে লক্ষ্য নিতে পারে:
--at X,Yকোনো স্থানাঙ্কে নির্দেশ করে।--rect X,Y,W,Hএকটি আয়তাকার এলাকা হাইলাইট করে।--mouseবর্তমান মাউসের অবস্থানে নির্দেশ করে।--window App[:title]কোনো উইন্ডারে নির্দেশ করে।--element Label --app Appএকটি accessibility element খুঁজে বের করে।--peekaboo ID --snapshot see.jsonPeekaboo-এরsee --jsonআউটপুট থেকে পাওয়া element ID ব্যবহার করে।
কোনো অ্যাপ্লিকেশন যে নিয়ন্ত্রণগুলো প্রকাশ করে সেগুলো দেখতে চালান:

bigarrow elements --app "System Settings"
একাধিক ডিসপ্লের ক্ষেত্রে --display N স্থানাঙ্ক ও আয়তক্ষেত্রের মানকে একটি নির্দিষ্ট ডিসপ্লের সাপেক্ষে গণনা করে। মূল ডিসপ্লের বাম দিকে বা ওপরে থাকা ডিসপ্লের জন্য ঋণাত্মক বিশ্বব্যাপী স্থানাঙ্ক সমর্থিত।
সঠিক উইন্ডো বা ব্রাউজার ট্যাব লক্ষ্য করুন
আপনি যখন --app App[:window or tab title] বা --window দেন, তখন আঁকার আগে bigarrow সংশ্লিষ্ট অ্যাপ্লিকেশন, উইন্ডো বা Chrome/Safari ট্যাবকে সামনে আনতে পারে। এর ফলে সঠিক তীরটি ভুল দৃশ্যমান উইন্ডোর ওপর দেখানোর সম্ভাবনা থাকে না।
bigarrow point --app "Google Chrome:Pull request" --text "Review this pull request"
ব্যবহারকারীর উইন্ডোগুলো ঠিক যেভাবে আছে সেভাবেই রাখতে চাইলে --no-raise ব্যবহার করুন। পরে অন্য কোনো অ্যাপ্লিকেশন লক্ষ্যটিকে ঢেকে দিলে, লক্ষ্যটি আবার দৃশ্যমান না হওয়া পর্যন্ত তীরটি লুকিয়ে থাকবে।
তীরগুলো স্পষ্ট ও কার্যকর করুন
আপনি তীরের আকৃতি, স্টাইল, আকার, কোণ, রং এবং আচরণ কাস্টমাইজ করতে পারেন:
--shape bend|straight|zigzag|spiralতীরের পথ নির্বাচন করে।--style arrow|ring|boxসাধারণ তীর, শুধু-বর্ডারের রিং, অথবা শুধু-বর্ডারের বক্স নির্বাচন করে।--size S|M|Lআকার পরিবর্তন করে।--corners round|sharpসাইনের কোণ নিয়ন্ত্রণ করে।--color red|orange|yellow|green|teal|blue|purple|pink|black|white|#RRGGBBপ্রধান রং নির্ধারণ করে।--border shadow|white-black|blackবর্ডারের ধরন পরিবর্তন করে।--border-color,--text-color, এবং--edge-colorআলাদা রং কাস্টমাইজ করে।--close-buttonসাইনে ক্লিকযোগ্য X যোগ করে।
উদাহরণস্বরূপ, এই কমান্ডটি একটি লক্ষ্যের চারপাশে দৃশ্যমান সবুজ বক্স আঁকে:
bigarrow point --at 760,500 --style box --color green --text "Review this control"
ক্লোজ বোতামটি ডিফল্টভাবে সক্রিয় নয়; এটি মানুষকে ওভারলে সরানোর সরাসরি উপায় দেয়:

bigarrow start --element "Save" --app "TextEdit" --close-button --text "Click Save when ready"
কার্যকর ইন্টারঅ্যাকশন অপশন
বেশ কয়েকটি অপশন ওভারলেটিকে একটি নির্দেশিত ওয়ার্কফ্লোর সঙ্গে যুক্ত করতে সাহায্য করে:
--followউইন্ডো বা উপাদানের সঙ্গে তীরটি সরায়।--until-clickলক্ষ্যে ক্লিক করার পর তীরটি সরিয়ে দেয়।--sayসাইনের লেখা জোরে পড়ে শোনায়, যা ব্যবহারকারী স্ক্রিনের দিকে না তাকিয়ে থাকলে কার্যকর।--jsonএজেন্ট ও স্ক্রিপ্টের জন্য মেশিন-পাঠযোগ্য আউটপুট দেয়।
তাই একটি নির্দেশিত ক্রম প্রথমে একটি কন্ট্রোলে নির্দেশ করতে পারে, ব্যবহারকারীর কাজের জন্য অপেক্ষা করতে পারে, তীরটি থামাতে পারে, তারপর পরের কন্ট্রোলে নির্দেশ করতে পারে। টুলটি নিজে থেকে ক্লিক করে না।
অনুমতিগুলো বুঝুন
ওভারলে আঁকার জন্য macOS Screen Recording বা Accessibility অনুমতির প্রয়োজন হয় না। তবে লক্ষ্য খুঁজে বের করা বা সক্রিয় করার কিছু পদ্ধতির জন্য অনুমতি প্রয়োজন।
--at,--rect,--mouse,--window App,--peekaboo, এবং--app App-এর জন্য অনুমতি প্রয়োজন হয় না।--element,elements,--until-click, এবং--app App:title-এর জন্য Accessibility প্রয়োজন।--window App:title-এর জন্য উইন্ডোর শিরোনাম পড়তে Screen Recording এবং উইন্ডো সামনে আনতে Accessibility প্রয়োজন, যদি না আপনি--no-raiseব্যবহার করেন।
macOS এই অনুমতিগুলো bigarrow বাইনারিকে নয়, বরং যে অ্যাপ্লিকেশনটি bigarrow চালু করেছে তাকে দেয়, যেমন Terminal, iTerm2, Ghostty, VS Code, অথবা Claude।
প্রাসঙ্গিক অনুমতিগুলো, সেগুলোর মালিক অ্যাপ্লিকেশন এবং সংযুক্ত ডিসপ্লেগুলো দেখতে ডায়াগনস্টিক কমান্ডটি চালান:
bigarrow doctor
প্রয়োজনীয় কোনো অনুমতি না থাকলে, কমান্ডটি স্ট্যাটাস কোড 4 দিয়ে শেষ হয় এবং সংশ্লিষ্ট অ্যাপ্লিকেশন ও সেটিংস প্যানেলের নাম জানায়।

স্বয়ংক্রিয় পরিষ্কার নিরাপদে ব্যবহার করুন
এজেন্টের কাজ শেষ হওয়ার পর তীরগুলো থেকে যাওয়ার জন্য তৈরি নয়। নির্দিষ্ট সময়ের point কমান্ড নিজে থেকেই তীরটি সরিয়ে দেয়। তীরটি তৈরি করা এজেন্ট প্রসেস শেষ হলেও তীরটি শেষ হয়, যখন CLAUDE_PID অথবা BIGARROW_OWNER_PID পাওয়া যায়।
Claude Code ওয়ার্কফ্লোর জন্য, মানুষের প্রতিক্রিয়ার সময় সেই সেশনের তীরগুলো সরাতে bigarrow stop --hook-কে UserPromptSubmit হুক হিসেবে ব্যবহার করা যায়। স্পষ্ট পরিষ্কার কমান্ডগুলো হলো:
bigarrow stop
bigarrow stop --all
স্বাভাবিক পরিষ্কারের ধাপে পৌঁছানোর আগেই কোনো এজেন্ট বাধাপ্রাপ্ত বা প্রতিস্থাপিত হতে পারে; এই সুরক্ষাগুলো তখন কার্যকর।
এজেন্ট ওয়ার্কফ্লোতে JSON ও এক্সিট কোড ব্যবহার করুন
প্রতিটি কমান্ড --json গ্রহণ করে, ফলে প্রোগ্রামগতভাবে ফলাফল পরিদর্শন করা সহজ হয়। নথিভুক্ত এক্সিট কোডগুলো হলো:
0: কমান্ড সফলভাবে সম্পন্ন হয়েছে।2: ইনপুট অবৈধ।3: লক্ষ্য খুঁজে পাওয়া যায়নি।4: প্রয়োজনীয় অনুমতি অনুপস্থিত।
কোনো এজেন্ট এই ফলাফল ব্যবহার করে অন্য লক্ষ্য পদ্ধতিতে আবার চেষ্টা করবে, ব্যবহারকারীর কাছে অনুমতি চাইবে, নাকি অনুরোধ করা কন্ট্রোলটি খুঁজে পাওয়া যায়নি তা ব্যাখ্যা করবে, সে সিদ্ধান্ত নিতে পারে।
উন্নত লক্ষ্য ডিবাগিং
Accessibility, Peekaboo বা অন্য কোনো টুল থেকে পাওয়া স্থানাঙ্ক সঠিক কি না নিশ্চিত না হলে, ড্রাই রান ব্যবহার করুন:
bigarrow point --at 760,500 --dry-run --json
ওভারলে না এঁকে টুলটি কোথায় নির্দেশ করত, এটি তা জানায়। ব্যবহারকারীকে কিছু দেখানোর আগে স্থানাঙ্ক রূপান্তর, ডিসপ্লে নির্বাচন এবং অটোমেশনের ফলাফল যাচাই করতে এটি কার্যকর।
Peekaboo আরেকটি লক্ষ্য উৎস দিতে পারে। একটি Peekaboo JSON স্ন্যাপশট নিন, তারপর মিলে যাওয়া উপাদান ID পাঠান:
bigarrow point --peekaboo ELEMENT_ID --snapshot see.json --text "Review this element"
Chrome-এ, পেজের উপাদানগুলোর জন্য Chrome-এর --force-renderer-accessibility ফ্ল্যাগ অথবা VoiceOver প্রয়োজন হতে পারে। Chrome-এর নিজস্ব টুলবার স্বাভাবিক অ্যাক্সেসিবিলিটি পথেই উপলভ্য থাকে। পেজের কনটেন্ট প্রকাশিত না হলে পরিবর্তে স্থানাঙ্ক ব্যবহার করুন।
এজেন্টদের কীভাবে স্কিলটি ব্যবহার করা উচিত
অন্তর্ভুক্ত স্কিলটি একটি Agent Skills-সামঞ্জস্যপূর্ণ SKILL.md-এর মাধ্যমে Claude Code এবং Codex উভয়কেই সমর্থন করে; এতে agents/openai.yaml-এ Codex মেটাডেটা রয়েছে। এটি এজেন্টকে কখন নির্দেশ করতে হবে, কীভাবে একটি লক্ষ্য নির্বাচন করতে হবে, সাইনে কীভাবে একটি সম্পূর্ণ বাক্য লিখতে হবে, কখন --say ব্যবহার করতে হবে এবং ব্যবহারকারী কাজটি সম্পন্ন করার পর কখন থামতে হবে তা শেখায়।
একটি ব্যবহারিক এজেন্ট-ধাপক্রম এমন হতে পারে:
- মানুষের নিশ্চিতকরণ বা সহায়তা প্রয়োজন এমন একটি কাজ শনাক্ত করুন।
- একটি লেবেল, উইন্ডো, ট্যাব, স্থানাঙ্ক, আয়তক্ষেত্র অথবা Peekaboo লক্ষ্য নির্বাচন করুন।
- ব্যবহারকারীকে ঠিক কী করতে হবে এবং কেন করতে হবে তা উল্লেখ করে একটি সাইন লিখুন।
- বর্তমান লেআউট সংরক্ষণ করা গুরুত্বপূর্ণ না হলে লক্ষ্য অ্যাপ্লিকেশনটি সামনে আনুন।
- মানুষের কাজ করা বা উত্তর দেওয়ার জন্য অপেক্ষা করুন।
- পরবর্তী ধাপে যাওয়ার আগে তীরটি থামান।
টুলটি যা করে না
bigarrow ইচ্ছাকৃতভাবেই সীমিত। এটি মানুষের জন্য কোনো স্ক্রিন অ্যানোটেটর, ক্লিক বট বা স্ক্রিনশট টুল নয়। এটি কখনো ক্লিক, টাইপ বা স্ক্রিন ক্যাপচার করে না। এর উদ্দেশ্য হলো কোনো প্রোগ্রামের নির্দেশ দৃশ্যমান করা, আর সিদ্ধান্ত ও কাজটি মানুষের হাতে রাখা।
রিং ও বক্সের স্টাইলগুলো আউটলাইন ব্যবহার করে, যাতে লক্ষ্যটি দৃশ্যমান থাকে। জায়গা থাকলে সাইনটি লক্ষ্য থেকে দূরে স্থাপন করা হয় এবং ক্লোজ বোতাম সক্রিয় থাকলে মানুষ তীরটি বন্ধ করতে পারে। এসব নকশাগত সিদ্ধান্তের কারণে পারমিশন, প্রমাণীকরণ, পেমেন্ট ও ডিপ্লয়ের মতো সংবেদনশীল কাজেও টুলটি উপযোগী।
উপসংহার
bigarrow macOS-ভিত্তিক AI এজেন্টদের অস্পষ্ট টার্মিনাল বার্তার আশ্রয় না নিয়ে সহজে কোনো ব্যক্তির হাতে নিয়ন্ত্রণ ফিরিয়ে দেওয়ার উপায় দেয়। এটি Homebrew দিয়ে ইনস্টল করুন, প্রয়োজন হলে Claude Code বা Codex স্কিল যোগ করুন, তারপর সংক্ষিপ্ত প্রম্পটের জন্য point অথবা নির্দেশিত ওয়ার্কফ্লোর জন্য start ও stop ব্যবহার করুন।
লেবেল, উইন্ডো, স্থানাঙ্ক, আয়তক্ষেত্র, মাউস ও Peekaboo লক্ষ্য, কাস্টমাইজযোগ্য স্টাইল, স্পিচ, JSON আউটপুট, স্বয়ংক্রিয় পরিষ্কার এবং একাধিক ডিসপ্লে সমর্থনের মাধ্যমে টুলটি “এখানে ক্লিক করুন” অনুরোধকে সুনির্দিষ্ট অন-স্ক্রিন নির্দেশনায় রূপ দেয়, একই সঙ্গে চূড়ান্ত কাজটি মানুষের নিয়ন্ত্রণে রাখে।
