প্রকল্প সম্পর্কে

Scantool একটি কোড স্ট্রাকচার বিশ্লেষণ টুল যা AI কোডিং এজেন্টদের (Claude Code, Cursor, VS Code Copilot, এবং অন্যান্য) কোডবেস দক্ষভাবে বুঝতে সাহায্য করে। সম্পূর্ণ ফাইল পড়ে ফাংশন বা ক্লাস খোঁজার পরিবর্তে, এজেন্টরা একটি একক কলেই কাঠামোগত মানচিত্র পায়—প্রতিটি ক্লাস, ফাংশন, কলার, এবং শিরোনাম লাইন নম্বরসহ। এটি MCP (Model Context Protocol) সার্ভার এবং শেল কমান্ড (`sct`) উভয় হিসাবে কাজ করে, তাই এজেন্টরা যেকোনো ইন্টারফেসের মাধ্যমে এটি ব্যবহার করতে পারে। টুলটি ২০+ ভাষার জন্য tree-sitter পার্সার দ্বারা চালিত এবং কোনো ইনডেক্স, API কী, বা এক কমান্ডের বাইরে সেটআপ প্রয়োজন হয় না। মূল ক্ষমতাগুলির মধ্যে রয়েছে: সংলগ্ন প্রসঙ্গ এবং কলার লিডসহ কাঠামো অনুসন্ধান; এন্ট্রি পয়েন্ট, হট ফাংশন, এবং কেন্দ্রীয় ফাইলগুলির জন্য ডিরেক্টরি স্ক্যান; একটি একক ফাংশন বা শিরোনামে ফোকাস তার সঠিক কোড এবং এক-স্তরের রূপরেখাসহ; git refs-এর মধ্যে কাঠামোগত পার্থক্য গণনা; ফাংশনের প্রকৃত কল সাইট খুঁজে বের করা; ব্রাঞ্চ ওভারল্যাপ এবং মার্জ কনফ্লিক্ট সনাক্তকরণ; পাবলিক API সারফেস পরিবর্তন পরীক্ষা; সিবলিং কল প্যাটার্ন থেকে বিচ্যুত ফাংশন চিহ্নিত করা; এবং git refs জুড়ে ঠিকানা সমাধান করা। সোর্স কোডের বাইরে, Scantool ডকুমেন্টও পরিচালনা করে—Markdown শিরোনাম, SQL টেবিল এবং ভিউ, YAML/TOML/JSON কী, CSS সিলেক্টর, এবং আরও—লাইন রেঞ্জসহ ঠিকানাযোগ্য কাঠামো হিসাবে। টুলটি চাহিদা অনুযায়ী ফাইল পার্স করে এবং git blob ID দ্বারা ক্যাশ করে, তাই একটি ref-এ, stdin-এ, বা পরবর্তী প্রসেসে একই বাইট দুবার পার্স হয় না। ফাংশনগুলি সংকুচিত স্কেলিটন হিসাবে দেখানো হয় যেখানে কন্ট্রোল ফ্লো, কল, এবং রিটার্ন রাখা হয় যখন তুচ্ছ বিবৃতি ভাঁজ করা হয়। প্রতিটি উত্তর একটি কভারেজ লাইন অন্তর্ভুক্ত করে যা দেখা ফাইল, দেখানো কাঠামো, এবং কী বাদ দেওয়া হয়েছে তা গণনা করে। বাস্তব এজেন্ট এপিসোডে পরিমাপ করা হয়েছে, Scantool টার্গেটেড অনুসন্ধানের জন্য টোকেন ব্যবহার ২৫x কমিয়েছে (৩৭৮ টোকেন বনাম grep-এর ৯,৩৭০) এবং ফোকাসড রিডের জন্য ৭৫% (১৩,৫২৩ বনাম ৫৪,৩৩৭ টোকেন) অপরিবর্তিত ফ্যাক্ট কভারেজে। ২২টি এপিসোড জুড়ে, Scantool এজেন্টরা ৮৮% ফ্যাক্ট কভারেজ অর্জন করেছে বনাম grep-শুধু এজেন্টদের ৭৩%। Grep এখনও সাধারণ লিটারাল লুকআপ এবং টপ-লেভেল ওভারভিউতে যথাক্রমে ১.৪x এবং ১.৬x জয়ী। সমর্থিত ভাষাগুলির মধ্যে রয়েছে Python, JavaScript, TypeScript, Rust, Go, C, C++, Java, PHP, C#, Ruby, Zig, Swift, SQL, HTML, CSS, SCSS, YAML, Markdown, Jupyter notebooks, plain text, JSON, TOML, এবং images। ভাঙা ফাইলগুলি regex এক্সট্রাকশনে ফিরে যায়। অন্যান্য কোড-এক্সপ্লোরেশন MCP সার্ভারের তুলনায়: Repomix পুরো রিপোটি একটি ফাইলে প্যাক করে; Serena ভাষা সার্ভার ব্যবহার করে প্রতীক-দ্বারা-প্রতীক এবং কোড সম্পাদনা করতে পারে; claude-context একটি ভেক্টর ডেটাবেসসহ এমবেডিং ইনডেক্স ব্যবহার করে এবং API কী প্রয়োজন। Scantool-এর পদ্ধতি—কোনো ইনডেক্স ছাড়াই চাহিদা অনুযায়ী পার্সিং—সেই খরচ এড়ায় এবং ডকুমেন্ট স্ট্রাকচারও বের করে যা অন্যগুলির কেউ সম্বোধন করে না। ইনস্টলেশনের জন্য uv প্রয়োজন, তারপর MCP সার্ভার নিবন্ধনের জন্য একটি একক কমান্ড। টুলটি MIT লাইসেন্সযুক্ত এবং FastMCP, tree-sitter, এবং uv-এর উপর নির্মিত।