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

VibeClaude টিউটোরিয়াল: Claude Code ইভেন্ট Intiface ডিভাইসের সঙ্গে সংযুক্ত করুন

VibeClaude কীভাবে ইনস্টল ও কনফিগার করতে হয়, Claude Code-কে Intiface Central এবং কম্পন-সমর্থিত ডিভাইসের সঙ্গে সংযুক্ত করতে হয়, এর ইভেন্ট প্যাটার্ন বুঝতে হয়, তীব্রতা সামঞ্জস্য করতে হয়, ডেমন কমান্ড ব্যবহার করতে হয় এবং হার্ডওয়্যার ছাড়াই ইন্টিগ্রেশন পরীক্ষা করতে হয় তা শিখুন।

VibeClaude টিউটোরিয়াল: Claude Code ইভেন্ট Intiface ডিভাইসে সংযুক্ত করুন

VibeClaude কী করে

VibeClaude হলো একটি Claude Code প্লাগইন, যা Intiface Central এবং buttplug.io-এর মাধ্যমে কোডিং কার্যকলাপকে ডিভাইস ফিডব্যাকে রূপান্তর করে। Claude Code-এর ইভেন্টগুলো একটি স্থানীয় ডেমনে পাঠানো হয়। ডেমনটি WebSocket-এর মাধ্যমে Intiface Central-এর সঙ্গে যোগাযোগ করে এবং এরপর জোড়া লাগানো কম্পন-সক্ষম ডিভাইস নিয়ন্ত্রণ করে।

Claude Code — hooks module — HTTP — daemon — WebSocket — Intiface Central — BLE — device

প্লাগইনটি স্ট্রিম হওয়া মডেল আউটপুট, টুল কল, অনুমতির অনুরোধ, সম্পন্ন todo, সাবএজেন্ট, বিঘ্ন এবং টার্ন বা সেশন লাইফসাইকেল ইভেন্টে সাড়া দেয়। এটি একটি ব্যক্তিগত, আরামদায়ক পরিবেশের জন্য তৈরি এবং আপনার সামঞ্জস্যপূর্ণ হার্ডওয়্যার দায়িত্বশীলভাবে ব্যবহার করা উচিত।

প্রয়োজনীয়তা

  • ফাংশন-হুকস প্লাগইন সমর্থনসহ Claude Code। VibeClaude এই প্রাথমিক-অ্যাক্সেস API-এর 2.1.291 সংস্করণ অনুযায়ী তৈরি করা হয়েছে।
  • PATH-এ node হিসেবে উপলভ্য Node.js 22 বা পরবর্তী সংস্করণ।
  • চালু থাকা WebSocket সার্ভারসহ Intiface Central। ডিফল্ট ঠিকানা হলো ws://127.0.0.1:12345।
  • Intiface Central-এ জোড়া লাগানো একটি কম্পন-সক্ষম কন্ট্রোলার।
  • সংযুক্ত ডিভাইস ব্যবহারের উপযোগী একটি ব্যক্তিগত পরিবেশ।

VibeClaude ইনস্টল করুন

আপনার Claude কনফিগারেশন ডিরেক্টরিতে রিপোজিটরিটি ক্লোন করুন এবং এর নির্ভরতাগুলো ইনস্টল করুন:

git clone https://github.com/transkatgirl/vibeclaude.git ~/.claude/vibeclaude
cd ~/.claude/vibeclaude && npm install

একটি Claude Code সেশনের জন্য প্লাগইন লোড করতে পারেন এভাবে:

claude --plugin-dir ~/.claude/vibeclaude

অথবা Claude Code-এর ভেতর থেকে স্থায়ীভাবে ইনস্টল করুন:

/plugin marketplace add ~/.claude/vibeclaude
/plugin install vibeclaude@vibeclaude-local

ইনস্টলেশনের পর Claude Code পুনরায় চালু করুন। নতুন সেশন শুরু হলে প্লাগইনটি লোড হবে।

নির্ভরতার অবস্থান পরীক্ষা করুন

ডেমনটি সেই ডিরেক্টরি থেকে চলে, যেখান থেকে Claude Code প্লাগইনটি লোড করে, এবং সেখানে node_modules ডিরেক্টরি থাকা প্রয়োজন। Marketplace থেকে ইনস্টল করা প্লাগইনগুলো এমন একটি অবস্থানে কপি হতে পারে, যেখানে আপনার মূল ক্লোনে ইনস্টল করা নির্ভরতাগুলো নেই।

Claude Code যদি দেখায় যে buttplug npm প্যাকেজটি অনুপস্থিত, তাহলে বার্তায় উল্লেখ করা ডিরেক্টরিতে npm install চালান।

একটি ডিভাইস সংযুক্ত করুন

  1. Intiface Central চালু করুন এবং এর সার্ভার স্টার্ট বোতাম চাপুন।
  2. Claude Code-এ /intiface চালান।
  3. সংযোগ এবং স্ক্যান সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করুন।
  4. ফলাফল থেকে একটি কম্পন-সক্ষম ডিভাইস নির্বাচন করুন।
  5. ডিভাইসটি সংযুক্ত এবং আপনার পরিবেশের জন্য উপযুক্ত নিশ্চিত করার পর Claude Code ব্যবহার শুরু করুন।

/intiface কমান্ডটি একটি ডায়ালগ খোলে, যেখানে সংযোগ এবং স্ক্যানের অবস্থা দেখা যায়। ডিভাইসগুলোর মধ্যে চলাচল করতে তীর চিহ্নের কী বা Tab চাপুন, নির্বাচন করতে Enter চাপুন বা ক্লিক করুন, আর ডায়ালগ থেকে বের হতে Escape চাপুন।

আপনি কোনো ডিভাইস নির্বাচন না করা পর্যন্ত কোনো ডিভাইসে কিছু পাঠানো হয় না। VibeClaude একবারে ঠিক একটি নির্বাচিত ডিভাইস নিয়ন্ত্রণ করে। পরবর্তী কোনো Claude Code সেশন শুরু হলে, প্লাগইনটি Intiface Central-এ পুনরায় সংযোগ করার এবং উপলভ্য থাকলে আগে নির্বাচিত ডিভাইসটি পুনরুদ্ধার করার চেষ্টা করে।

প্লাগইন কমান্ড

  • /intiface: Intiface-এ সংযোগ করুন, ডিভাইস স্ক্যান করুন এবং একটি ডিভাইস নির্বাচন করুন।
  • /intiface-connect: কনফিগার করা Intiface সার্ভারে সংযোগ করুন এবং উপলভ্য থাকলে আগে নির্বাচিত ডিভাইসটি পুনরুদ্ধার করুন।
  • /intiface-disconnect: সংযোগ বিচ্ছিন্ন করুন এবং ডিভাইসের সব আউটপুট বন্ধ করুন।
  • /intiface-intensity [0.0-1.0]: বৈশ্বিক তীব্রতা গুণক সেট করুন, অথবা কোনো সংখ্যা না দিলে বর্তমান মান দেখুন।

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

ফিডব্যাক প্যাটার্ন বুঝুন

VibeClaude প্রতিটি ইভেন্টকে ধ্রুব তীব্রতায় নির্দিষ্ট সময়কালের একটি প্যাটার্ন হিসেবে উপস্থাপন করে। একই কথোপকথনের মধ্যে সর্বশেষ ইভেন্টটি আগের ইভেন্টকে প্রতিস্থাপন করে। ইভেন্ট নির্বাচনের পর বৈশ্বিক তীব্রতা গুণক প্রয়োগ করা হয়।

  • স্ট্রিমিং চিন্তা ও লেখা: প্রতি অংশে 70 মিলিসেকেন্ডের একটি পালস, যার তীব্রতা গড় আউটপুট গতির ভিত্তিতে 0.35 থেকে 0.8 পর্যন্ত। প্রতিক্রিয়ার গতি গণনা প্রতি সেকেন্ডে 40 অক্ষরে সর্বোচ্চ সীমায় পৌঁছায়।
  • সম্পূর্ণ প্রতিক্রিয়া: স্ট্রিমিং ছাড়া কোনো প্রতিক্রিয়া এলে 0.4 তীব্রতায় 150 মিলিসেকেন্ডের একটি পালস।
  • টুল কল: মডেল কোনো টুল কল লেখা শুরু করলে 0.5 তীব্রতায় 120 মিলিসেকেন্ডের একটি পালস।
  • এডিট অপারেশন: কোনো Edit, Write, MultiEdit বা NotebookEdit অপারেশন লেখা ও প্রয়োগ হওয়ার সময় 0.3 তীব্রতায় অবিচ্ছিন্ন কম্পন।
  • সফল টুল কল: 0.7 তীব্রতায় 180 মিলিসেকেন্ডের একটি পালস।
  • ব্যর্থ, প্রত্যাখ্যাত বা অনুমোদন না-পাওয়া টুল কল: 1.0 তীব্রতায় 280 মিলিসেকেন্ডের একটি পালস।
  • সম্পন্ন todo আইটেম: 0.8 তীব্রতায় একটি পালস, যা সঙ্গে সঙ্গে সফল টুলের প্যাটার্ন দ্বারা প্রতিস্থাপিত হয়।
  • অনুমতির অনুরোধ: 0.85 তীব্রতায় তিনটি 90 মিলিসেকেন্ডের পালস, এরপর বিরতি এবং অনুরোধের সমাধান না হওয়া পর্যন্ত পুনরাবৃত্তি।
  • টার্ন সম্পন্ন: 1.0 তীব্রতায় তিনটি 100 মিলিসেকেন্ডের পালস।
  • বিঘ্নিত বা ব্যর্থ টার্ন: বর্তমান আউটপুট বন্ধ হয়, এরপর টার্ন সম্পন্ন হওয়ার জন্য ব্যবহৃত তিনটি পালস চলে।
  • সেশন শেষ: সব আউটপুট বন্ধ হয়।

একাধিক সেশন ও সাবএজেন্ট

প্রতিটি খোলা Claude Code সেশন তার নিজস্ব টুল, অনুরোধ, todo এবং সাবএজেন্ট ট্র্যাক করে। একাধিক প্যাটার্ন সক্রিয় থাকলে সবচেয়ে শক্তিশালী প্যাটার্নটি ব্যবহার করা হয়। সেই প্যাটার্ন শেষ হলে ডিভাইসটি অন্য কোনো সেশনের সক্রিয় প্যাটার্নে ফিরে যেতে পারে।

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

তীব্রতা সমন্বয় করুন

আউটপুট কমাতে বা বন্ধ করতে intensity কমান্ড ব্যবহার করুন:

/intiface-intensity 0.5

ডিফল্ট গুণক হলো 1.0। 0 মান ফিডব্যাক বন্ধ করে, আর ০ থেকে ১-এর মধ্যে মান প্রতিটি সক্রিয় প্যাটার্নের মাত্রা নির্ধারিত অনুপাতে কমায়। পরিবর্তনটি সঙ্গে সঙ্গে কার্যকর হয়, এমনকি ইতিমধ্যে চলমান প্যাটার্নের ক্ষেত্রেও, এবং পরিবর্তন না করা পর্যন্ত সংরক্ষিত থাকে।

গুরুত্বপূর্ণ ইভেন্ট-সংক্রান্ত সীমাবদ্ধতা

Claude Code প্লাগইনগুলোকে যে তথ্য দেয়, তার কারণে কিছু আচরণ স্বাভাবিকভাবেই আনুমানিক:

  • চিন্তন: Claude Code যেখানে চিন্তনের লেখা দৃশ্যমান করে, কেবল সেখানেই তা উপস্থাপিত হয়। যেমন, হেডলেস claude -p চালানোর সময় চিন্তন পাওয়া যায় না।
  • অনুমতির উত্তর: অনুমতির অনুরোধের উত্তর দেওয়ার সঠিক মুহূর্ত Claude Code জানায় না। সংশ্লিষ্ট টুল শেষ হলে, ব্যর্থ হলে বা প্রত্যাখ্যাত হলে সাধারণত অনুরোধের প্যাটার্ন শেষ হয়। টার্মিনালের কিছু ব্যাকগ্রাউন্ডে চালানোর ইঙ্গিত এটি আরও আগেই থামাতে পারে।
  • টুলের আউটপুট: প্লাগইন কমান্ডের আউটপুট স্ট্রিম হওয়ার সময় তা পায় না, তাই প্রতিটি মুদ্রিত লাইনের বদলে টুলের ফলাফল দিয়ে টুলের আউটপুট উপস্থাপন করা হয়।

প্লাগইন কনফিগার করুন

প্লাগইন সক্রিয় করার সময় Claude Code প্লাগইনের অপশন জানতে চায়। পরে /plugin এবং প্লাগইন ব্যবস্থাপনা ইন্টারফেসের মাধ্যমে এগুলো পরিবর্তন করতে পারবেন।

  • wsAddress: Intiface Central WebSocket ঠিকানা। ডিফল্ট হলো ws://127.0.0.1:12345।

পরিবর্তিত WebSocket ঠিকানা ডেমন পরবর্তীবার চালু হলে কার্যকর হবে। আপনার সেশনগুলো শেষ করুন, অথবা সরাসরি ডেমন বন্ধ করতে চালান:

node daemon/daemon.mjs stop

VibeClaude নির্বাচিত ডিভাইস, তীব্রতা এবং daemon.log ~/.config/vibeclaude-এর অধীনে সংরক্ষণ করে। TCP পোর্ট 12350 ইতিমধ্যে ব্যবহৃত হলে, ভিন্ন পোর্ট দিয়ে ~/.config/vibeclaude/config.json তৈরি করুন:

{ "port": 12351 }

শেল থেকে ডেমন ব্যবহার

Claude Code-এর স্ল্যাশ কমান্ডের বাইরে থেকেও ডেমন নিয়ন্ত্রণ করা যায়। এই কমান্ডগুলো ডিফল্ট কনফিগারেশন ডিরেক্টরি ও WebSocket ঠিকানা ব্যবহার করে:

  • node daemon/daemon.mjs scan: সংযোগ করে, তিন সেকেন্ড স্ক্যান করে এবং কম্পন-সক্ষম ডিভাইসের তালিকা দেখায়।
  • node daemon/daemon.mjs select <index>: স্ক্যানের ফলাফল থেকে একটি ডিভাইস নির্বাচন করে।
  • node daemon/daemon.mjs connect এবং disconnect: Intiface-এ সংযোগ বা সংযোগ বিচ্ছিন্ন করে।
  • node daemon/daemon.mjs intensity [value]: তীব্রতার গুণক নির্ধারণ বা প্রদর্শন করে।
  • node daemon/daemon.mjs start: একটি ডেমন চালু আছে তা নিশ্চিত করে এবং তার পোর্ট দেখায়।
  • node daemon/daemon.mjs status: ডেমন সাড়া দিচ্ছে কি না পরীক্ষা করে।
  • node daemon/daemon.mjs stop: সব আউটপুট বন্ধ করে ডেমন থেকে বেরিয়ে যায়।
  • node daemon/daemon.mjs: ডেমনকে ফোরগ্রাউন্ডে চালায়।

অন্য কনফিগারেশন ডিরেক্টরি নির্বাচন করতে --home <dir> এবং অন্য Intiface ঠিকানা নির্দিষ্ট করতে --ws <address> ব্যবহার করুন। প্রতিটি ইভেন্ট আসার সঙ্গে সঙ্গে লগ করতে ডিবাগ এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:

VIBECLAUDE_DEBUG=1 node daemon/daemon.mjs

হার্ডওয়্যার ছাড়া পরীক্ষা

রিপোজিটরিতে একটি মক Intiface সার্ভার রয়েছে, যা প্রাপ্তির কথা থাকা মোটরের মাত্রা দেখায়। এটি 12345 পোর্টে চালু করুন:

node test/mock-intiface.mjs 12345

এরপর টেস্ট স্যুট চালান:

npm test

টেস্টগুলো মকের বিপরীতে ডেমনকে শুরু থেকে শেষ পর্যন্ত পরীক্ষা করে এবং hooks মডিউলও পরীক্ষা করে। ফলে কোনো ফিজিক্যাল কন্ট্রোলার ছাড়াই ইনস্টলেশন যাচাই করা যায়।

আর্কিটেকচার কীভাবে কাজ করে

hooks/register.tsx Claude Code-এর ভেতরে চলে। এটি স্ট্রিম করা টার্নের ধাপ, টুল কল, অনুমতি যাচাই, সাবএজেন্ট তৈরি এবং সেশন বা টার্নের জীবনচক্রের পরিবর্তনের মতো হুক ইভেন্ট পর্যবেক্ষণ করে। এরপর এসব ইভেন্টকে মডেলের লেখা নয়, বরং আকার ও শনাক্তকারীসমৃদ্ধ ছোট বার্তায় রূপান্তর করে এবং সেগুলো ক্রম অনুযায়ী লুপব্যাক ঠিকানা 127.0.0.1:12350-এ ডেমনে পাঠায়।

হুকস মডিউল স্ল্যাশ কমান্ডও নিবন্ধন করে, ডিভাইস-নির্বাচন ডায়ালগ দেখায় এবং ডেমনের বিজ্ঞপ্তিগুলো টোস্ট হিসেবে প্রদর্শন করে। হুকস মডিউলের Node.js-এ প্রবেশাধিকার নেই বলে এটি নিজে Buttplug ক্লায়েন্ট চালাতে বা Intiface WebSocket সংযোগ বজায় রাখতে পারে না।

daemon/daemon.mjs অফিসিয়াল Buttplug ক্লায়েন্ট, Intiface সংযোগ, নির্বাচিত ডিভাইস, কম্পন ইঞ্জিন এবং ইভেন্ট হ্যান্ডলার পরিচালনা করে। কোনো ডিভাইস মডেলের আউটপুট আসার চেয়ে ধীরে সাড়া দিতে পারে, তাই ডেমন ব্যাকলগ তৈরি না করে সর্বশেষ অনুরোধ করা মাত্রা পাঠায়।

প্রথম সেশনের প্রয়োজন হলে ডেমন চালু হয় এবং শেষ সেশন শেষ হলে বন্ধ হয়ে যায়। এটি প্রতিটি সেশনের সঙ্গে যুক্ত Claude Code প্রক্রিয়া পর্যবেক্ষণ করে এবং অপ্রত্যাশিতভাবে অদৃশ্য হয়ে যাওয়া সেশনগুলো পরিষ্কার করতে পারে। কোন প্রক্রিয়াটি শেষ হয়েছে তা নির্ধারণ করতে না পারলে, কোনো কার্যকলাপ ছাড়া ৩০ মিনিট পর বন্ধ হয়ে যাওয়াকে বিকল্প হিসেবে ব্যবহার করে।

গোপনীয়তা ও স্বয়ংক্রিয় বন্ধ

প্লাগইন কেবল আপনার মেশিনে কনফিগার করা Intiface ঠিকানায় ডিভাইস কমান্ড পাঠায়। ডেমন লুপব্যাকে শোনে এবং 127.0.0.1 বা localhost-এ নির্দেশিত JSON অনুরোধ গ্রহণ করে; এটি ব্রাউজার পেজের জন্য কোনো নেটওয়ার্ক সার্ভিস উন্মুক্ত করে না। VibeClaude কোনো টেলিমেট্রি সংগ্রহ করে না।

ডিভাইস পরিবর্তন করলে, সেশন শেষ করলে, সংযোগ বিচ্ছিন্ন করলে, Intiface সংযোগ হারালে বা ডেমন বন্ধ হলে আউটপুট স্বয়ংক্রিয়ভাবে থেমে যায়। কোনো ডিভাইস Intiface থেকে সংযোগ বিচ্ছিন্ন হলে সেটি অনির্বাচিত হয়ে যায়; পুনরায় সংযোগ করতে /intiface ব্যবহার করুন। সাময়িকভাবে অদৃশ্য হয়ে যাওয়া ডিভাইস ফিরে এলে আবার নির্বাচন করা যাবে।

উপসংহার

VibeClaude একটি স্থানীয় Node.js ডেমন-এর মাধ্যমে Claude Code হুকগুলোকে Intiface Central-এর সঙ্গে সংযুক্ত করে, যার ফলে কোডিং ইভেন্টগুলো কনফিগারযোগ্য ডিভাইস প্রতিক্রিয়ায় রূপান্তরিত হয়। প্লাগইন ও নির্ভরতাগুলো ইনস্টল করুন, Intiface Central চালু করুন, /intiface দিয়ে একটি ডিভাইস নির্বাচন করুন এবং /intiface-intensity দিয়ে অভিজ্ঞতাটি সামঞ্জস্য করুন। সমস্যা সমাধান ও ডেভেলপমেন্টের জন্য শেল ডেমন কমান্ড, ডিবাগ লগিং এবং অন্তর্ভুক্ত মক সার্ভার ব্যবহার করুন।

প্রকল্পটি MIT License-এর অধীনে লাইসেন্সপ্রাপ্ত। Buttplug এবং Intiface হলো Nonpolynomial Labs, LLC-এর ট্রেডমার্ক।