CometixCode nima?
CometixCode — Rust tilida yozilgan, terminal asosida ishlovchi AI kodlash yordamchisi. U Anthropic’ning Claude Code terminal interfeysining rasmiy Anthropic mahsuloti emas, balki faylma-fayl mustaqil qayta amalga oshirilgan versiyasidir.
CometixCode norasmiy loyiha bo‘lib, Anthropic bilan bog‘liq emas va Anthropic tomonidan ma’qullanmaydi yoki qo‘llab-quvvatlanmaydi. Claude va Claude Code — Anthropic, PBC kompaniyasining savdo belgilaridir.
Asl Claude Code terminal UI’i TypeScript’da React va Ink yordamida yozilgan. CometixCode esa bu tuzilmani Rust’da CometixTUI yordamida qayta yaratadi. CometixTUI — iocraft retained-mode terminal UI freymvorkining forkidir. TypeScript komponentlari Rust komponentlariga, hook’lar esa hook’larga moslashtirilgan; me’moriy farqlar manba kodida hujjatlashtirilgan.
Loyiha hali ishlab chiqilmoqda. Interaktiv sikl, vositalarni bajarish, ruxsatlar, Model Context Protocol integratsiyasi va slash-buyruqlarning katta qismlari amalga oshirilgan, ammo ayrim yo‘nalishlar hali to‘liq emas.
Asosiy imkoniyatlar va arxitektura
- Rust asosidagi terminal UI: Interfeys React uslubidagi komponent va hook modelida amalga oshirilgan.
- Arxitekturaga yaqin port: Loyiha uni yangi dizayn bilan almashtirish o‘rniga Claude Code’ning e’lon qilingan CLI tuzilmasiga faylma-fayl amal qiladi.
- Interaktiv kodlash jarayoni: Yordamchi sikli va vositalarni bajarish tizimining asosiy qismlari amalga oshirilgan.
- Ruxsatlar va buyruqlar: Ruxsatlarni boshqarish va slash-buyruqlarni qo‘llab-quvvatlash sezilarli darajada amalga oshirilgan.
- MCP qo‘llovi: Model Context Protocol funksiyalari kiritilgan, ammo loyiha hali ham ishlab chiqilmoqda.
- Kengaytirilgan terminal primitivlari: CometixTUI qator darajasidagi farqlarni hisoblash, hodisalarni uzatish, SIGCONT’dan tiklanish, IME kursorini qo‘llab-quvvatlash, qavsli joylashtirish va grid maketini taqdim etadi.
- Tashqi fayl qidiruvi: CometixCode ripgrep’ni o‘z binar fayliga kompilyatsiya qilish o‘rniga alohida bajariladigan ripgrep faylidan foydalanadi.
Zaruriy shartlar
CometixCode’ni yig‘ishdan oldin quyidagi bog‘liqliklarni o‘rnating:
- Rust 1.87 yoki undan yangiroq, Rust edition 2024’dan foydalanadi.
- ICU4C,
pkg-configorqalirust_icu_*crate’lari uchun talab qilinadi.
macOS’da ICU4C’ni o‘rnatish
Homebrew ICU4C’ni keg-only paket sifatida o‘rnatadi. Uni o‘rnating va uning pkgconfig katalogini qidiruv yo‘liga qo‘shing:
brew install icu4c
export PKG_CONFIG_PATH="$(brew --prefix icu4c)/lib/pkgconfig"Eksport buyrug‘ini CometixCode’ni yig‘adigan shell’da bajaring. Loyiha ustida muntazam ishlasangiz, o‘zgaruvchini tegishli shell konfiguratsiya fayliga qo‘shing.
Debian yoki Ubuntu’da ICU4C’ni o‘rnatish
sudo apt install libicu-dev pkg-configCometixCode’ni yig‘ish
Repository ildizida terminal oching va optimallashtirilgan release build yarating:
cargo build --releaseNatijaviy binar fayl cometix deb nomlanadi. Oddiy foydalanish uchun release build mos keladi, chunki u Rust’ning release optimallashtirishlarini yoqadi.
Yordamchini ishga tushirish
CometixCode’ni Cargo orqali yig‘ing va ishga tushiring:
cargo run --releaseBu terminal interfeysini release profili yordamida ishga tushiradi. Loyiha faol ishlab chiqilayotgani sababli, asosiy interaktiv, vosita, ruxsat, MCP va buyruq funksiyalari mavjud bo‘lsa ham, ayrim jarayonlar to‘liq ishlamasligi mumkin.
Asosiy diagnostika buyrug‘i
CometixCode ichida sozlangan muhitni, jumladan qaysi ripgrep bajariladigan faylidan foydalanilayotganini tekshirish uchun quyidagi slash-buyruqdan foydalaning:
/doctorBu, ayniqsa, fayl qidiruvi ishlamayotganda yoki CometixCode paketlangan yoxud host tizimiga o‘rnatilgan rg binar faylini tanlaganini tasdiqlash kerak bo‘lganda foydalidir.
Fayl qidiruvi uchun ripgrep’ni sozlash
CometixCode fayl qidiruvlarini rg, ya’ni ripgrep buyruq qatori vositasiga topshiradi. Ripgrep bajariladigan fayli tashqi resurs bo‘lib qoladi va hech qachon cometix bajariladigan fayliga kompilyatsiya qilinmaydi.
CometixCode ripgrep’ni quyidagi tartibda qidiradi:
- Release arxivlarida ishlatiladigan, bajariladigan fayl yonidagi
vendor/ripgrep/<arch>-<os>/rg. - Ishlab chiqish jarayonida ishlatiladigan, manba daraxtidagi
vendor/ripgrep/<arch>-<os>/rg. PATHorqali mavjud bo‘lgan host tiziminingrgbuyrug‘i.
Shuning uchun mos vendor/ripgrep/ platform katalogiga aniq versiyadagi ripgrep build’ini joylashtirishingiz yoki host tizimiga ripgrep o‘rnatib, rg PATH tarkibida ekanini tekshirishingiz mumkin.
Host ripgrep binar faylidan majburan foydalanish
CometixCode vendored ripgrep resurslarini chetlab o‘tib, host bajariladigan faylidan foydalanishi uchun USE_BUILTIN_RIPGREP qiymatini 0 ga o‘rnating:
USE_BUILTIN_RIPGREP=0 cargo run --releaseIshga tushirgandan so‘ng tanlangan binar faylni tekshirish uchun /doctor buyrug‘ini bajaring.
Testlar to‘plamini to‘g‘ri ishga tushirish
CometixCode jarayon miqyosidagi holatga, jumladan muhit o‘zgaruvchilari va OnceLock keshlariga ega. Barcha testlarni bitta jarayonda thread’lar sifatida ishga tushirish holatning testlar o‘rtasida sizib chiqishiga olib kelishi mumkin, shuning uchun oddiy cargo test ushbu crate uchun yaroqli sifat nazorati hisoblanmaydi.
Loyiha buning o‘rniga just orqali ishga tushiriladigan cargo-nextest dan foydalanadi. Bu har bir testga alohida jarayon beradi va test aks holda meros qilib olishi mumkin bo‘lgan host holatini qat’iy belgilaydi.
To‘liq to‘plamni ishga tushirish
just testBu loyiha talab qiladigan to‘liq test nazoratidir.
Andozaga mos testlarni ishga tushirish
just t <pattern>Ijro etmoqchi bo‘lgan testlarni filtrlash uchun ishlatiladigan quyi satr bilan <pattern> ni almashtiring.
Kodni tezkor tekshirish
just checkBu bog‘lashni amalga oshirmasdan turlar va borrow tekshiruvini bajaradi, shu sababli Rust kodini tahrirlashda tezkor fikr-mulohaza olish uchun foydalidir.
Ilg‘or ishlab chiqish bo‘yicha maslahatlar
- Odatdagi foydalanish uchun release rejimini afzal ko‘ring: Loyiha hujjatlarida ko‘rsatilgan optimallashtirilgan buildni ishga tushirish uchun
cargo run --releasedan foydalaning. - Avval ICU aniqlanishini tekshiring: macOS’da ICU bilan bog‘liq build xatosi
PKG_CONFIG_PATHHomebrew’ning ICU4C metadata katalogini o‘z ichiga olmaganini ko‘rsatishi mumkin. - Fayl qidiruvini
/doctoryordamida tashxislang: Vendor fayllari yoki tizim konfiguratsiyasini o‘zgartirishdan oldin aynan qaysi ripgrep bajariladigan fayli tanlanganini tasdiqlang. - Qayta tiklanadigan natija muhim bo‘lsa, ripgrep versiyasini mahkamlang: Global o‘rnatilgan versiyaga tayanish o‘rniga kerakli binaryni platformaga xos
vendor/ripgrep/yo‘liga joylashtiring. - Loyiha gate’i o‘rniga
cargo testdan foydalanmang: Testlar kod bazasi kutgan jarayon izolyatsiyasini olishi uchunjust testdan foydalaning. - Testlar mantiqi uchun justfile’ni ko‘rib chiqing: Uning sarlavhasida tanlangan test strategiyasi asosidagi o‘lchovlar hujjatlashtirilgan.
Litsenziya masalalari
CometixCode AGPL-3.0-only litsenziyasi ostida tarqatiladi. Litsenziya tarmoqdan foydalanish bandini o‘z ichiga oladi: agar o‘zgartirilgan versiyani tarmoq xizmati sifatida ishlatsangiz, uning foydalanuvchilari tegishli o‘zgartirilgan manba kodini olish huquqiga ega.
Xulosa
CometixCode CometixTUI yordamida Claude Code terminal arxitekturasining Rust asosidagi qayta yaratilgan ko‘rinishini taqdim etadi. Rust, ICU4C va mos ripgrep bajariladigan fayli mavjud bo‘lgach, uni Cargo yordamida build qilib ishga tushirishingiz, qidiruv konfiguratsiyasini /doctor orqali tekshirishingiz va o‘zgarishlarni loyihaning jarayon izolyatsiyasiga ega just test ish jarayoni bilan tasdiqlashingiz mumkin.
