في عالم البرمجة المتسارع، يبحث المطورون عن أدوات تُعزز إنتاجيتهم وتُسهل عليهم التعامل مع الأكواد. من بين هذه الأدوات الواعدة، تبرز أداة OpenCode كخيار مثالي لمستخدمي نظام لينكس، خاصةً أولئك الذين يفضلون العمل عبر سطر الأوامر.
ما هي OpenCode؟
OpenCode هي أداة مفتوحة المصدر تعتمد على لغة Go، تُقدم واجهة تفاعلية (TUI) داخل الطرفية، وتعمل كمساعد ذكي للمطورين. تهدف الأداة إلى تسهيل عمليات البرمجة، التصحيح، وإدارة المشاريع من خلال دمج تقنيات الذكاء الاصطناعي مباشرةً في بيئة العمل الطرفية.
الميزات الرئيسية لـ OpenCode
1. دعم متعدد لمزودي الذكاء الاصطناعي
تدعم OpenCode العديد من مزودي خدمات الذكاء الاصطناعي، بما في ذلك:
- OpenAI
- Anthropic Claude
- Google Gemini
- AWS Bedrock
- Groq
- Azure OpenAI
- OpenRouter(opencode.md, github.com)
هذا التنوع يُتيح للمطورين اختيار النموذج الأنسب لاحتياجاتهم.(opencode.us)
2. واجهة تفاعلية متقدمة
تم بناء الواجهة باستخدام مكتبة Bubble Tea، مما يوفر تجربة سلسة وتفاعلية داخل الطرفية. تُتيح الواجهة للمستخدمين التفاعل مع النماذج الذكية بسهولة وفعالية.
3. إدارة الجلسات والمشاريع
تُوفر OpenCode إمكانية حفظ وإدارة جلسات متعددة، مما يُسهل على المطورين متابعة مشاريعهم وتنظيم أعمالهم بشكل أفضل.(github.com)
4. تكامل مع الأدوات والأنظمة
تُتيح الأداة تنفيذ الأوامر، البحث داخل الملفات، وتعديل الأكواد مباشرةً. كما تدعم التكامل مع محررات خارجية مثل Vim، وتُوفر دعمًا لبروتوكول خادم اللغة (LSP) لتعزيز تجربة البرمجة.
5. تتبع التغييرات والتخزين الدائم
تُسجل OpenCode التغييرات التي تطرأ على الملفات أثناء الجلسات، وتُخزن المحادثات والبيانات في قاعدة بيانات SQLite، مما يُسهل الرجوع إليها لاحقًا.
لماذا يُفضلها مستخدمو لينكس ؟
لمستخدمي لينكس، خاصةً أولئك الذين يعتمدون على الطرفية في أعمالهم اليومية، تُعد OpenCode أداة مثالية للأسباب التالية:
- التكامل السلس مع الطرفية: تُوفر تجربة مستخدم متقدمة دون الحاجة إلى واجهات رسومية.
- دعم المصادر المفتوحة: تتماشى مع فلسفة لينكس في دعم البرمجيات الحرة والمفتوحة المصدر.
- توفير الوقت والجهد: من خلال تقديم اقتراحات ذكية وتصحيح الأخطاء بشكل فوري.
- إمكانية التخصيص: تُتيح للمستخدمين تخصيص الأوامر والأدوات حسب احتياجاتهم.
كيفية تثبيت واستخدام OpenCode على لينكس
-
التثبيت:
يمكن تثبيت OpenCode عبر الطرفية باستخدام الأمر التالي:
git clone https://github.com/opencode-ai/opencode.git cd opencode go build -o opencode sudo mv opencode /usr/local/bin/
تثبيت متطلبات اخرى rg, fzf
-
التشغيل:
بعد التثبيت، يمكن تشغيل الأداة باستخدام الأمر:
opencode -
الإعداد:
عند التشغيل الأول، ستُطلب منك إدخال مفاتيح API الخاصة بمزودي الذكاء الاصطناعي الذين ترغب في استخدامهم.
لتخصيص تجربة استخدام OpenCode بشكل أفضل على نظام لينكس، يمكنك اتباع الإرشادات التالية:
1. تخصيص مزود الذكاء الاصطناعي
يدعم OpenCode عدة مزودين لخدمات الذكاء الاصطناعي مثل OpenAI، Anthropic Claude، Google Gemini، وغيرها. لتحديد المزود المناسب:
- إعداد مفتاح API: قم بتصدير مفتاح API الخاص بالمزود الذي تختاره باستخدام الأمر:
export OPENAI_API_KEY="your-api-key"
- تحديد عنوان المزود: إذا كنت تستخدم مزودًا غير مدعوم افتراضيًا، قم بتحديد عنوانه الأساسي:
export OPENAI_BASE_URL="https://your-provider-api-base-url"
2. تخصيص الأوامر والاختصارات
يمكنك إنشاء أوامر مخصصة باستخدام المعاملات المسماة لتسهيل التفاعل مع الأداة. على سبيل المثال:
opencode --command "translate" --args "language=ar,text='Hello World'"
هذا يسمح لك بإنشاء أوامر مخصصة تناسب احتياجاتك اليومية.
3. تخصيص المظهر والألوان
يدعم OpenCode تخصيص الألوان لتتناسب مع إعدادات الطرفية الخاصة بك. يمكنك تعديل ملف التكوين لتحديد الألوان أو استخدام سمات جاهزة مثل
4. تكامل مع المحررات الخارجية
إذا كنت تستخدم محررًا مثل Vim أو Neovim، يمكنك تكامل OpenCode معه لتسهيل تحرير الأكواد. قم بتعديل إعدادات OpenCode لتحديد المحرر الافتراضي:
export EDITOR=vim
5. إدارة الجلسات والمشاريع
يتيح لك OpenCode حفظ وإدارة جلسات متعددة، مما يسهل متابعة المشاريع المختلفة. يمكنك استخدام الأوامر التالية:
- حفظ جلسة:
opencode --save-session "project-name"
- تحميل جلسة:
opencode --load-session "project-name"
6. تتبع التغييرات
يقوم OpenCode بتتبع التغييرات التي تطرأ على الملفات أثناء الجلسات، مما يساعدك على مراجعة التعديلات والرجوع إليها عند الحاجة.
7. استخدام الوضع غير التفاعلي
إذا كنت ترغب في تشغيل OpenCode في وضع غير تفاعلي، يمكنك استخدام الأمر التالي:
opencode --non-interactive --command "your-command"
كيف أضيف مزود ذكاء اصطناعي جديد؟
لإضافة مزود ذكاء اصطناعي جديد إلى OpenCode على نظام لينكس، يمكنك اتباع الخطوات التالية لتخصيص الإعدادات بما يتناسب مع مزود الخدمة الذي ترغب في استخدامه:
1. تحديد معلومات المزود الجديد
قبل البدء، تأكد من الحصول على المعلومات التالية من مزود الخدمة:
- مفتاح API: المفتاح الذي يتيح لك الوصول إلى خدمات المزود.
- عنوان الـ API الأساسي (Base URL): الرابط الأساسي الذي تُرسل إليه الطلبات.
- اسم النموذج (Model Name): اسم النموذج الذي ترغب في استخدامه.
2. إعداد متغيرات البيئة (Environment Variables)
قم بتصدير متغيرات البيئة اللازمة لتحديد مزود الخدمة الجديد. على سبيل المثال:
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://api.yourprovider.com/v1"
استبدل "your-api-key" بمفتاح API الخاص بك، و "https://api.yourprovider.com/v1" بعنوان الـ API الأساسي لمزودك.
3. تعديل ملف التكوين الخاص بـ OpenCode
افتح ملف التكوين الخاص بـ OpenCode (عادةً يكون في المسار ~/.opencode/config.json) وأضف أو عدل القسم الخاص بالمزود الجديد ضمن قسم "providers":
{
"providers": {
"openai": {
"apiKey": "your-api-key",
"baseUrl": "https://api.yourprovider.com/v1",
"disabled": false
}
}
}
تأكد من استبدال القيم بالمعلومات الخاصة بمزودك.
4. تحديد النموذج في قسم “agents”
ضمن نفس ملف التكوين، قم بتحديد النموذج الذي ترغب في استخدامه في قسم "agents":
{
"agents": {
"coder": {
"model": "your-model-name",
"maxTokens": 5000
}
}
}
استبدل "your-model-name" باسم النموذج الذي يوفره مزودك.
5. إعادة تشغيل OpenCode
بعد حفظ التعديلات، أعد تشغيل OpenCode لتطبيق الإعدادات الجديدة.
ملاحظات إضافية
-
أولوية المزودين: في حال وجود عدة مزودين مفعّلين، يتبع OpenCode ترتيبًا افتراضيًا للأولوية: Anthropic، ثم OpenAI، ثم Gemini، ثم Groq، ثم OpenRouter، ثم Bedrock، وأخيرًا Azure OpenAI.
-
المزودات المتوافقة مع OpenAI: إذا كان مزودك يستخدم واجهة API متوافقة مع OpenAI، يمكنك استخدام نفس الإعدادات مع تعديل
baseUrlفقط.
مصادر إضافية
نسأل الله أن يُوفقنا جميعًا في مساعينا التقنية، وأن يُسخر هذه الأدوات لما فيه خير البشرية.
المقال مكتوب بالذكاء الاصطناعي مع بعض التنسيقات والاضافات الضرورية
اللهم انصر عبادك في أرض الرباط