Asosiy kontentga o‘tish
AI qo‘llanmalari

Rust tilida yozilgan terminal AI kodlash yordamchisi CometixCode’ni yaratish va ishga tushirish

Rust va ICU4C yordamida CometixCode’ni yaratish, uning terminal interfeysini ishga tushirish, ripgrep manzilini sozlash, faol qidiruv binar faylini aniqlash va loyiha uchun ajratilgan test jarayonini to‘g‘ri ishga tushirishni o‘rganing.

Rust terminal AI kodlash yordamchisi CometixCode’ni yaratish va ishga tushirish

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-config orqali rust_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-config

CometixCode’ni yig‘ish

Repository ildizida terminal oching va optimallashtirilgan release build yarating:

cargo build --release

Natijaviy 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 --release

Bu 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:

/doctor

Bu, 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:

  1. Release arxivlarida ishlatiladigan, bajariladigan fayl yonidagi vendor/ripgrep/<arch>-<os>/rg.
  2. Ishlab chiqish jarayonida ishlatiladigan, manba daraxtidagi vendor/ripgrep/<arch>-<os>/rg.
  3. PATH orqali mavjud bo‘lgan host tizimining rg buyrug‘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 --release

Ishga 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 test

Bu 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 check

Bu 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 --release dan foydalaning.
  • Avval ICU aniqlanishini tekshiring: macOS’da ICU bilan bog‘liq build xatosi PKG_CONFIG_PATH Homebrew’ning ICU4C metadata katalogini o‘z ichiga olmaganini ko‘rsatishi mumkin.
  • Fayl qidiruvini /doctor yordamida 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 test dan foydalanmang: Testlar kod bazasi kutgan jarayon izolyatsiyasini olishi uchun just test dan 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.