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

Codenotch দিয়ে macOS-এ কোডিং অ্যাসিস্ট্যান্টের সীমা পর্যবেক্ষণ করুন

Codenotch কীভাবে Claude Code, Cursor, Codex, Antigravity এবং GLM-এর ব্যবহার ও কার্যকলাপ প্রদর্শন করে তা জানুন। এই টিউটোরিয়ালে স্থানীয় সেটআপ, প্রোভাইডার শনাক্তকরণ, স্ক্রিনে অবস্থান নির্ধারণ, ডেমো মোড, একাধিক Claude অ্যাকাউন্ট, সমস্যা সমাধান এবং প্রকল্পটির প্রোভাইডার আর্কিটেকচার নিয়ে আলোচনা করা হয়েছে।

Codenotch দিয়ে macOS-এ কোডিং অ্যাসিস্ট্যান্টের সীমা পর্যবেক্ষণ

Codenotch কী?

Codenotch একটি macOS অ্যাপ, যা যেকোনো স্ক্রিনের প্রান্তে একটি ছোট কালো নচ স্থাপন করে। এর রিংগুলো দেখায়, সমর্থিত প্রতিটি কোডিং অ্যাসিস্ট্যান্টের ব্যবহারের সীমার কতটা খরচ হয়েছে, পাশাপাশি কোনো সেশন সক্রিয়, শেষ, নাকি ইনপুটের অপেক্ষায় আছে তা জানায়।

নিষ্ক্রিয় অবস্থায় নচটি একটি ছোট পিলের মতো থাকে এবং পয়েন্টার কাছে এলে প্রসারিত হয়। কোনো প্রোভাইডার রিংয়ের ওপর হোভার করলে তার সীমার সময়সীমা ও রিসেটের সময় দেখা যায়। Claude Code-এর ক্ষেত্রে, প্রধান রিংটি Claude Code-এর /usage কমান্ডে প্রথমে দেখানো একই বর্তমান সেশন সময়সীমার প্রতিনিধিত্ব করে।

Codenotch সেশনের কার্যকলাপও পর্যবেক্ষণ করে। কোনো সেশন ব্যস্ত থাকলে প্রোভাইডার রিংয়ের ভেতরে একটি সরু আর্ক ঘুরতে থাকে। সেশনের আপনার মনোযোগ প্রয়োজন হলে রিংটি স্পন্দিত অ্যাম্বার অবস্থায় পরিবর্তিত হয়। হোভার করলে সক্রিয় সেশনের নাম, সেগুলো কোথায় চলছে এবং তাদের কী প্রয়োজন তা দেখা যায়।

সমর্থিত প্রোভাইডার ও ডেটার উৎস

Codenotch আলাদা কোনো অ্যাকাউন্ট সিস্টেম পরিচালনা করে না বা আপনাকে সাইন ইন করতে বলে না। এটি আপনার Mac-এ সমর্থিত টুলগুলোর কাছে আগে থেকেই থাকা ক্রেডেনশিয়াল বা সেশন পড়ে।

  • Claude Code: লগইন কীচেইনে সংরক্ষিত OAuth টোকেন ব্যবহার করে এবং Claude Code-এর /usage কমান্ডে ব্যবহৃত একই এন্ডপয়েন্টে অনুরোধ পাঠায়।
  • Cursor: স্থানীয় SQLite স্টেট থেকে এডিটরে সাইন-ইন করা সেশন পড়ে।
  • Codex: বর্তমান রেট সীমা জানতে চলমান Codex অ্যাপ সার্ভারকে অনুরোধ করে। Codex চলমান না থাকলে Codenotch তার rollout লগ ব্যবহার করে।
  • Antigravity: প্রথমে স্থানীয় ল্যাঙ্গুয়েজ সার্ভার এবং তারপর Google-এর কোটা এন্ডপয়েন্ট চেষ্টা করে। কোনোটিই অ্যাকাউন্টের কোটা ডেটা না দিলে এটি সাধারণ অনুরোধের সংখ্যা দেখায়।
  • GLM: Claude Code-এর settings.json, ZCode, অথবা OpenCode-এ আগে থেকেই থাকা একটি কী ব্যবহার করে Z.ai-এর Coding Plan মনিটর এন্ডপয়েন্টে কল করে।

সমর্থিত টুলটি স্বাভাবিকভাবে ইনস্টল করে সাইন ইন করুন। Codenotch যখন এর স্থানীয় সেশন বা ক্রেডেনশিয়াল খুঁজে পায়, তখন সংশ্লিষ্ট রিং দেখা যায়। Settings-এ কোনো প্রোভাইডার নিষ্ক্রিয় করলে Codenotch সেই ক্রেডেনশিয়াল পড়া বন্ধ করে এবং সংরক্ষিত রিডিং মুছে দেয়, তবে মূল টুল থেকে আপনাকে সাইন আউট করে না।

প্রধান বৈশিষ্ট্য

  • Claude Code, Cursor, Codex, Antigravity এবং GLM-এর জন্য ব্যবহার রিং।
  • রিংয়ের ওপর হোভার করলে রিসেট-সময়সীমার বিস্তারিত।
  • কোডিং সেশনের সক্রিয় ও অপেক্ষমাণ অবস্থা সরাসরি দেখা।
  • একাধিক Claude Code কনফিগারেশনের স্বয়ংক্রিয় শনাক্তকরণ।
  • উপরের, নিচের, বাম বা ডান স্ক্রিন প্রান্তে স্থাপনের সুবিধা।
  • ব্যবহারযোগ্য স্ক্রিন এলাকা, Dock-এর অবস্থান এবং হার্ডওয়্যার নচ অনুযায়ী মানিয়ে নেওয়া লেআউট।
  • ঐচ্ছিক Dock আইকন, মেনু বার আইকন, অথবা কোনোটিই নয়।
  • Sparkle-এর মাধ্যমে দৈনিক ব্যাকগ্রাউন্ড আপডেট পরীক্ষা।
  • অনুমানভিত্তিক শতাংশের পরিবর্তে দৃশ্যমান stale, needsAuth এবং error অবস্থা।

Codenotch তৈরি ও চালান

পূর্বশর্ত

প্রকল্পটি XcodeGen ব্যবহার করে তৈরি একটি macOS অ্যাপ্লিকেশন। Homebrew দিয়ে একবার XcodeGen ইনস্টল করুন:

brew install xcodegen

রিপোজিটরির স্থানীয় checkout থেকে প্রকল্প তৈরি করুন, build করুন এবং Debug build চালু করুন:

make run

Debug build-এর জন্য কোনো signing identity প্রয়োজন নেই।

টেস্ট চালান

প্রোভাইডার অ্যাডাপ্টার এবং অন্যান্য আচরণ যাচাই করতে প্রকল্পের test target ব্যবহার করুন:

make test

প্রোভাইডারের প্রতিক্রিয়ার কাঠামো টেস্টের মাধ্যমে নির্দিষ্ট করে রাখা হয়েছে, কারণ অন্তর্নিহিত অভ্যন্তরীণ এন্ডপয়েন্ট, স্থানীয় ডেটাবেস এবং RPC ইন্টারফেসগুলো কোনো পূর্ববার্তা ছাড়াই পরিবর্তিত হতে পারে।

ডেমো ডেটা ব্যবহার করুন

লাইভ প্রোভাইডার ডেটা না পড়ে ইন্টারফেস পরীক্ষা করতে চাইলে CODENOTCH_DEMO=1 দিয়ে অ্যাপ চালু করুন:

CODENOTCH_DEMO=1 make run

ডেমো মোড নির্দিষ্ট নমুনা ডেটা সরবরাহ করে এবং ইন্টারফেস উন্নয়ন, লেআউট পরীক্ষা ও স্ক্রিনশটের জন্য উপযোগী।

make release সাধারণ স্থানীয় সেটআপের অংশ নয়। এর জন্য একটি Developer ID certificate এবং একটি App Store Connect notary profile প্রয়োজন। মেইনটেইনার এটি দিয়ে archive, notarize এবং স্বাক্ষরিত auto-update feed তৈরি করেন।

প্রাথমিক ব্যবহার

1. প্রোভাইডারের নিজস্ব টুলের মাধ্যমে সাইন ইন করুন

যে কোডিং টুলটি পর্যবেক্ষণ করতে চান, সেটি খুলে সেখানে সাইন ইন করুন। Codenotch নিজে কখনও সাইন-ইন সম্পন্ন করে না। উদাহরণস্বরূপ, স্বাভাবিকভাবে Claude Code বা Cursor-এ authenticate করুন, তারপর Codenotch চালু করুন।

2. প্রোভাইডার রিং পরীক্ষা করুন

শনাক্ত হওয়া প্রতিটি প্রোভাইডার নচে একটি রিং হিসেবে দেখা যায়। উপলভ্য সীমার কতটা খরচ হয়েছে তা বুঝতে রিংটি ব্যবহার করুন। উপলভ্য সীমার সময়সীমা ও সেগুলোর রিসেটের সময় দেখতে রিংয়ের ওপর হোভার করুন।

3. সেশনের অবস্থা দেখুন

কোনো সমর্থিত সেশন কাজ করার সময় তার রিংয়ের ভেতরে সরু ঘূর্ণায়মান আর্কটি দেখুন। স্পন্দিত অ্যাম্বার রিং মানে কোনো সেশন আটকে আছে এবং আপনার অপেক্ষায় রয়েছে। সেশনের নাম, অবস্থান এবং কী পদক্ষেপ চাওয়া হয়েছে তা দেখতে হোভার করুন।

4. নচ কনফিগার করুন

নচের নিচের orb-এর মাধ্যমে Settings খুলুন। স্থির অবস্থায় এটি একটি আর্ক হিসেবে দেখা যায় এবং হোভার করলে গিয়ারে পরিণত হয়। Settings থেকে নচটি হোভার করলে প্রসারিত হবে কি না, দৃশ্যমান থাকবে কি না, অথবা পুরোপুরি লুকানো থাকবে কি না তা নিয়ন্ত্রণ করা যায়।

Codenotch একটি Dock আইকন, মেনু বার আইকন, অথবা কোনোটিই দেখাবে কি না তাও বেছে নিতে পারেন।

5. একটি স্ক্রিন প্রান্ত বেছে নিন

চারটি প্রান্তের যেকোনোটিতে নচ স্থাপন করুন:

  • বাম বা ডান: প্রোভাইডার রিডিংগুলো একটি উল্লম্ব কলামে দেখা যায়।
  • উপর বা নিচ: প্রোভাইডার রিডিংগুলো পাশাপাশি দেখা যায়।

Codenotch স্ক্রিনের ব্যবহারযোগ্য প্রান্ত অনুসরণ করে। নিচে স্থাপন করলে এটি Dock-এর ওপরে থাকে এবং Dock লুকালে বা অবস্থান পরিবর্তন করলে প্রতিক্রিয়া জানায়। হার্ডওয়্যার নচযুক্ত Mac-এ, উপরে স্থাপন করলে তার সঠিক আকৃতি ব্যবহার করা হয়, যাতে হার্ডওয়্যার ও সফটওয়্যার নচকে একটি উপাদান হিসেবে দেখা যায়।

একাধিক Claude Code অ্যাকাউন্ট পর্যবেক্ষণ করুন

আলাদা Claude Code কনফিগারেশন ডিরেক্টরির জন্য Codenotch আলাদা রিং প্রদর্শন করতে পারে। উদাহরণস্বরূপ, একটি কাজের অ্যাকাউন্ট চালু করতে ব্যবহার করুন:

CLAUDE_CONFIG_DIR=~/.claude-work claude

Claude Code ওই ডিরেক্টরিটি ব্যবহার করার পর Codenotch সেটি শনাক্ত করে এবং ব্যক্তিগত অ্যাকাউন্টের পাশে একটি Claude (work) রিং প্রদর্শন করে। কাজের অ্যাকাউন্টটির নিজস্ব সীমা, সেশন এবং Settings সারি থাকে।

চালু হওয়ার সময় Codenotch Claude Code যে ~/.claude-<slug> ধরনের ডিরেক্টরিগুলো ব্যবহার করেছে, সেগুলো খোঁজে। ডিফল্ট ~/.claude অ্যাকাউন্টটি সবসময় প্রথমে থাকে, আর অতিরিক্ত কনফিগারেশনগুলো বর্ণানুক্রমে সাজানো হয়, যাতে তাদের রিংয়ের অবস্থান অপ্রত্যাশিতভাবে বদলে না যায়।

রিফ্রেশের আচরণ ও রেট সীমা

অপ্রয়োজনীয় অনুরোধ কমাতে Codenotch পোলিংয়ের ব্যবধান সামঞ্জস্য করে। কোনো পর্যবেক্ষণাধীন সেশন চালু না থাকলে প্রতি পাঁচ মিনিটে একবার পোলিং করা হয়। নতুন তথ্য ম্যানুয়ালি চাইতে নচে ডান-ক্লিক করে Refresh now নির্বাচন করুন।

খুব ঘন ঘন অনুরোধ করা হলে Claude-এর এন্ডপয়েন্ট HTTP 429 ফেরত দিতে পারে। Codenotch ক্রমবর্ধমান বিলম্ব প্রয়োগ করে, যা ৬০ সেকেন্ড থেকে শুরু হয়, পরপর রেট-সীমা প্রতিক্রিয়া এলে দ্বিগুণ হয় এবং সর্বোচ্চ ১৫ মিনিটে সীমাবদ্ধ থাকে। এই সময়সীমা অ্যাপ চালু হওয়ার পরও বজায় থাকে, ফলে পুনরায় চালু করলেই আরেকটি প্রচেষ্টা তাৎক্ষণিকভাবে খরচ হয়ে যায় না।

আপডেট ও নিরাপত্তা

আপডেট খুঁজতে এবং পটভূমিতে সেগুলো ইনস্টল করতে Codenotch প্রতিদিন Sparkle ব্যবহার করে। Settings থেকে স্বয়ংক্রিয় আপডেট বন্ধ করা যায়। অফিসিয়াল আপডেটগুলো EdDSA-স্বাক্ষরিত, তাই রক্ষণাবেক্ষণকারী তৈরি ও স্বাক্ষর করেননি এমন কোনো বিল্ড অ্যাপটি ইনস্টল করে না।

কীচেইন-নির্ভর প্রোভাইডারগুলোর ক্ষেত্রে, অফিসিয়াল অ্যাপটি একটি স্থিতিশীল Developer ID পরিচয় ব্যবহার করে, যাতে একবারের Always Allow অনুমতি পুনরায় বিল্ডের পরও কার্যকর থাকে। নিয়মিত পোলিংয়ের সময় বারবার অ্যাক্সেসের অনুমতি চাওয়া কমাতে Codenotch কোনো গোপন তথ্য আবার পড়ার আগে কীচেইন আইটেমের পরিবর্তনের তারিখ পরীক্ষা করে।

উন্নত ডেভেলপমেন্ট নোট

প্রোভাইডার আর্কিটেকচার

প্রতিটি ইন্টিগ্রেশন Sources/Providers/-এর অধীনে UsageProvider বাস্তবায়ন করে। একটি প্রোভাইডার .official, .derived বা .manual—এই তিনটির মধ্যে একটি Fidelity মানও ঘোষণা করে। এর ফলে ইন্টারফেস কোনো অনুমানভিত্তিক মানকে এমনভাবে উপস্থাপন করে না, যেন সেটি সরাসরি কোনো বিক্রেতা প্রকাশ করেছে।

Sources/Model/-এর অধীনে থাকা UsageStore টাইমারের ভিত্তিতে প্রোভাইডারগুলোতে পোলিং করে এবং চালু হওয়ার পরও সর্বশেষ সফল রিডিং ধরে রাখে। কোনো প্রোভাইডার ব্যর্থ হলে, স্টোর শতাংশ বানিয়ে দেখানোর বদলে stale, needsAuth বা error-এর মতো দৃশ্যমান স্ট্যাটাস প্রকাশ করে।

স্ক্রিন-প্রান্তের লেআউট

নচের লেআউট along এবং across কোঅর্ডিনেট ব্যবহার করে একমাত্রিক স্ট্যাক স্পেসে কাজ করে। নির্বাচিত প্রান্ত অনুযায়ী NotchPlacement এই মানগুলোকে প্রকৃত স্ক্রিন কোঅর্ডিনেটে রূপান্তর করে। ডিজাইন ফ্রেমের সঙ্গে বাস্তবায়নের তুলনা করার জন্য ব্যবহৃত পরিমাপগুলো NotchLayout কেন্দ্রীভূত করে।

ডায়াগনস্টিক লগ পরিদর্শন

Codenotch-এর কোনো প্রচলিত অ্যাপ উইন্ডো নেই, তাই ডায়াগনস্টিক তথ্য macOS unified log-এ লেখা হয়। এই কমান্ড দিয়ে ডিবাগ বার্তা স্ট্রিম করুন:

/usr/bin/log stream --predicate 'subsystem == "com.vinz.codenotch"' --level debug

কোনো প্রোভাইডার প্রমাণীকরণ করতে না পারলে, পুরোনো তথ্য ফেরত দিলে বা পরিবর্তিত প্রতিক্রিয়া বিন্যাসের মুখোমুখি হলে এটিই প্রধান সমস্যা নির্ণয়ের সরঞ্জাম।

সীমাবদ্ধতাগুলো বুঝুন

কোনো সমর্থিত বিক্রেতা এমন সহজ ও স্থিতিশীল API প্রকাশ করে না, যা সর্বজনীনভাবে কোনো কোডিং সেশন ব্যবহারের সঠিক শতাংশ হিসেবে জানায়। তাই Codenotch সংশ্লিষ্ট অ্যাপ্লিকেশনগুলো যে একই অভ্যন্তরীণ বা স্থানীয় উৎস ব্যবহার করে, সেগুলো থেকেই তথ্য পড়ে; এর মধ্যে রয়েছে এন্ডপয়েন্ট, ডেটাবেস, ভাষা সার্ভার এবং লগ।

এই ইন্টারফেসগুলো কোনো পূর্বঘোষণা ছাড়াই পরিবর্তিত হতে পারে। Codenotch অ্যাডাপ্টার টেস্ট এবং স্পষ্ট ব্যর্থতার স্ট্যাটাসের মাধ্যমে সেই ঝুঁকি মোকাবিলা করে, তবে আপস্ট্রিম অ্যাপ্লিকেশন পরিবর্তনের পর কোনো প্রোভাইডার ইন্টিগ্রেশন সাময়িকভাবে কাজ করা বন্ধ করতেই পারে।

উপসংহার

Codenotch কোডিং সহকারী ব্যবহারের তথ্য, রিসেটের সময়সীমা এবং সক্রিয় সেশনের অবস্থা একটি ছোট macOS স্ক্রিন-প্রান্তের ডিসপ্লেতে নিয়ে আসে। make run দিয়ে শুরু করুন, নিরাপদে ইন্টারফেস অন্বেষণ করতে ডেমো মোড ব্যবহার করুন, তারপর সমর্থিত টুলগুলোতে আগে থেকেই কনফিগার করা অ্যাকাউন্টগুলো অ্যাপটিকে শনাক্ত করতে দিন। ডেভেলপমেন্ট ও অবদানের বিস্তারিত জানতে CONTRIBUTING.md দেখুন। প্রকল্পটি MIT License-এর অধীনে উপলব্ধ।