
Everything Search Skill কী করে
Everything Search Skill AI কোডিং এজেন্টদের Voidtools Everything-এ ইনডেক্স করা ফাইলগুলোতে অত্যন্ত দ্রুত অ্যাক্সেস দেয়। এটি NTFS ড্রাইভজুড়ে কোটি কোটি ফাইল অনুসন্ধান করতে পারে; প্রতিবেদিত রেসপন্স সময় ১৫ মিলিসেকেন্ডেরও কম। তাই সোর্স ফাইল, কনফিগারেশন ফাইল, লগ, অ্যাসেট এবং প্রজেক্ট ডিরেক্টরি খুঁজে বের করার জন্য এটি কার্যকর।
প্রজেক্টটি es.exe-এর একটি সাধারণ সীমাবদ্ধতার সমাধান করে। নেটিভ কমান্ড-লাইন ক্লায়েন্টটি Windows messaging এবং Win32 IPC-এর মাধ্যমে Everything ডেস্কটপ অ্যাপ্লিকেশনের সঙ্গে যোগাযোগ করে। তাই Docker, WSL2, Windows Sandbox, বিচ্ছিন্ন রানার বা ব্যাকগ্রাউন্ড সেশনে চলা এজেন্টরা নিচের ত্রুটিটি পেতে পারে:
Error 8: Everything IPC window not found. Please make sure Everything is running.Windows User Interface Privilege Isolation এবং Session 0 Isolation ভিন্ন ডেস্কটপ সেশনের প্রসেসগুলোর প্রয়োজনীয় window message আদান-প্রদান প্রতিরোধ করায় এই ব্যর্থতা ঘটতে পারে।
ডুয়াল-মোড আর্কিটেকচার কীভাবে কাজ করে
Everything engine-এর সঙ্গে যোগাযোগের জন্য স্কিলটি দুটি পদ্ধতি সমর্থন করে:
- HTTP REST মোড: Sandbox, container, WSL2, remote environment, Linux এবং macOS-এর জন্য পছন্দনীয় মোড। রিকোয়েস্ট Windows host-এ চলা HTTP server-এ পৌঁছায় এবং Win32 session restriction এড়িয়ে যায়।
- CLI IPC মোড: নেটিভ Windows desktop session-এর ভেতরে চলা এজেন্টের জন্য fallback। এই মোডে helper Everything-এর প্রচলিত IPC mechanism-এর মাধ্যমে
es.exeকল করে।
স্বয়ংক্রিয় মোডে Python helper প্রথমে HTTP ব্যবহার করার চেষ্টা করে এবং প্রয়োজন হলে CLI-তে fallback করে। Python implementation-এ শুধু standard-library module ব্যবহার করা হয়েছে, তাই কোনো third-party Python dependency নেই।
প্রধান বৈশিষ্ট্য
- দ্রুত ইনডেক্সভিত্তিক অনুসন্ধান: ডিরেক্টরি পুনরাবৃত্তভাবে স্ক্যান না করেই ইনডেক্স করা NTFS ড্রাইভজুড়ে ফাইল খুঁজুন।
- Container support: Docker, WSL2, Windows Sandbox এবং বিচ্ছিন্ন agent runner-কে host HTTP endpoint-এর সঙ্গে সংযুক্ত করুন।
- সীমাবদ্ধ অনুসন্ধান: সব ইনডেক্স করা ড্রাইভে অনুসন্ধান করুন অথবা ফলাফলকে একটি workspace-এ সীমাবদ্ধ রাখুন।
- Context-safe limit:
-n 20-এর মতো option ব্যবহার করে বড় ফলাফলসমষ্টির কারণে AI agent-এর context window পূর্ণ হওয়া রোধ করুন। - গঠিত ফলাফল: Python এবং PowerShell helper থেকে JSON output চান।
- Agent integration: Cursor, Codex, PI-Desktop অথবা custom agent environment-এর জন্য স্কিলটি ইনস্টল করুন।
পূর্বশর্ত
আপনার এমন একটি Windows host প্রয়োজন যেখানে Voidtools Everything চলছে এবং এর index উপলভ্য। নেটিভ desktop ব্যবহারের জন্য স্কিলটি es.exe-এর মাধ্যমে যোগাযোগ করতে পারে। Docker, WSL2, sandboxed অথবা remote ব্যবহারের জন্য host-এ Everything-এর HTTP server সক্রিয় করুন।
ধাপ ১: Everything HTTP Server সক্রিয় করুন
Windows host-এ Everything খুলে নিচের ধাপগুলো সম্পন্ন করুন:
- Tools খুলে Options নির্বাচন করুন।
- বামদিকের navigation-এ HTTP Server নির্বাচন করুন।
- Enable HTTP Server সক্রিয় করুন।
- Port হিসেবে
8080নির্ধারণ করুন। - Settings নিশ্চিত করুন।
বিকল্পভাবে repository-এর PowerShell setup script চালাতে পারেন:
.\scripts\enable_http.ps1 -Port 8080HTTP endpoint বিচ্ছিন্ন agent এবং host-এ চলা Everything service-এর মধ্যে সেতু হিসেবে কাজ করে।
ধাপ ২: Skill clone ও install করুন
PowerShell খুলে repository clone করুন, তার directory-তে প্রবেশ করুন এবং installer চালান:
git clone https://github.com/Mayuqi-crypto/everything-search-skill.git
cd everything-search-skill
.\scripts\install.ps1Installer es.exe-কে ~/.local/bin/-এ রাখে, user PATH কনফিগার করে এবং নিচের agent location-গুলোতে skill deploy করে:
~/.agents/skills/~/.cursor/skills/~/.codex/skills/
ধাপ ৩: একটি সাধারণ অনুসন্ধান চালান
ডুয়াল-মোড Python helper-টি scripts/everything_search.py-এ রয়েছে। স্বয়ংক্রিয় মোডে এটি প্রথমে HTTP endpoint চেষ্টা করে, এরপর উপলভ্য থাকলে নেটিভ CLI fallback ব্যবহার করে:
python scripts/everything_search.py "package.json" -n 20-n 20 argument response-কে ২০টি match-এ সীমাবদ্ধ রাখে। AI agent output ব্যবহার করলে ফলাফলের limit বিশেষভাবে গুরুত্বপূর্ণ।
গঠিত JSON ফেরত দিন
ফলাফল programmatically parse করা হলে --json যোগ করুন:
python scripts/everything_search.py "ext:tsx component" -n 10 --jsonএই query এমন indexed item খোঁজে যেগুলো ext:tsx এবং component উভয়ের সঙ্গে মেলে, তারপর JSON আকারে সর্বোচ্চ ১০টি ফলাফল ফেরত দেয়।
একটি Project-এ অনুসন্ধান সীমাবদ্ধ করুন
অনুসন্ধানকে একটি workspace-এ সীমাবদ্ধ করতে Python helper-এর সঙ্গে -p ব্যবহার করুন:
python scripts/everything_search.py "main.py" -p "C:\Workspace\repo" -n 5অনুসন্ধানের scope নির্ধারণ করলে অন্য project-এর অপ্রাসঙ্গিক match কমে এবং নির্দিষ্ট repository-র ভেতরে কাজ করা agent-এর জন্য output আরও উপযোগী হয়।
HTTP মোড জোরপূর্বক ব্যবহার করুন
Agent-কে host-এর HTTP server ব্যবহার করাতে হলে সেই mode স্পষ্টভাবে নির্বাচন করুন:
python scripts/everything_search.py "exact:Dockerfile" --mode httpexact: operator wildcard expansion এড়িয়ে সঠিক filename অনুসন্ধান করে।
Docker থেকে Skill ব্যবহার করুন
EVERYTHING_HTTP_URL-এর মাধ্যমে host endpoint-টি container-এ পাঠান। repository-এর উদাহরণে বিশেষ host name-টিকেও host gateway-তে map করা হয়েছে:
docker run -e EVERYTHING_HTTP_URL=http://host.docker.internal:8080 \
--add-host host.docker.internal:host-gateway \
my-agent-imageContainer-এর ভেতরে Python helper চালান:
python scripts/everything_search.py "package.json" -n 10 --jsonঅনুরোধটি কনটেইনারের ভেতর থেকে ডেস্কটপ IPC ব্যবহারের চেষ্টা না করে TCP-এর মাধ্যমে Everything HTTP সার্ভারে যায়।
WSL2 থেকে Skill ব্যবহার করুন
WSL2-তে, ডিফল্ট রুট থেকে Windows হোস্টের ঠিকানা সংগ্রহ করুন এবং ফলাফল হিসেবে পাওয়া এন্ডপয়েন্টটি EVERYTHING_HTTP_URL-এ নির্ধারণ করুন:
export EVERYTHING_HTTP_URL="http://$(ip route show | awk '/default/ {print $3}'):8080"
python3 scripts/everything_search.py "ext:py model" -n 10কোয়েরিটি একটি যৌক্তিক AND ব্যবহার করে: প্রতিটি ম্যাচকে Python এক্সটেনশন ফিল্টার এবং model শব্দ, উভয় শর্তই পূরণ করতে হবে।
নেটিভ Windows সেশনে es.exe ব্যবহার করুন
এজেন্ট যখন Everything-এর একই নেটিভ ডেস্কটপ প্রসঙ্গে চলে, তখন আপনি সরাসরি es.exe কল করতে পারেন। সবসময় একটি উপযুক্ত ফলাফল সীমা নির্ধারণ করুন:
es.exe -n 20 "package.json"ওয়ার্কস্পেসে ফলাফল সীমাবদ্ধ করুন
es.exe -path "C:\my-repo" -n 20 "index.ts"শুধু ফাইল বা ডিরেক্টরি ফেরত দিন
শুধু ফাইলের জন্য /a-d এবং শুধু ডিরেক্টরির জন্য /ad ব্যবহার করুন:
es.exe /a-d -n 15 "ext:tsx component"
es.exe /ad -n 10 "node_modules"সাম্প্রতিক লগ আগে সাজান
es.exe -sort-date-modified-descending -n 10 "ext:log dm:today"এটি আজকের লগ ফাইলগুলো অনুসন্ধান করে এবং পরিবর্তনের তারিখ অনুযায়ী, সবচেয়ে নতুনটি আগে রেখে সাজায়।
আরও নির্ভুল Everything কোয়েরি তৈরি করুন
Everything-এর অনুসন্ধান সিনট্যাক্স এজেন্টের কাছে ফলাফল পৌঁছানোর আগেই অনুসন্ধানকে সংকুচিত করতে পারে।
- একাধিক এক্সটেনশন: একাধিক এক্সটেনশন মেলাতে
ext:md;txt;jsonব্যবহার করুন। - সর্বনিম্ন ফাইলের আকার:
size:>100MBব্যবহার করুন। - আকারের পরিসর:
size:1MB..50MBব্যবহার করুন। সমর্থিত এককগুলোর মধ্যে রয়েছেB,KB,MBএবংGB। - পরিবর্তনের তারিখ:
dm:today,dm:last7daysঅথবাdm:2025-এর মতো মান ব্যবহার করুন। - প্যারেন্ট পাথ:
path:"C:\Workspace"ব্যবহার করুন। - সঠিক ফাইলের নাম:
exact:Dockerfileব্যবহার করুন। - যৌক্তিক AND:
model user ext:py-এর মতো স্পেস দিয়ে শর্তগুলো আলাদা করুন। - যৌক্তিক OR:
*.jpg | *.png-এর মতো বিকল্পগুলোর মাঝে পাইপ বসান। - যৌক্তিক NOT:
*.ts !*.test.ts-এর মতো বর্জনীয় শর্তের আগে!বসান। - রেগুলার এক্সপ্রেশন: নেটিভ CLI-এর
-rঅপশন ব্যবহার করুন, যেমনes.exe -r "src\\api\\.*\.go$"।
AI এজেন্ট ওয়ার্কফ্লোর জন্য উন্নত টিপস
ছোট, কাঠামোবদ্ধ প্রতিক্রিয়াকে অগ্রাধিকার দিন
এজেন্টের ফাইল নির্বাচন করতে বা ফলাফল অন্য কোনো টুলে পাঠাতে হলে -n-এর সঙ্গে --json ব্যবহার করুন। ছোট কাঠামোবদ্ধ প্রতিক্রিয়া পার্স করা সহজ এবং মডেলের কনটেক্সট সীমা অতিক্রম করার সম্ভাবনা কম।
python scripts/everything_search.py "ext:json package" -n 10 --jsonপরিধি বাড়ানোর আগে সীমাবদ্ধ করুন
প্রকল্পের অবস্থান জানা থাকলে বর্তমান ওয়ার্কস্পেস দিয়ে শুরু করুন। এতে কার্যকর কোনো ম্যাচ না পাওয়া গেলে, কোয়েরিটি সব ইনডেক্স করা ড্রাইভে বিস্তৃত করুন। এই পদ্ধতি শব্দদূষণ কমায় এবং একই সঙ্গে পুরো ইনডেক্সে অনুসন্ধানের সক্ষমতা বজায় রাখে।
ফিল্টার একত্র করুন
Everything স্পেস দিয়ে আলাদা করা শর্তগুলোকে যৌক্তিক AND হিসেবে বিবেচনা করে। আপনি একটি কোয়েরিতে ফাইলের নামের শর্ত, এক্সটেনশন, তারিখ এবং বর্জন একত্র করতে পারেন:
python scripts/everything_search.py "ext:ts dm:last7days !*.test.ts" -n 20 --jsonএই উদাহরণটি সম্প্রতি পরিবর্তিত TypeScript ফাইল খোঁজে এবং .test.ts দিয়ে শেষ হওয়া ফাইলগুলো বাদ দেয়।
সঠিক ট্রান্সপোর্ট বেছে নিন
- সাধারণ কাজ এবং সুবিধাজনক ফলব্যাক ব্যবহারের জন্য স্বয়ংক্রিয় মোড ব্যবহার করুন।
- Docker, WSL2, স্যান্ডবক্স, রিমোট এজেন্ট এবং Windows ডেস্কটপ সেশন থেকে বিচ্ছিন্ন পরিবেশের জন্য HTTP মোড ব্যবহার করুন।
- নেটিভ Windows ডেস্কটপ সেশনে ইন্টার্যাক্টিভভাবে চলার সময় এবং CLI-নির্দিষ্ট সুইচ প্রয়োজন হলে সরাসরি
es.exeকমান্ড ব্যবহার করুন।
রিপোজিটরির উপাদানগুলো বুঝুন
SKILL.md-তে স্ট্যান্ডার্ড এজেন্ট skill specification রয়েছে।bin/es.exe-তে অফিসিয়াল Voidtools CLI টুল রয়েছে।scripts/install.ps1ইনস্টলেশন এবং PATH সেটআপ সম্পন্ন করে।scripts/enable_http.ps1HTTP সার্ভার কনফিগার করে।scripts/everything_search.ps1দ্বৈত-মোড PowerShell wrapper সরবরাহ করে।scripts/everything_search.pyশূন্য-নির্ভরতার দ্বৈত-মোড Python wrapper সরবরাহ করে।
উপসংহার
Everything Search Skill AI coding agent-কে Win32 ডেস্কটপ IPC-এর ওপর একচেটিয়াভাবে নির্ভর না করে Everything ইনডেক্সের গতি ব্যবহারের সুযোগ দেয়। হোস্ট HTTP সার্ভার সক্রিয় করুন, skill ইনস্টল করুন, বিচ্ছিন্ন পরিবেশের জন্য এন্ডপয়েন্ট কনফিগার করুন এবং কঠোর ফলাফল সীমাসহ নির্দিষ্ট পরিধির কোয়েরি ব্যবহার করুন। এরপর দ্বৈত-মোড সহায়কটি একটি সামঞ্জস্যপূর্ণ অনুসন্ধান ইন্টারফেসের মাধ্যমে কনটেইনারভিত্তিক এজেন্ট এবং নেটিভ Windows ওয়ার্কফ্লো, উভয়কেই সমর্থন করে।
প্রকল্পটি MIT License-এর অধীনে উপলব্ধ। Voidtools Everything এবং es.exe-এর কপিরাইট Voidtools-এর কাছে সংরক্ষিত।
