opencode-rust کیا ہے؟
opencode-rust Rust میں تیار کردہ ایک اوپن سورس AI کوڈنگ ایجنٹ ہے۔ یہ ٹرمینل یوزر انٹرفیس، یک بار کمانڈ چلانے کی سہولت، HTTP سرور، Web سپورٹ، اور مقامی AI-ایجنٹ ورک فلو کے لیے ACP انٹیگریشن فراہم کرتا ہے۔
یہ انجن سیشنز، ٹول پر عمل درآمد، MCP، LSP، پرووائیڈر روٹنگ، SQLite اسٹوریج، اور TypeScript پلگ اِن برج کو یکجا کرتا ہے۔ یہ Docker یا کسی دوسرے کنٹینر رن ٹائم کے بغیر چلتا ہے۔ Rust کا استعمال اس لیے کیا گیا ہے کہ streamed request bodies، SQLite پر مبنی گفتگو کی تاریخ، cached tool schemas، اور LRU و TTL eviction کے ساتھ فی ڈائریکٹری pooled state کے ذریعے وسائل کا استعمال محدود رکھا جا سکے۔
انسٹالیشن کا طریقہ منتخب کریں
تمام معاون انسٹالیشن طریقے opr کمانڈ فراہم کرتے ہیں، لیکن یہ کمانڈ انسٹالیشن کے طریقے کے مطابق مختلف انداز میں کام کرتی ہے۔
npm کے ذریعے انسٹال کریں
npm، Linux، macOS، اور Windows کو سپورٹ کرتا ہے اور موجودہ پلیٹ فارم کے لیے پہلے سے تیار کردہ بائنری پیکیج ڈاؤن لوڈ کرتا ہے۔ انسٹالیشن کے دوران یہ پروجیکٹ کو compile نہیں کرتا۔
npm install -g opencode-rustnpm launcher ایک Node اسکرپٹ ہے جو کمانڈز کو انجن تک بھیجتا ہے۔ دستیاب پلیٹ فارم پیکیجز میں macOS ARM64 اور x64، Linux x64 اور ARM64 GNU builds، Linux x64 musl، اور Windows x64 MSVC شامل ہیں۔
Homebrew کے ذریعے انسٹال کریں
macOS یا Linux پر Homebrew formula کو اس کمانڈ سے انسٹال کریں:
brew install vakandi/tap/opencode-rustیہ opencode بائنری کو Homebrew prefix میں رکھے بغیر opr انسٹال کرتا ہے، اس لیے یہ upstream OpenCode CLI کو shadow نہیں کرتا۔ Homebrew سورس سے build کرتا ہے، اس لیے Rust toolchain کو build dependency کے طور پر انسٹال کرتا ہے۔
سورس سے build کریں
ریپوزٹری clone کریں اور installer چلائیں:
git clone https://github.com/vakandi/opencode-rust.git
cd opencode-rust
./install.shInstaller release binary کو build کرتا ہے اور agent shortcuts کے ساتھ opr انسٹال کرتا ہے۔ یہ Rust sources اور Cargo manifest files کے fingerprints محفوظ کرتا ہے، اس لیے غیر تبدیل شدہ پروجیکٹ دوبارہ build نہیں ہوتا۔ ہر بار دوبارہ build کرنے کے لیے --force استعمال کریں۔
Homebrew یا source installer استعمال کرتے وقت opr خود engine binary ہوتا ہے۔ Flags پاس کرتے وقت واضح subcommand استعمال کریں:
opr tui --some-flagnpm کے ساتھ launcher flags کو TUI تک بھیجتا ہے، اس لیے opr --some-flag کی تشریح مختلف ہوتی ہے۔
ماحول تیار کریں
انسٹالیشن کے طریقے سے قطع نظر، plugin bridge اور npx کے ذریعے MCP servers چلانے کے لیے Node.js 18 یا اس کے بعد کا ورژن درکار ہے۔
پہلی بار چلانے سے پہلے آپ کو provider key بھی درکار ہوگی۔ مثال کے طور پر، اپنی shell میں Anthropic key سیٹ کریں:
export ANTHROPIC_API_KEY=sk-ant-...اپنے OpenCode setup کے ذریعے معاون provider اور credential configuration استعمال کریں۔ جہاں ممکن ہو keys کو source control اور shell history سے باہر رکھیں۔
اپنا پہلا سیشن چلائیں
Interactive TUI شروع کریں
ٹرمینل انٹرفیس اس کمانڈ سے شروع کریں:
oprTUI ڈیفالٹ interactive surface ہے۔ یہ فعال agent اور model دکھاتا ہے، assistant output کو stream کرتا ہے، اور / popup کے ذریعے command completion فراہم کرتا ہے۔
ایک prompt چلائیں
خودکار prompt کے لیے جو مکمل ہونے تک چلتا رہے، run استعمال کریں:
opr run "check this repo for risks"ایک سادہ provider call کے برعکس، run مکمل session prompt loop چلاتا ہے۔ Tools execute ہوتے ہیں، awaited subagents مکمل ہوتے ہیں، اور process کے خارج ہونے سے پہلے background work مکمل کر لیا جاتا ہے۔
HTTP سرور شروع کریں
انجن کو اس کے HTTP سرور کے ذریعے دستیاب کرانے کے لیے چلائیں:
opr serve --port 3000سرور وہی session engine استعمال کرتا ہے اور پروجیکٹ کے HTTP، streaming، اور agent infrastructure کو سپورٹ کرتا ہے۔
نامزد agents استعمال کریں
TUI میں built-in build اور plan agents شامل ہیں۔ build agent ڈیفالٹ full-access development agent ہے، جبکہ plan صرف پڑھنے والی analysis اور exploration کے لیے ہے۔ TUI میں agents تبدیل کرنے کے لیے Tab دبائیں۔
Source installer نامزد agents کے لیے shortcuts بھی بناتا ہے:
gilfoyle "fix this failing test"
setbon "write 5 ad hooks"
googlebot "audit my meta tags"یہ shortcuts متعلقہ --agent value کے ساتھ ایک prompt چلاتے ہیں۔ کسی shortcut کو prompt کے بغیر چلانے پر usage information standard error پر چھپتی ہے اور status 2 کے ساتھ عمل ختم ہو جاتا ہے۔
مزید agents اپنے OpenCode configuration اور oh-my-opencode agent stores میں ~/.omo/omo.jsonc یا ~/.config/omo/omo.jsonc پر configure کیے جا سکتے ہیں۔ ان مقامات کی agent configuration plugin default کو override کر سکتی ہے، اور agents کی matching canonical slugs کے ذریعے کی جاتی ہے، چاہے ان کے display names مختلف ہوں۔
پروجیکٹس اور سیشنز configure کریں
Configuration files کو working directory سے اوپر کی سمت تلاش کرتے ہوئے merge کیا جاتا ہے۔ معاون project-level names یہ ہیں:
opencode.jsoncopencode.json.opencode/opencode.jsonc.opencode/opencode.json
Global default configuration ~/.config/opencode/opencode.json یا اس کے JSONC equivalent میں محفوظ ہوتی ہے۔ Agent definitions اوپر بیان کردہ oh-my-opencode locations میں بھی محفوظ کی جا سکتی ہیں۔
Sessions SQLite میں محفوظ ہوتے ہیں اور creation، continuation، forking، import اور export، اور parent-child relationships کو سپورٹ کرتے ہیں۔ Database location دیکھنے کے لیے استعمال کریں:
opr db pathProxy pool کے زیر استعمال data directory سمیت دیگر runtime locations دیکھنے کے لیے استعمال کریں:
opr debug pathsMCP tools استعمال کریں
opencode-rust، stdio اور HTTP پر MCP کو سپورٹ کرتا ہے۔ MCP servers configuration سے load ہوتے ہیں، 90-second startup ceiling کے اندر parallel طور پر شروع کیے جاتے ہیں، اور اسی per-turn tool registry میں register ہوتے ہیں جسے agent استعمال کرتا ہے۔
اس کا مطلب ہے کہ MCP سرور کے ذریعے فراہم کیے گئے ٹولز ماڈل تک پہنچ سکتے ہیں اور ایجنٹ کے ایک مرحلے کے طور پر چل سکتے ہیں۔ سیشن شروع کرنے سے پہلے یقینی بنائیں کہ Node.js اور مطلوبہ MCP سرور پیکیجز دستیاب ہیں۔
یہ پروجیکٹ MCP اسٹڈیو ٹرانسپورٹ کے لیے نئی لائن سے الگ کیے گئے JSON کا استعمال کرتا ہے۔ یہ LSP کی Content-Length فریمنگ سے مختلف ہے، اس لیے MCP سرور کی کنفیگریشنز کو MCP سے ہم آہنگ ٹرانسپورٹس اور تعریفوں کو ہدف بنانا چاہیے۔
پس منظر کا کام مکمل ہونے کو یقینی بنائیں
run کمانڈ پس منظر کے کام ختم ہونے کے لیے ٹائم آؤٹ قبول کرتی ہے:
opr run --wait-background-timeout 120 "run the requested task"مرکزی مرحلے کے بعد، انجن سیشن کے بیکار ہونے کا انتظار کرتا ہے، oh-my-opencode کے ذریعے ریکارڈ کیے گئے چائلڈ فریمز کو اسٹریم کرتا ہے، اور تسلسل کی حالت چیک کرتا ہے۔ طے شدہ ٹائم آؤٹ 120 سیکنڈ ہے۔
ڈرین کا عمل رکنے کے بجائے کھلے انداز میں ناکام ہوتا ہے: غائب ڈیٹابیسز، غائب لیجرز، خراب JSON، اور پرانی فعال اندراجات کو باقی کام نہ ہونے کے برابر سمجھا جاتا ہے۔ جب آپ کے ورک فلو کو مختلف حدود درکار ہوں تو مختصر یا طویل ٹائم آؤٹ استعمال کریں۔
گھومنے والے پراکسی کو کنفیگر کریں
انجن میں ایک مقامی HTTP اور CONNECT فارورڈر شامل ہے جو رہائشی پراکسی امیدواروں کے ذریعے باری باری استعمال کرتا ہے۔ یہ تقریباً ہر 120 سیکنڈ بعد سب سے پہلے استعمال ہونے والے اپ اسٹریم کا انتخاب کرتا ہے، استعمال سے پہلے امیدواروں کی جانچ کرتا ہے، اور مسترد شدہ اندراجات کو قرنطینہ میں ڈال دیتا ہے۔
طے شدہ پول فائل یہاں موجود ہے:
- macOS:
~/Library/Application Support/opencode/proxy-pool.txt - Linux:
~/.local/share/opencode/proxy-pool.txt - Windows:
%LOCALAPPDATA%\opencode\proxy-pool.txt
ڈیٹا کا مقام تبدیل کرنے کے لیے OPENCODE_PATHS_ROOT سیٹ کریں۔ نتیجے میں پول کا راستہ $OPENCODE_PATHS_ROOT/opencode/proxy-pool.txt ہوگا۔
اندراجات میں میزبان اور پورٹ شامل ہوتے ہیں، جبکہ اسناد اور میٹا ڈیٹا اختیاری ہیں:
198.51.100.10:8080
203.0.113.24:1080
198.51.100.31:3128:myuser:mypass
203.0.113.77:8000 | note:rotates hourlyفائل میں صرف بنیادی اندراجات رکھیں۔ اگرچہ کچھ مثالوں میں # سے شروع ہونے والی لائنیں تبصروں کے طور پر دکھائی گئی ہیں، پارسر تبصروں کے نحو کو نافذ نہیں کرتا؛ ایسی لائنوں کو خراب اندراجات سمجھ کر نظرانداز کیا جاتا ہے۔ ناکام امیدواروں اور ملکیتی معلومات کو ہم رشتہ proxy-quarantine.json اور proxy-claims.json فائلوں میں برقرار رکھا جاتا ہے۔
پراکسی کا آغاز دستی طور پر پراکسی متغیرات ایکسپورٹ کرنے کے بجائے opencode_proxy::start() کے ذریعے ہونا چاہیے۔ فراہم کنندہ رجسٹری بنانے سے پہلے کلائنٹ کو پراکسی کنفیگریشن موصول ہونی چاہیے۔ خالی یا ناقابلِ مطالعہ پول، ہر درخواست کو ناکام کرنے والے لسنر کو شروع کرنے کے بجائے، ایک خرابی واپس کرتا ہے۔
کمانڈ کی سطح دریافت کریں
CLI میں انٹرایکٹو استعمال، سیشنز، سروسز، کنفیگریشن، تصدیق، ایجنٹس، ڈیبگنگ، MCP، ڈیٹا کی منتقلی اور دیکھ بھال کے لیے کمانڈز شامل ہیں:
tui attach run serve web acp models
session stats db config auth agent debug
mcp export import github pr upgrade uninstall
generate versionمفید run اختیارات میں --continue، --session، --fork، --agent، --format، --title، --dir، --port، --variant، --thinking، اور --wait-background-timeout شامل ہیں۔
ترقی اور تصدیق
اگر آپ ریپوزٹری پر کام کر رہے ہیں تو ورک اسپیس کے ٹیسٹس اور چیکس اس طرح چلائیں:
cargo test --workspace
cargo build --release --bin opencode
cargo clippy --workspace --all-targetsریپوزٹری CLI، سرور، سیشنز، ایجنٹس، ٹولز، فراہم کنندگان، MCP، پلگ انز، LSP، اسٹوریج، TUI، اجازتوں، راستوں، پراکسی اور متعلقہ یوٹیلیٹیز کے لیے کریٹس میں منظم ہے۔ ہر کریٹ کی دستاویزات docs/ ڈائریکٹری میں دستیاب ہیں۔
نتیجہ
opencode-rust ایک Rust پر مبنی OpenCode انجن فراہم کرتا ہے جس میں انٹرایکٹو TUI، مکمل سیشن ایگزیکیوشن، قابلِ تشکیل ایجنٹس، MCP اور پلگ ان انٹیگریشن، SQLite اسٹوریج اور HTTP رسائی شامل ہیں۔ npm، Homebrew یا سورس بلڈ سے آغاز کریں، فراہم کنندہ کی کلید کنفیگر کریں، اور اپنے ورک فلو کے مطابق opr، opr run یا opr serve استعمال کریں۔
یہ پروجیکٹ MIT لائسنس کے تحت جاری کیا گیا ہے اور OpenCode ٹیم سے وابستہ نہیں ہے۔
