CometixCode کیا ہے؟
CometixCode ٹرمینل پر مبنی AI کوڈنگ اسسٹنٹ ہے جو Rust میں لکھا گیا ہے۔ یہ Anthropic کی Claude Code ٹرمینل انٹرفیس کی فائل بہ فائل آزادانہ دوبارہ تنصیب ہے، نہ کہ Anthropic کی کوئی باضابطہ پروڈکٹ۔
CometixCode غیر سرکاری ہے، Anthropic سے وابستہ نہیں، اور Anthropic کی جانب سے اس کی توثیق یا معاونت نہیں کی جاتی۔ Claude اور Claude Code، Anthropic, PBC کے تجارتی نشان ہیں۔
اصل Claude Code ٹرمینل UI، React اور Ink کے ساتھ TypeScript استعمال کرتا ہے۔ CometixCode اسی ساخت کو Rust میں CometixTUI کے ذریعے دوبارہ بناتا ہے، جو iocraft ریٹینڈ-موڈ ٹرمینل UI فریم ورک کا ایک فورک ہے۔ TypeScript components کو Rust components، hooks کو hooks سے مطابقت دی گئی ہے، جبکہ دانستہ معماریاتی اختلافات کو سورس میں دستاویز کیا گیا ہے۔
یہ پروجیکٹ ابھی تک زیرِ تکمیل ہے۔ انٹرایکٹو لوپ، ٹول پر عمل درآمد، اجازتوں، Model Context Protocol انضمام، اور slash commands کے بڑے حصے نافذ ہو چکے ہیں، لیکن کچھ حصے ابھی جزوی ہیں۔
اہم خصوصیات اور معماری
- Rust پر مبنی ٹرمینل UI: انٹرفیس کو React طرز کے component اور hook ماڈل کے ساتھ نافذ کیا گیا ہے۔
- قریب معماریاتی پورٹ: یہ پروجیکٹ Claude Code کی شائع شدہ CLI ساخت کو فائل بہ فائل فالو کرتا ہے، اسے نئے ڈیزائن سے تبدیل نہیں کرتا۔
- انٹرایکٹو کوڈنگ ورک فلو: اسسٹنٹ لوپ اور ٹول پر عمل درآمد کے نظام کے بڑے حصے نافذ ہیں۔
- اجازتیں اور کمانڈز: اجازتوں کا انتظام اور slash-command سپورٹ کافی حد تک نافذ ہے۔
- MCP سپورٹ: Model Context Protocol کی فعالیت شامل ہے، اگرچہ مجموعی پروجیکٹ اب بھی زیرِ ترقی ہے۔
- بہتر ٹرمینل primitives: CometixTUI قطار کی سطح پر diffing، event propagation، SIGCONT recovery، IME cursor support، bracketed paste، اور grid layout فراہم کرتا ہے۔
- بیرونی فائل سرچ: CometixCode ripgrep کو اپنی بائنری میں compile کرنے کے بجائے الگ ripgrep executable استعمال کرتا ہے۔
ضروریات
CometixCode بنانے سے پہلے درج ذیل dependencies انسٹال کریں:
- Rust 1.87 یا اس کے بعد کا ورژن، Rust edition 2024 استعمال کرتے ہوئے۔
- ICU4C، جسے
pkg-configکے ذریعےrust_icu_*crates درکار کرتے ہیں۔
macOS پر ICU4C انسٹال کریں
Homebrew، ICU4C کو keg-only package کے طور پر انسٹال کرتا ہے۔ اسے انسٹال کریں اور اس کی pkgconfig directory کو lookup path میں شامل کریں:
brew install icu4c
export PKG_CONFIG_PATH="$(brew --prefix icu4c)/lib/pkgconfig"CometixCode بنانے والے shell میں export چلائیں۔ اگر آپ باقاعدگی سے پروجیکٹ پر کام کرتے ہیں تو اس variable کو متعلقہ shell configuration file میں شامل کریں۔
Debian یا Ubuntu پر ICU4C انسٹال کریں
sudo apt install libicu-dev pkg-configCometixCode بنائیں
repository root میں ٹرمینل کھولیں اور optimized release build بنائیں:
cargo build --releaseتیار ہونے والی بائنری کا نام cometix ہے۔ عام استعمال کے لیے release build موزوں ہے کیونکہ یہ Rust کی release optimizations فعال کرتا ہے۔
اسسٹنٹ چلائیں
Cargo کے ذریعے CometixCode بنائیں اور چلائیں:
cargo run --releaseیہ release profile استعمال کرتے ہوئے ٹرمینل انٹرفیس شروع کرتا ہے۔ چونکہ پروجیکٹ فعال ترقی کے مرحلے میں ہے، اس لیے توقع رکھیں کہ بڑے interactive، tool، permission، MCP، اور command features موجود ہونے کے باوجود کچھ workflows نامکمل ہوں گے۔
بنیادی تشخیصی کمانڈ
CometixCode کے اندر configured environment کا جائزہ لینے کے لیے درج ذیل slash command استعمال کریں، جس میں استعمال ہونے والا ripgrep executable بھی شامل ہے:
/doctorیہ خاص طور پر اس وقت مفید ہے جب file search دستیاب نہ ہو یا آپ کو تصدیق کرنی ہو کہ CometixCode نے packaged یا host-installed rg binary منتخب کی ہے۔
فائل سرچ کے لیے ripgrep ترتیب دیں
CometixCode فائل searches کو rg یعنی ripgrep command-line tool کے سپرد کرتا ہے۔ ripgrep executable ایک بیرونی asset رہتا ہے اور اسے کبھی بھی cometix executable میں compile نہیں کیا جاتا۔
CometixCode درج ذیل ترتیب سے ripgrep تلاش کرتا ہے:
- executable کے ساتھ موجود
vendor/ripgrep/<arch>-<os>/rg، جیسا کہ release archives میں استعمال ہوتا ہے۔ - source tree میں موجود
vendor/ripgrep/<arch>-<os>/rg، جیسا کہ development کے دوران استعمال ہوتا ہے۔ - host system کی
PATHکے ذریعے دستیابrgcommand۔
اس لیے آپ matching vendor/ripgrep/ platform directory میں pinned ripgrep build رکھ سکتے ہیں، یا host پر ripgrep انسٹال کر کے یقینی بنا سکتے ہیں کہ rg، PATH میں موجود ہو۔
Host ripgrep بائنری کو لازمی استعمال کریں
جب آپ چاہتے ہیں کہ CometixCode vendored ripgrep assets کو نظرانداز کر کے host executable استعمال کرے تو USE_BUILTIN_RIPGREP کو 0 پر سیٹ کریں:
USE_BUILTIN_RIPGREP=0 cargo run --releaseلانچ کرنے کے بعد منتخب شدہ binary کی تصدیق کے لیے /doctor چلائیں۔
ٹیسٹ سوٹ درست طریقے سے چلائیں
CometixCode میں process-wide state موجود ہے، جس میں environment variables اور OnceLock caches شامل ہیں۔ ایک ہی process میں ہر test کو threads کے طور پر چلانے سے state tests کے درمیان منتقل ہو سکتی ہے، اس لیے سادہ cargo test کو اس crate کے لیے معتبر quality gate نہیں سمجھا جاتا۔
اس کے بجائے پروجیکٹ just کے ذریعے cargo-nextest استعمال کرتا ہے۔ اس سے ہر test کو اپنا process ملتا ہے اور host state محفوظ کی جاتی ہے جسے test بصورتِ دیگر inherit کر سکتا تھا۔
مکمل سوٹ چلائیں
just testیہ پروجیکٹ کا مطلوبہ مکمل test gate ہے۔
پیٹرن سے مطابقت رکھنے والے ٹیسٹ چلائیں
just t <pattern><pattern> کو اس ذیلی 문자열 سے تبدیل کریں جسے آپ مطلوبہ ٹیسٹوں کو فلٹر کرنے کے لیے استعمال کرنا چاہتے ہیں۔
کوڈ کی تیز جانچ کریں
just checkیہ لنک کیے بغیر ٹائپ اور بوررو چیکنگ کرتا ہے، اس لیے Rust کوڈ میں ترمیم کے دوران فوری رائے حاصل کرنے کے لیے مفید ہے۔
ترقی کے جدید نکات
- عام استعمال کے لیے ریلیز موڈ کو ترجیح دیں: پروجیکٹ کی دستاویزات میں بیان کردہ آپٹمائزڈ بلڈ چلانے کے لیے
cargo run --releaseاستعمال کریں۔ - پہلے ICU کی دریافت چیک کریں: macOS پر ICU سے متعلق بلڈ کی ناکامی اس بات کی نشاندہی کر سکتی ہے کہ
PKG_CONFIG_PATHمیں Homebrew کی ICU4C میٹا ڈیٹا ڈائریکٹری شامل نہیں ہے۔ /doctorکے ذریعے فائل کی تلاش کی تشخیص کریں: وینڈر کردہ فائلوں یا سسٹم کنفیگریشن کو تبدیل کرنے سے پہلے منتخب کردہ ripgrep ایگزیکیوٹیبل کی درست تصدیق کریں۔- تکرار پذیری اہم ہو تو ripgrep کو متعین کریں: مطلوبہ بائنری کو پلیٹ فارم کے مطابق
vendor/ripgrep/پاتھ میں رکھیں، بجائے اس کے کہ عالمی طور پر نصب کسی بھی دستیاب ورژن پر انحصار کریں۔ - پروجیکٹ گیٹ کے لیے
cargo testکو متبادل نہ بنائیں:just testاستعمال کریں تاکہ ٹیسٹوں کو کوڈ بیس کے مطلوبہ پراسیس آئسولیشن کے ساتھ چلایا جائے۔ - ٹیسٹ کی منطق کے لیے justfile دیکھیں: اس کا ہیڈر منتخب کردہ ٹیسٹنگ حکمتِ عملی کے پسِ پشت پیمائشوں کو دستاویزی شکل دیتا ہے۔
لائسنس سے متعلق امور
CometixCode کو AGPL-3.0-only لائسنس کے تحت تقسیم کیا جاتا ہے۔ اس لائسنس میں نیٹ ورک کے ذریعے استعمال کی شق شامل ہے: اگر آپ ترمیم شدہ ورژن کو نیٹ ورک سروس کے طور پر چلاتے ہیں تو اس کے صارفین متعلقہ ترمیم شدہ سورس کوڈ کے حقدار ہیں۔
نتیجہ
CometixCode، CometixTUI استعمال کرتے ہوئے Claude Code ٹرمینل آرکیٹیکچر کا Rust پر مبنی متبادل فراہم کرتا ہے۔ Rust، ICU4C اور مناسب ripgrep ایگزیکیوٹیبل دستیاب ہونے کے بعد، آپ اسے Cargo کے ذریعے بنا اور چلا سکتے ہیں، /doctor کے ذریعے تلاش کی کنفیگریشن کا معائنہ کر سکتے ہیں، اور پروجیکٹ کے پراسیس آئسولیٹڈ just test ورک فلو سے تبدیلیوں کی توثیق کر سکتے ہیں۔
