Shim কী?
Shim হলো টার্মিনাল ব্যবহারকারীদের জন্য তৈরি একটি ছোট, স্থানীয়-প্রথম AI এজেন্ট হারনেস। এটি ডেস্কটপ অ্যাপ্লিকেশন, ব্যাকগ্রাউন্ড ডেমন, ডেটাবেস, Docker, Node.js বা Python ছাড়াই সমর্থিত মডেল API, Agent Skills এবং Model Context Protocol সার্ভার সংযুক্ত করার জন্য একটি সাধারণ ইন্টারফেস প্রদান করে।
Shim একটি স্ট্যাটিক বাইনারি হিসেবে বিতরণ করা হয় এবং কনফিগারেশনের জন্য সাধারণ JSON ও সেশনের জন্য শুধুমাত্র-সংযোজনযোগ্য JSONL ফাইল ব্যবহার করে। API কী Shim-এর কনফিগারেশনে লেখা হয় না; পরিবেশ ভেরিয়েবল থেকে পড়া হয়।
Shim একটি হারনেস, ইনফারেন্স ইঞ্জিন নয়। স্থানীয় মডেলের ওজন Ollama, LM Studio, llama.cpp বা অন্য কোনো সামঞ্জস্যপূর্ণ সার্ভিসের মতো একটি ইনফারেন্স সার্ভারের মাধ্যমে চালাতে হবে। হোস্টেড মডেলগুলোকে সমর্থিত HTTP API-এর মাধ্যমে প্রকাশ করতে হবে।
প্রধান বৈশিষ্ট্য
- কথোপকথনভিত্তিক ও স্পষ্ট নিয়ন্ত্রণ: সাধারণ ভাষায় ব্যবস্থাপনা-সংক্রান্ত অনুরোধ লিখুন অথবা সম্পূর্ণ স্ক্রিপ্টযোগ্য CLI ব্যবহার করুন।
- স্থানীয় কমান্ড রাউটিং: একটি ঐচ্ছিক স্থানীয় মিনি-মডেল ব্যবস্থাপনা অনুরোধকে অনুমোদিত Shim কমান্ডে রূপান্তর করতে পারে।
- একাধিক মডেল প্রদানকারী: Shim OpenAI-সামঞ্জস্যপূর্ণ API, Anthropic Messages, স্থানীয় প্রদানকারী প্রিসেট এবং কাস্টম এন্ডপয়েন্ট সমর্থন করে।
- Agent Skills: এটি
SKILL.mdফাইল শনাক্ত করে এবং প্রয়োজন হলেই সেগুলোর সম্পূর্ণ নির্দেশনা লোড করে। - MCP ইন্টিগ্রেশন: stdio বা Streamable HTTP MCP সার্ভার সংযুক্ত করুন এবং তাদের টুলগুলো এজেন্টের জন্য উন্মুক্ত করুন।
- অনুমতি নিয়ন্ত্রণ: শুধুমাত্র-পাঠ, নিশ্চিতকরণ-ভিত্তিক বা স্বয়ংক্রিয় সম্পাদন বেছে নিন।
- বহনযোগ্য অবস্থা: কনফিগারেশন ও সেশন সাধারণ JSON এবং JSONL ফাইল ব্যবহার করে।
- টেলিমেট্রি নেই: নেটওয়ার্ক কার্যকলাপ কেবল স্পষ্টভাবে করা মডেল কল, স্কিল ডাউনলোড, স্থানীয় আবিষ্কার এবং কনফিগার করা MCP সার্ভারের মধ্যে সীমাবদ্ধ।
Shim ইনস্টল করুন
বিকল্প ১: একটি রিলিজ ডাউনলোড করুন
Shim রিলিজ পৃষ্ঠা থেকে Windows, macOS বা Linux-এর জন্য স্ট্যাটিক বাইনারি ডাউনলোড করুন। এক্সিকিউটেবলটি আপনার সিস্টেমের PATH-এ রাখুন, তারপর Shim初始化 করুন:
shim setup
shimPowerShell-এ বর্তমান ডিরেক্টরি থেকে ডাউনলোড করা এক্সিকিউটেবল সরাসরি চালানোর সময় .\shim.exe ব্যবহার করুন।
বিকল্প ২: Go দিয়ে ইনস্টল করুন
Go 1.25 বা পরবর্তী সংস্করণ উপলভ্য থাকলে, এভাবে Shim ইনস্টল করুন:
go install github.com/Balanov/shim/cmd/shim@v0.1.0
shim setupবিকল্প ৩: সোর্স থেকে বিল্ড করুন
রিপোজিটরি ক্লোন করুন, এর টেস্ট চালান এবং বাইনারি বিল্ড করুন:
git clone https://github.com/Balanov/shim.git
cd shim
go test ./...
go build -trimpath -ldflags="-s -w" -o shim ./cmd/shim
./shim setupরিপোজিটরিতে Windows-এর জন্য scripts/build.ps1 এবং Unix সিস্টেমের জন্য scripts/build.sh-ও রয়েছে।
একটি মডেল সংযুক্ত করুন
স্থানীয় মডেল সার্ভার শনাক্ত করুন
Ollama, LM Studio, llama.cpp বা অন্য কোনো সামঞ্জস্যপূর্ণ স্থানীয় সার্ভার ইতিমধ্যে চললে, উপলভ্য মডেল শনাক্ত ও কনফিগার করতে Shim-কে বলুন:
shim model discover --addShim-এর সঙ্গে কোনো মডেল ওজন বান্ডেল করা হয় না বা নীরবে ডাউনলোড করা হয় না। স্থানীয় মডেল চালানোর দায়িত্ব মডেল সার্ভারেরই থাকে।
একটি হোস্টেড প্রদানকারী যোগ করুন
Shim-এ OpenAI, OpenRouter, Anthropic, Gemini, GitHub Models, Hugging Face এবং বেশ কয়েকটি স্থানীয় প্রদানকারীর জন্য প্রিসেট রয়েছে। কোনো মডেল যোগ করার আগে প্রদানকারীর শংসাপত্র পরিবেশে সেট করুন।
উদাহরণস্বরূপ, PowerShell ব্যবহারকারীরা এভাবে OpenRouter কনফিগার করতে পারেন:
$env:OPENROUTER_API_KEY = "..."
shim model add openrouter your/model --name main --use
shim model test mainঅন্যান্য শংসাপত্র ভেরিয়েবলের মধ্যে রয়েছে OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, GITHUB_TOKEN এবং HF_TOKEN। স্থায়ী শংসাপত্রের জন্য আপনার অপারেটিং সিস্টেম বা শেলের প্রচলিত গোপনীয়তা-ব্যবস্থাপনা ব্যবস্থা ব্যবহার করুন। Shim-এর প্রজেক্ট কনফিগারেশনে API কী রাখবেন না।
হোস্টেড মডেল যোগ করার উদাহরণ:
shim model add openrouter anthropic/claude-sonnet-4.5 --name claude --use
shim model add openai gpt-5 --name gpt --use
shim model add huggingface org/model --name hf --useএকটি কাস্টম এন্ডপয়েন্ট যোগ করুন
যেকোনো সমর্থিত OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের জন্য এর বেস URL এবং মডেল শনাক্তকারী দিন:
shim model add custom my-model --name mine \
--base-url http://127.0.0.1:8000/v1 --useকাস্টম প্রদানকারী OpenAI-সামঞ্জস্যপূর্ণ বা Anthropic অ্যাডাপ্টার ব্যবহার করতে পারে। কাস্টম সার্ভিসের জন্য শংসাপত্র ঐচ্ছিক এবং কনফিগারযোগ্য।
আপনার প্রথম এজেন্ট কাজ চালান
ওয়ান-শট রান ব্যবহার করুন
রিপোজিটরি পরিদর্শনের সবচেয়ে নিরাপদ উপায় হলো শুধুমাত্র-পাঠ রান:
shim run --read-only "explain this repository"ফাইল সম্পাদনা ও যাচাইকরণ কমান্ড চালানোর প্রয়োজন হলে, সেই রানের কাজগুলো অনুমোদন করতে --yes এবং অতিরিক্ত আউটপুটের জন্য --verbose ব্যবহার করুন:
shim run --yes --verbose "fix the tests and verify the result"শুধুমাত্র ওয়ার্কস্পেস, মডেল এবং অনুরোধ করা কাজের ওপর আস্থা থাকলেই --yes ব্যবহার করুন।
ইন্টার্যাক্টিভ টার্মিনাল চালু করুন
ইন্টার্যাক্টিভ সেশন শুরু করতে কোনো সাবকমান্ড ছাড়াই Shim চালান:
shimএরপর আপনি এ ধরনের এজেন্ট অনুরোধ লিখতে পারেন:
fix the failing tests in this repositoryসম্পূর্ণ কমান্ডসমূহ দেখতে shim help চালান।
সাধারণ ভাষায় Shim নিয়ন্ত্রণ করুন
Shim সাধারণ ইংরেজি ও রুশ ভাষার ব্যবস্থাপনা কার্যক্রমের জন্য নির্ধারিত অফলাইন বাক্য শনাক্ত করে। অন্যান্য ভাষা বা আরও নমনীয় ব্যাখ্যার জন্য মডেলকে কমান্ড রাউটার হিসেবে কনফিগার করুন:
shim router use ollama/qwen3:4bরাউটার কমান্ড নয় এমন চ্যাট-টেক্সট গ্রহণ করে নির্ধারণ করে সেটি কনফিগারেশন অনুরোধ নাকি সাধারণ এজেন্টের কাজ। যখন এটি কোনো পরিবর্তনকারী কমান্ড প্রস্তাব করে, Shim সেটি চালানোর আগে নিশ্চিতকরণ চায়।
রাউটিং আপনার মেশিনেই রাখতে হলে একটি লুপব্যাক মডেল এন্ডপয়েন্ট ব্যবহার করুন। রাউটার কেবল কমান্ডের ব্যাখ্যা পরিচালনা করে; নির্বাচিত প্রাথমিক মডেলটি সমর্থিত ভাষাগুলোতে সাধারণ কথোপকথন পরিচালনা করে।
এজেন্ট স্কিল যোগ করুন
Shim তার কনফিগারেশনের পাশের বৈশ্বিক skills/ ডিরেক্টরি এবং ওয়ার্কস্পেসের .shim/skills/, .agents/skills/, ও .claude/skills/ ডিরেক্টরিতে থাকা SKILL.md ফাইল খুঁজে পায়।
প্রথমে শুধু স্কিলের নাম ও বিবরণ সিস্টেম প্রম্পটে যোগ করা হয়। load_skill-এর মাধ্যমে প্রয়োজনের সময় সম্পূর্ণ নির্দেশনা লোড করা হয়, ফলে অপ্রয়োজনীয় প্রম্পট কনটেন্ট কমে।
রিপোজিটরি রেফারেন্স, GitHub URL, অথবা স্থানীয় পাথ থেকে স্কিল যোগ করুন:
shim skill add owner/repository
shim skill add https://github.com/owner/repository
shim skill add ./local/skill-or-collectionইনস্টল করা স্কিল পরিদর্শন ও পরিচালনা করুন:
shim skill list
shim skill show name
shim skill remove nameস্কিলের নির্দেশনা অবিশ্বস্ত। ব্যবহারের আগে সেগুলো পর্যালোচনা করুন, বিশেষ করে যখন সেগুলো শেল এক্সিকিউশন বা নেটওয়ার্ক অ্যাক্সেসের অনুরোধ করে।
MCP সার্ভার সংযুক্ত করুন
একটি Stdio সার্ভার যোগ করুন
নিচের উদাহরণটি বর্তমান ডিরেক্টরির জন্য MCP ফাইলসিস্টেম সার্ভার নিবন্ধন করে, এর টুলগুলো তালিকাভুক্ত করে এবং সরাসরি একটি টুল কল করে:
shim mcp add filesystem npx -y @modelcontextprotocol/server-filesystem .
shim mcp tools filesystem
shim mcp call filesystem list_allowed_directories '{}'একটি Streamable HTTP সার্ভার যোগ করুন
নাম ও URL দিয়ে একটি দূরবর্তী Streamable HTTP এন্ডপয়েন্ট নিবন্ধন করুন:
shim mcp add internal https://mcp.example.com/mcpকনফিগার করা সার্ভার তালিকাভুক্ত বা সরিয়ে ফেলুন:
shim mcp list
shim mcp remove filesystemMCP টুলগুলো mcp_filesystem_list_allowed_directories-এর মতো নামে প্রকাশিত হয়। ডিফল্ট অনুমতি মোডে MCP কলের জন্য নিশ্চিতকরণ প্রয়োজন।
Shim-এর JSON কনফিগারেশনের মাধ্যমে HTTP হেডার ও stdio এনভায়রনমেন্ট ভেরিয়েবল যোগ করা যায়। মানগুলোতে ${ENV_VAR} সম্প্রসারণ সমর্থিত, তাই কনফিগারেশন ফাইলের বদলে এনভায়রনমেন্টে গোপন তথ্য রাখা যায়।
একটি অনুমতি মোড বেছে নিন
Shim ডিফল্টভাবে ask মোডে থাকে। ওয়ার্কস্পেসের ফাইল পড়া, তালিকাভুক্ত করা ও অনুসন্ধান করা অনুমোদিত, কিন্তু ফাইলে লেখা, সম্পাদনা, শেল কমান্ড এবং MCP কলের জন্য নিশ্চিতকরণ প্রয়োজন।
একটি বৈশ্বিক অনুমতি নীতি নির্বাচন করুন:
shim permissions read-only
shim permissions ask
shim permissions auto- read-only: লেখা, শেল কমান্ড এবং MCP কল নিষ্ক্রিয় করে।
- ask: গুরুত্বপূর্ণ অপারেশনের জন্য নিশ্চিতকরণ চায়।
- auto: নিশ্চিতকরণ প্রম্পট ছাড়াই এজেন্টকে কাজ করার অনুমতি দেয়।
সাময়িক পরিবর্তনের জন্য বৈশ্বিক ডিফল্ট পরিবর্তনের বদলে shim run --read-only অথবা shim run --yes ব্যবহার করুন।
Shim কোনো অপারেটিং-সিস্টেম স্যান্ডবক্স নয়। শেল কমান্ড ও MCP সার্ভার আপনার ব্যবহারকারী অ্যাকাউন্টের অনুমতি নিয়ে চলে। অবিশ্বস্ত কাজের জন্য কনটেইনার, ভার্চুয়াল মেশিন বা OS স্যান্ডবক্স ব্যবহার করুন।
Shim-এর ফাইল টুলগুলো ওয়ার্কস্পেস থেকে লেক্সিক্যাল পাথ ট্র্যাভার্সাল ও সিমলিংক এস্কেপ প্রত্যাখ্যান করে, কিন্তু এসব পরীক্ষা কোনো ক্ষতিকর প্রসেসকে নিয়ন্ত্রণ করতে পারে না। মডেলের আউটপুট, রিপোজিটরির কনটেন্ট, স্কিল এবং MCP প্রতিক্রিয়াকে অবিশ্বস্ত ডেটা হিসেবে বিবেচনা করুন।
সেশন ও কনফিগারেশন পরিচালনা করুন
সেশন পরিদর্শন করুন, একটি নতুন সেশন শুরু করুন, অথবা আগের কোনো সেশন চালিয়ে যান:
shim session list
shim session new
shim run --resume SESSION_ID "continue"সমস্যা নির্ণয়ের সময় ডায়াগনস্টিক ও কনফিগারেশন কমান্ড ব্যবহার করুন:
shim status
shim doctor
shim config path
shim config showপ্রধান কনফিগারেশন ফাইলটি অপারেটিং সিস্টেমের ব্যবহারকারী-কনফিগারেশন লোকেশনের অধীনে shim/config.json। SHIM_CONFIG এনভায়রনমেন্ট ভেরিয়েবল অথবা --config অপশন দিয়ে পাথ পরিবর্তন করা যায়। সেশন রেকর্ডগুলো কনফিগারেশনের পাশে append-only JSONL ফাইল হিসেবে সংরক্ষিত হয়।
উন্নত টিপস
- শুরুতে read-only মোড ব্যবহার করুন। সম্পাদনা বা কমান্ড এক্সিকিউশনের অনুমতি দেওয়ার আগে রিপোজিটরি বিশ্লেষণের জন্য
--read-onlyব্যবহার করুন। - মডেল কনফিগারেশন পরীক্ষা করুন। কোনো প্রোভাইডার যোগ করার পর সংযোগ ও পরিচয়পত্র যাচাই করতে
shim model test NAMEচালান। - রাউটিং স্থানীয় রাখুন। স্বাভাবিক ভাষার কমান্ড শ্রেণিবিন্যাস আপনার কম্পিউটারেই রাখতে রাউটার হিসেবে একটি লুপব্যাক মডেল নির্ধারণ করুন।
- MCP গোপন তথ্যের জন্য এনভায়রনমেন্ট সম্প্রসারণ ব্যবহার করুন। গোপন মান সরাসরি সংরক্ষণ না করে কনফিগারেশনে
${ENV_VAR}উল্লেখ করুন। - প্রতি-রান অনুমতিকে অগ্রাধিকার দিন। বৈশ্বিক নীতি
auto-তে রেখে দেওয়ার বদলে পৃথক কাজের জন্য--read-onlyও--yesব্যবহার করুন। - তৃতীয় পক্ষের নির্দেশনা পর্যালোচনা করুন। ডাউনলোড করা স্কিল পরীক্ষা করুন এবং শেল, ফাইলসিস্টেম বা নেটওয়ার্ক অ্যাক্সেস দেওয়ার আগে MCP সার্ভারের আচরণ বিবেচনা করুন।
- প্রথমে ডায়াগনস্টিক চালান।
shim statusওshim doctor-এর মতো কমান্ড এজেন্ট রান করার আগে কনফিগারেশন সমস্যা শনাক্ত করতে সাহায্য করতে পারে।
উপসংহার
Shim সমর্থিত মডেল API, Agent Skills এবং MCP সার্ভার সংযুক্ত করার জন্য একটি সংক্ষিপ্ত টার্মিনাল স্তর প্রদান করে। এর স্ট্যাটিক বাইনারি, সাধারণ ফাইলভিত্তিক কনফিগারেশন, এনভায়রনমেন্ট-ভিত্তিক পরিচয়পত্র এবং স্পষ্ট অনুমতি মোড এটিকে হালকা ও পরিদর্শনযোগ্য AI এজেন্ট ওয়ার্কফ্লো চান এমন ব্যবহারকারীদের জন্য উপযোগী করে। একটি read-only কাজ দিয়ে শুরু করুন, প্রতিটি প্রোভাইডার বা টুল যাচাই করুন এবং প্রয়োজন হলেই বিস্তৃত অনুমতি দিন।
