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

Chrome Relay ব্যবহার করে কোডিং এজেন্টকে আপনার লগ-ইন করা Chrome নিয়ন্ত্রণ করতে দিন

macOS-এ Chrome Relay ইনস্টল করা, সমর্থিত কোডিং এজেন্টকে আপনার দৈনন্দিন Chrome প্রোফাইলের সঙ্গে সংযুক্ত করা, agent-browser দিয়ে লগ-ইন করা ওয়েবসাইট স্বয়ংক্রিয় করা, সাইন-ইন ও পরিচয় পরিচালনা করা, অডিট রেকর্ড পরিদর্শন করা এবং Relay-এর সমস্যা সমাধান বা আপডেট করার পদ্ধতি জানুন।

Chrome Relay ব্যবহার করে কোডিং এজেন্টকে লগ-ইন করা Chrome নিয়ন্ত্রণ করতে দিন

Chrome Relay কী?

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

Chrome Relay প্রকল্পের সারসংক্ষেপ

প্রকল্পটি Claude Code, Codex, Cursor এবং Paseo-এর সঙ্গে কাজ করে। এটি agent-browser-এর মাধ্যমে তাদের ব্রাউজার কমান্ড Chrome-এর সঙ্গে সংযুক্ত করে। কমান্ড সাধারণত প্রায় 0.15 সেকেন্ডে সম্পন্ন হয় এবং Chrome-এর কোনো remote-debugging port-এর প্রয়োজন হয় না।

Chrome Relay ঐচ্ছিকভাবে সক্রিয় করা যায়। এটি স্বয়ংক্রিয়ভাবে এক্সটেনশন ইনস্টল করে না এবং কেবল সেই Mac-এ চলে যার মালিক সেটআপ সম্পন্ন করেছেন।

Chrome Relay যেভাবে কাজ করে

agent-browser CLI → local relay → Chrome Relay extension → agent tab

সিস্টেমটিতে তিনটি প্রধান উপাদান রয়েছে:

  • Chrome extension: একটি unpacked Manifest V3 extension, যা এজেন্টের ব্যবহারের জন্য নির্বাচিত প্রতিটি Chrome প্রোফাইলে আলাদাভাবে লোড করা হয়। এটি নিষ্ক্রিয়, সংকুচিত Agents tab group-এ এজেন্ট ট্যাব খোলে এবং chrome.debugger-এর মাধ্যমে DevTools কমান্ড পাঠায়।
  • Local relay: 127.0.0.1:9333-এ চলমান একটি LaunchAgent। এটি প্রতিটি এজেন্টকে আলাদা DevTools endpoint দেয় এবং এজেন্টকে তার খোলা ট্যাবগুলোর মধ্যেই সীমাবদ্ধ রাখে।
  • Command-line tool: chrome-relay কমান্ড সেটআপ, সংযোগের URL, পরিচয়, আপডেট, ডায়াগনস্টিক, লগ এবং অডিট রেকর্ড পরিচালনা করে।

যেসব কমান্ড Chrome-কে সামনে আনতে বা ফোকাস করতে পারে, relay সেগুলো দমন করে। কোনো এজেন্ট কাজ করার সময় Chrome-এ এখনও Chrome Relay started debugging this browser বার্তাটি দেখা যেতে পারে।

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

ইনস্টলেশনের আগে নিশ্চিত করুন যে আপনার কাছে রয়েছে:

  • macOS
  • Google Chrome
  • Node.js 20 বা নতুন সংস্করণ
  • গ্লোবালভাবে ইনস্টল করা agent-browser

npm দিয়ে agent-browser ইনস্টল করুন:

npm i -g agent-browser

Chrome Relay ইনস্টল করুন

1. প্রকল্প ক্লোন ও কনফিগার করুন

git clone https://github.com/aindeev/agent-chrome-relay
cd agent-chrome-relay
bin/chrome-relay setup

setup কমান্ড স্থানীয় secret তৈরি করে, ব্যাকগ্রাউন্ড service কনফিগার করে, পরিচয় রেকর্ড করে, chrome-relay-কে আপনার PATH-এ যুক্ত করে এবং Claude Code-এর জন্য Chrome Relay skill-এর লিংক তৈরি করে।

2. Chrome-এ এক্সটেনশন লোড করুন

এজেন্টদের ব্যবহারের অনুমতি দিতে চান এমন প্রতিটি Chrome প্রোফাইলে এই ধাপগুলো অনুসরণ করুন:

  1. chrome://extensions খুলুন।
  2. Developer mode চালু করুন।
  3. Load unpacked নির্বাচন করুন।
  4. রিপোজিটরির extension ফোল্ডারটি নির্বাচন করুন।

প্রতিটি Chrome প্রোফাইল এক্সটেনশনের নিজস্ব কপি লোড করে। তাই আপনি স্পষ্টভাবে নির্বাচিত প্রোফাইলগুলোই কেবল উন্মুক্ত করতে পারবেন।

3. ইনস্টলেশন যাচাই করুন

chrome-relay doctor

এজেন্টকে ব্রাউজ করতে বলার আগে relay এবং extension সঠিকভাবে কনফিগার করা হয়েছে কি না নিশ্চিত করতে ডায়াগনস্টিক আউটপুট ব্যবহার করুন।

আপনার কোডিং এজেন্টকে Chrome Relay সম্পর্কে জানান

Claude Code

সেটআপ প্রক্রিয়া skill/SKILL.md-কে ~/.claude/skills/chrome-relay-এর সঙ্গে লিংক করে। এর ফলে skill-টি সব রিপোজিটরিতে উপলভ্য থাকে। স্পষ্ট নির্দেশনার প্রয়োজন হলে repository-level CLAUDE.md-তে শুধু ওই skill-এর দিকে নির্দেশ করা একটি লাইন যোগ করলেই যথেষ্ট।

Codex, Cursor এবং অন্যান্য সমর্থিত এজেন্ট

এজেন্টের global instructions-এ একই skill ফাইলের পথ দিন। উদাহরণস্বরূপ, ~/.codex/AGENTS.md-তে এমন একটি নির্দেশনা যোগ করুন:

For any browser step that needs my logins, follow /path/to/agent-chrome-relay/skill/SKILL.md.

উদাহরণের path-এর পরিবর্তে আপনার ক্লোন করা রিপোজিটরির absolute path ব্যবহার করুন।

আপনার প্রথম ব্রাউজার অটোমেশন চালান

প্রথমে Chrome Relay-এর কাছে একটি authenticated connection URL চান, তারপর সেই URL agent-browser-এ দিন:

agent-browser --cdp "$(chrome-relay url you@company.com)" open https://app.example.com/
agent-browser snapshot -i
agent-browser click @e5
agent-browser close

you@company.com-এর পরিবর্তে প্রাসঙ্গিক কনফিগার করা পরিচয় এবং উদাহরণের সাইটের পরিবর্তে যে পৃষ্ঠাটি অটোমেট করতে চান সেটি ব্যবহার করুন।

  1. chrome-relay url এই Mac-এর secret-সহ একটি connection URL প্রিন্ট করে।
  2. agent-browser open একটি নিষ্ক্রিয় agent-owned tab তৈরি করে এবং অনুরোধ করা পৃষ্ঠা খোলে।
  3. snapshot -i লিংক, বোতাম এবং ফিল্ডের মতো ইন্টারঅ্যাক্টিভ নিয়ন্ত্রণগুলোর তালিকা দেখায়। প্রতিটির জন্য @e5-এর মতো একটি reference দেওয়া হয়।
  4. click @e5 ব্যাকগ্রাউন্ড ট্যাবে real input emulation ব্যবহার করে reference করা উপাদানটি সক্রিয় করে।
  5. close ব্রাউজার সেশন শেষ করে।

সাইন-ইন আচরণ বুঝুন

এজেন্ট আপনার credentials টাইপ করে না। কোনো সাইট Google-এর মাধ্যমে redirect করলে এবং সঠিক অ্যাকাউন্টে আগে থেকেই সাইন ইন করা থাকলে extension সেই অ্যাকাউন্ট নির্বাচন করে Continue বা Allow-এ ক্লিক করতে পারে। এটি page scripting ব্যবহার করে এবং 1Password পৃষ্ঠায় একটি frame বসালেও কাজ করতে পারে।

প্রবাহটি password, passkey, two-step verification অথবা signed-out account screen-এ পৌঁছালে অটোমেশন থেমে যায়। এজেন্ট SIGN-IN NEEDED বার্তা পায় এবং আপনাকে নিজের উইন্ডোতে সাইন-ইন সম্পন্ন করতে বলা উচিত।

প্রোফাইল ও সাইটের পরিচয় পরিচালনা করুন

পরিচয় কনফিগারেশন ~/.chrome-relay/identities.json-এ সংরক্ষিত থাকে। এটি পরিদর্শন বা পরিচালনা করতে ব্যবহার করুন:

chrome-relay identities

কনফিগারেশনে সেটআপের সময় শনাক্ত করা Chrome প্রোফাইল, ঐচ্ছিকভাবে ম্যানুয়ালি কনফিগার করা sites.rules, এবং সফল সাইন-ইন হপের পরে রেকর্ড করা sites.learned এন্ট্রি অন্তর্ভুক্ত থাকে। ডিফল্টভাবে, কোনো সাইট নির্বাচিত Chrome প্রোফাইলের সঙ্গে সম্পর্কিত অ্যাকাউন্টটি ব্যবহার করে।

নিরাপত্তা মডেল

প্রতিটি এজেন্ট সংযোগকে দুটি যাচাই পাস করতে হয়:

  1. স্থানীয় গোপন তথ্য: সেটআপ ~/.chrome-relay/token-এ 600 ফাইল মোডসহ একটি টোকেন তৈরি করে। chrome-relay url দ্বারা প্রদর্শিত URL-গুলোতে টোকেনটি যুক্ত থাকে।
  2. অনুমোদিত এজেন্ট অ্যাপ্লিকেশন: সংযোগকারী প্রক্রিয়াটি Claude Code, Codex, Cursor অথবা Paseo-এর সঙ্গে সম্পর্কিত হতে হবে। রিলে প্রক্রিয়াগুলো এবং এসব অ্যাপ্লিকেশন চাইল্ড প্রক্রিয়ায় সেট করা মার্কার পরীক্ষা করে।

ব্রাউজারের Origin হেডারসহ সংযোগগুলোতে গোপন তথ্য থাকলেও সেগুলো প্রত্যাখ্যান করা হয়। এক্সটেনশনটিও Chrome-থেকে প্রাপ্ত এক্সটেনশন ID, তার chrome-extension:// origin এবং সংযোগকারী প্রক্রিয়াটি Chrome হওয়ার শর্তের মাধ্যমে যাচাই করা হয়।

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

অডিট ট্রেইল পর্যালোচনা

Chrome Relay প্রতিদিনের JSON Lines ফাইলে এজেন্টের কার্যকলাপ ~/.chrome-relay/audit/YYYY-MM-DD.jsonl-এর অধীনে রেকর্ড করে। রেকর্ডগুলো পড়তে চালান:

chrome-relay audit

অডিট ট্রেইলে সংযোগের বিবরণ, কাজের ফোল্ডার, সেশন শনাক্তকারী, পরিদর্শন করা পেজ, ক্লিকের অবস্থান, বিশেষ কী, এজেন্ট স্ক্রিপ্ট, স্ক্রিনশট, আপলোড, পপআপ, সাইন-ইন ক্লিক এবং ব্লক করা পেজ অন্তর্ভুক্ত থাকে। গোপনীয়তার জন্য টাইপ করা টেক্সটের পরিবর্তে শুধু তার অক্ষর-সংখ্যা রাখা হয় এবং URL-এর কোয়েরি স্ট্রিং সরিয়ে ফেলা হয়।

উন্নত আচরণ ও পরামর্শ

পপআপ ও নতুন ট্যাব

target=_blank ব্যবহার করা লিংক এবং পপআপ একই এজেন্টের মালিকানাধীন লুকানো ট্যাব হিসেবে খোলে। পপআপের প্রমাণীকরণ প্রবাহ এখনও ওপেনারের কাছে বার্তা পাঠিয়ে নিজে বন্ধ হতে পারে। রিলে কোনো পেজের দাবির ওপর নির্ভর না করে পর্যবেক্ষিত মেসেজ origin এবং targetOrigin প্রয়োগ করে।

1Password পেজ

কোনো পেজে অন্য একটি এক্সটেনশনের ফ্রেম থাকলে, যেমন লগইন ফর্মে 1Password মেনু, Chrome এক্সটেনশন ডিবাগার বিচ্ছিন্ন করতে পারে। এজেন্টের কমান্ড চালিয়ে যাওয়ার আগে Chrome Relay অপেক্ষা করে এবং পুনরায় সংযুক্ত হয়।

স্বয়ংক্রিয় পরিষ্কার

৩০ মিনিট নিষ্ক্রিয় থাকার পরে এজেন্টের ট্যাবগুলো বন্ধ হয়ে যায়। রিলে পুনরায় চালু হলে এক্সটেনশনটি আগে খোলা ট্যাবগুলোও বন্ধ করে। পরিষ্কার করার কাজ ট্যাব ID-এর ভিত্তিতে হয়, তাই আপনার নিজস্ব ট্যাব গ্রুপ পরিবর্তন করা হয় না।

ব্যাকগ্রাউন্ড ইনপুট

এজেন্ট ট্যাবগুলোতে ফোকাস অনুকরণ সক্রিয় থাকে। এর ফলে আপনার বর্তমান Chrome ট্যাব অপরিবর্তিত রেখেই নিষ্ক্রিয় ট্যাবে ক্লিক ও টাইপ করা যায়।

Chrome Relay আপডেট, নির্ণয় ও অপসারণ

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

git pull
chrome-relay update

রিলের লগ দেখুন:

chrome-relay logs

লগ ফাইলটি ~/.chrome-relay/relay.log-এ সংরক্ষিত থাকে। স্থানীয় সার্ভিস এবং কমান্ড-লাইন সেটআপ আনইনস্টল করতে চালান:

chrome-relay uninstall

এরপর প্রতিটি Chrome প্রোফাইল থেকে আনপ্যাক করা এক্সটেনশনটি ম্যানুয়ালি সরিয়ে ফেলুন।

উন্নয়ন ও পরীক্ষা

রিলের নির্ভরতা ইনস্টল করে টেস্ট স্যুট চালাতে:

cd relay && npm install && npm test

পরীক্ষাগুলো সংযোগের অনুমোদন কভার করে, যার মধ্যে গোপন তথ্য, অনুমোদিত অ্যাপ্লিকেশন, শুধু Chrome-এ অনুমোদিত এক্সটেনশন সংযোগ এবং অডিট আচরণ অন্তর্ভুক্ত। extension/-এর অধীনে ফাইল সম্পাদনা করার পরে এক্সটেনশনটি পুনরায় লোড করুন:

chrome-relay update

কাস্টম পরিবেশের জন্য CHROME_RELAY_HOME ডেটা ডিরেক্টরি এবং CHROME_RELAY_PORT রিলে পোর্ট ওভাররাইড করে।

উপসংহার

Chrome Relay কোনো রিমোট-ডিবাগিং পোর্টের প্রয়োজন ছাড়াই বা আপনার সক্রিয় উইন্ডোর নিয়ন্ত্রণ না নিয়েই সমর্থিত কোডিং এজেন্টকে বিদ্যমান Chrome সেশনে নিয়ন্ত্রিত প্রবেশাধিকার দেয়। স্থানীয় রিলে এবং আনপ্যাক করা এক্সটেনশন কনফিগার হয়ে গেলে, আপনি agent-browser দিয়ে প্রমাণীকৃত ব্রাউজার কাজ স্বয়ংক্রিয় করতে, প্রতি প্রোফাইল বা সাইট অনুযায়ী পরিচয় নির্বাচন করতে, গোপনীয়তা-সচেতন বিস্তারিত অডিট রেকর্ড পরিদর্শন করতে এবং পরিত্যক্ত সেশনের জন্য স্বয়ংক্রিয় পরিষ্কারের ওপর নির্ভর করতে পারবেন।

সোর্স কোড, আপডেট এবং সমস্যা জানানোর জন্য Chrome Relay GitHub রিপোজিটরি দেখুন। প্রকল্পটি MIT লাইসেন্সের অধীনে উপলভ্য।