وثائق arabcode

كل ما تحتاجه لتثبيت أول وكيل ذكاء اصطناعي مفتوح المصدر يعمل في الطرفية بالعربية الكاملة، وتشغيله، وربط الموديلات، وضبطه وتوسيعه، مرجع واحد شامل.

ما هو arabcode؟

arabcode هو أول وكيل ذكاء اصطناعي مفتوح المصدر يعمل داخل الطرفية (CLI/TUI) ويعرض العربية كما ينبغي، اتجاه RTL صحيح، وتشكيل يربط الحروف بأشكالها، وتحديد ونسخ منطقي، وإدخال عربي داخل حقل الأوامر. تحت الغطاء هو وكيل برمجة كامل القدرات: يفهم مشروعك، ويقرأ ويكتب الملفات، وينفّذ الأوامر معك، ويتكامل مع خوادم اللغة والأدوات الخارجية.

  • العربية الكاملةاتجاه RTL صحيح وتشكيل يربط الحروف، وتحديد ونسخ منطقي، وإدخال عربي داخل الطرفية، لا توفّره أدوات الطرفية الأخرى.
  • وكيل برمجة حقيقييقرأ ويعدّل الملفات، وينفّذ أوامر الصدفة، ويبحث في المشروع بذكاء برمجي مدعوم بـ LSP.
  • استقلالية عن المزوّدأكثر من 75 مزوّدًا للموديلات، وموديلات محلية تعمل على جهازك، بدّل بينها بحرية بحسب المهمة.
  • طرفية أولًاأداة CLI/TUI بالكامل تعمل على ماك ولينكس وويندوز، مع أوضاع غير تفاعلية للأتمتة والخوادم.

المتطلبات

طرفية تدعم Unicode

ضرورية لعرض النص العربي مع التشكيل واتجاه RTL بشكل صحيح، مثل WezTerm أو Alacritty أو Ghostty أو Kitty. بعض الطرفيات القديمة لا تدعم دمج الحروف العربية.

موديل ذكاء اصطناعي

ابدأ بموديل مجاني دون بطاقة، أو اربط مفتاح مزوّدك (Claude / GPT / Gemini)، أو شغّل موديلًا محليًا على جهازك.

Node.js و npm للطريقة npm

مطلوبة فقط لطريقة التثبيت عبر npm. يُنصح بإصدار حديث ومدعوم. أما ripgrep فاختياري لكنه يسرّع البحث في المشاريع.

التثبيت

يعمل arabcode على ماك ولينكس وويندوز (ويندوز و PowerShell مدعومان دعمًا كاملًا). اختر منصّتك أدناه.

npm i -g arabcode

تعمل على كل الأنظمة، وتتطلّب Node.js و npm مثبّتَين مسبقًا.

curl -fsSL https://raw.githubusercontent.com/abdallhx2/arabcode/main/install | bash

يُثبَّت التنفيذي في $HOME/.arabcode/bin. تأكّد أن هذا المسار ضمن PATH.

irm https://raw.githubusercontent.com/abdallhx2/arabcode/main/install.ps1 | iex

يُثبَّت التنفيذي في %LOCALAPPDATA%\arabcode\bin. للحصول على أفضل تجربة على ويندوز يُنصح باستخدام WSL.

bash · بناء من المصدر (يتطلّب Bun)
git clone https://github.com/abdallhx2/arabcode \
  && cd arabcode \
  && bun install \
  && bun run --cwd packages/arabcode dev

يتطلّب Bun مثبّتًا.

التحقق من التثبيت

bash
arabcode --version   # اعرض رقم الإصدار
arabcode             # شغّل الواجهة النصية

إزالة التثبيت

طريقة التثبيتأمر الإزالة
npmnpm uninstall -g arabcode
ماك / لينكس (curl)rm -rf ~/.arabcode
ويندوز (PowerShell)Remove-Item -Recurse -Force "$env:LOCALAPPDATA\arabcode"

بعد الإزالة، احذف كذلك مدخل PATH المرتبط من ملف إعداد طرفيتك (~/.bashrc أو ~/.zshrc) أو من متغيّرات بيئة ويندوز.

البدء السريع، من صفر إلى أول محادثة

  1. افتح مجلد مشروعك وشغّل الأداة:

    cd ~/my-app && arabcode
  2. اربط موديلًا (ابدأ بموديل مجاني دون بطاقة):

    /connect
  3. وثّق مشروعك للوكيل مرة واحدة (يُنشئ AGENTS.md):

    /init
  4. اكتب طلبك بالعربية مباشرة، مثلًا:

    اشرح كيف تُدار المصادقة في @src/auth.ts
    ثم أضف اختبارًا لحالة انتهاء صلاحية التوكن
نصيحة اضغط Tab للتبديل إلى وضع plan إن أردت مراجعة خطة الوكيل قبل أن يلمس أي ملف.

أوضاع build / plan

وكيلان مدمجان تتنقّل بينهما بمفتاح Tab:

build افتراضي

وصول كامل: يقرأ، يعدّل الملفات، وينفّذ الأوامر. الوضع الذي تنجز فيه العمل فعليًا.

plan قراءة فقط

يحلّل الكود ويقترح خطة دون لمس الملفات، ويطلب الإذن قبل تشغيل أوامر bash. مثالي لاستكشاف كود غير مألوف قبل التعديل.

الفائدة: راجِع الخطة قبل التنفيذ لتقليل التعديلات الخاطئة على كود حسّاس أو إنتاجي. تُستدعى بجانبها وكلاء فرعية جاهزة مثل general للبحث متعدّد الخطوات وexplore للتنقّل في الكود.

الأوامر، CLI و TUI

تعمل مع arabcode بطريقتين متكاملتين: الواجهة النصية التفاعلية (TUI) بأوامرها المسبوقة بشرطة مائلة داخل المحادثة، وسطر الأوامر (CLI) بأوامره الفرعية للأتمتة والسكربتات. هذا مرجع موحّد لكلتيهما.

أوامر الواجهة النصية (TUI)

تُكتب داخل حقل المحادثة مسبوقةً بـ /. لكثير منها اختصار لوحة مفاتيح مقابل. مفتاح القائد (leader) الافتراضي ctrl+x.

الأمرالبديلالوظيفةالاختصار
/connectربط مزوّد أو اختيار بوّابة النماذج المجانية
/modelsعرض واختيار الموديل المتاحctrl+x m
/initتحليل المشروع وإنشاء AGENTS.md
/sessions/resume · /continueعرض الجلسات والتنقّل بينهاctrl+x l
/new/clearبدء جلسة جديدةctrl+x n
/compact/summarizeضغط الجلسة الحالية لتوفير السياقctrl+x c
/undo · /redoالتراجع عن آخر رسالة وتعديلات ملفاتها أو إعادتهاctrl+x u · ctrl+x r
/share · /unshareمشاركة الجلسة برابط عام أو إلغاء المشاركة
/exportتصدير المحادثة إلى Markdownctrl+x x
/editorفتح محرّر خارجي لتحرير الرسالةctrl+x e
/themesعرض واختيار الثيمctrl+x t
/detailsإظهار/إخفاء تفاصيل تنفيذ الأدوات
/thinkingإظهار/إخفاء كتل تفكير الموديل
/helpعرض كل الأوامر والاختصارات
/exit/quit · /qالخروج من arabcodectrl+x q
مراجع مباشرة داخل الرسالة اكتب @filename لبحث ضبابي عن ملف وإدراج محتواه تلقائيًا في السياق، وابدأ الرسالة بـ ! لتنفيذ أمر صدفة وإدراج خرجه كسياق. مفتاح القائد قابل للضبط عبر leader_timeout في tui.json.

أوامر سطر الأوامر (CLI)

الأمرالوظيفة
arabcodeفتح الواجهة النصية التفاعلية (السلوك الافتراضي)
arabcode run "..."تنفيذ غير تفاعلي بتمرير الطلب مباشرة، مناسب للسكربتات
arabcode serveتشغيل خادم HTTP بلا واجهة للوصول البرمجي
arabcode webخادم HTTP يفتح واجهة ويب في المتصفّح
arabcode attach [url]ربط الواجهة النصية بخادم backend يعمل عن بُعد
arabcode auth login | list | logoutإدارة مفاتيح المزوّدين (تُخزَّن في auth.json)
arabcode models [provider]عرض الموديلات المتاحة (--refresh لتحديث الذاكرة، --verbose للتفاصيل)
arabcode agent create | listإنشاء الوكلاء المخصّصة وعرضها
arabcode session list | deleteعرض الجلسات المحفوظة أو حذفها (--max-count/-n)
arabcode export | importتصدير جلسة إلى JSON (--sanitize) أو استيرادها من ملف/رابط
arabcode mcp add | list | auth | logout | debugإدارة خوادم MCP (مع دعم مصادقة OAuth)
arabcode statsعرض استهلاك التوكنز والتكلفة (--days · --tools · --models · --project)
arabcode github install | runتهيئة GitHub Actions وتشغيل الوكيل داخل CI
arabcode upgrade [target]الترقية إلى أحدث إصدار أو إصدار محدّد (--method/-m)
arabcode --version · --helpرقم الإصدار وقائمة المساعدة

الأعلام العامّة

العلمالمختصرالوظيفة
--model-mتحديد الموديل بصيغة provider/model
--agentاختيار وكيل معيّن
--continue-cاستئناف آخر جلسة
--session-sاستئناف جلسة بمعرّفها
--port · --hostnameمنفذ الخادم واسم المضيف
--pureالتشغيل دون تحميل أي إضافات (مفيد للتشخيص)
--print-logsطباعة السجلّات في الطرفية مباشرة
--log-levelمستوى التسجيل (مثل DEBUG)
--help · --version-h · -vالمساعدة ورقم الإصدار

متغيّرات البيئة المفيدة

المتغيّرالوظيفة
ARABCODE_CONFIG · ARABCODE_CONFIG_CONTENTمسار ملف إعداد مخصّص، أو تمرير محتوى الإعداد مباشرة
ARABCODE_CONFIG_DIRتغيير مجلد الإعداد
ARABCODE_SERVER_PASSWORDكلمة مرور مصادقة خادم serve / web
ARABCODE_DISABLE_AUTOUPDATEتعطيل التحديث التلقائي
ARABCODE_PERMISSIONتجاوز صلاحيات وقت التشغيل

الجلسات واللقطات

يحفظ arabcode لقطة (snapshot) لكل جلسة تسمح بالرجوع إلى أي رسالة سابقة، بما في ذلك استعادة تعديلات الملفات لحظة تلك النقطة، بدل التراجع خطوة بخطوة أو فقدان العمل.

  • لقطات وتراجع دقيقإذا سلك الوكيل مسارًا خاطئًا في تعديل معقّد، ارجع إلى نقطة محدّدة بأمر /undo أو استعِد الحالة كاملة.
  • جلسات متوازيةشغّل أكثر من مهمة في آنٍ واحد على المشروع نفسه، وانتقل بينها بلا تعارض.
  • عرض / حذف / تصديرsession list وsession delete وexport إلى JSON أو import من ملف أو رابط مشاركة.
  • شفافية التكلفةأمر stats يعرض استهلاك التوكنز والتكلفة، مفيد إذا كنت تدير عدة مشاريع أو عملاء.

المشاركة

أنشئ رابطًا عامًّا لمشاركة محادثة كاملة عبر أمر /share داخل الواجهة النصية، مفيد لطلب مراجعة أو توثيق حل أو تعليم زميل. عند المشاركة يولّد arabcode رابطًا فريدًا للجلسة، ويزامن محتوى المحادثة، وينسخ الرابط إلى الحافظة مباشرة.

الأوامر

الأمرالوظيفة
/shareتوليد رابط عام فريد للجلسة ونسخه إلى الحافظة
/unshareإلغاء الوصول العام وحذف بيانات المحادثة المُزامَنة

أوضاع المشاركة

يتحكّم مفتاح share في ملف الإعداد بسلوك المشاركة على ثلاثة أوضاع:

  • manual افتراضيلا تُشارَك الجلسات تلقائيًا، وتنشئ الرابط يدويًا بأمر /share عند الحاجة.
  • autoمشاركة تلقائية لكل جلسة جديدة، مع توليد رابط لكل واحدة.
  • disabledتعطيل المشاركة كليًا. يمكن فرضه على الفريق بأكمله عبر arabcode.json في المشروع لبيئات الامتثال المغلقة.
ملف الإعداد · ضبط سلوك المشاركة
{
  "$schema": "https://arabcode.dev/config.json",
  "share": "manual"
}
الخصوصية الرابط العام يتيح الوصول لأي شخص يملكه، ويشمل كامل سجلّ المحادثة والرسائل والبيانات الوصفية، ويبقى متاحًا حتى تلغي المشاركة بأمر /unshare. راجِع المحتوى قبل المشاركة، ولا تشارك معلومات حسّاسة أو خاصّة، وألغِ المشاركة بعد انتهاء التعاون. وللمشاريع السرّية، عطّل المشاركة كليًا عبر "share": "disabled".
المؤسّسات يمكن تعطيل المشاركة لأغراض الامتثال، أو قصرها على مستخدمين مصادَقين عبر SSO، أو استضافتها ذاتيًا على بنية داخلية.

الأوضاع غير التفاعلية

يغطّي arabcode كل سيناريوهات الأتمتة، من سكربت bash بسيط إلى خادم API إنتاجي:

الأمرالوظيفة
arabcode run "..."تنفيذ غير تفاعلي مباشر مناسب للسكربتات، يدعم إخراج JSON خام و--replay لإعادة تشغيل الجلسة
arabcode serveخادم HTTP بلا واجهة للوصول البرمجي الكامل
arabcode webنفس الخادم مع واجهة ويب تُفتح تلقائيًا
arabcode attach [url]ربط طرفية TUI بخادم backend يعمل عن بُعد
arabcode acpخادم Agent Client Protocol يتواصل عبر stdin/stdout بصيغة nd-JSON لتكاملات الأدوات المتقدّمة
تفادي الإقلاع البارد الاتصال بجلسة serve قائمة بدل تشغيل جديد كل مرة يتفادى "cold boot" لخوادم MCP ويحافظ على الحالة بين الاستدعاءات.

واجهة الويب

إضافةً إلى الواجهة النصية، يوفّر arabcode واجهة ويب كاملة تعمل من متصفّحك. شغّلها بأمر واحد فيبدأ خادم HTTP ويُفتح المتصفّح تلقائيًا على المحادثة:

arabcode web

web مقابل serve

arabcode web

نفس خادم serve لكنه يفتح واجهة ويب في المتصفّح تلقائيًا. مثالي للعمل من الشاشة الرسومية مع الاحتفاظ بكامل قدرات الوكيل.

arabcode serve

خادم HTTP بلا واجهة للوصول البرمجي الكامل عبر الـ API. تربط به لاحقًا واجهة نصية عن بُعد بأمر arabcode attach [url].

ضبط الخادم والمنفذ

تتحكّم الأعلام نفسها في كلا الأمرين، أو اضبطها دائمًا في قسم server بملف الإعداد:

bash · تشغيل واجهة الويب على منفذ ومضيف محدّدين
arabcode web --port 4096 --hostname 0.0.0.0
arabcode web --cors http://localhost:5173
العلمالوظيفة
--portمنفذ الخادم (افتراضيًا 4096)
--hostnameاسم المضيف، استخدم 0.0.0.0 للوصول من الشبكة المحلية
--corsأصل مسموح به لطلبات CORS
--mdns · --mdns-domainاكتشاف الخادم على الشبكة المحلية عبر mDNS
تأمين الوصول عن بُعد عند تعريض الخادم على الشبكة (0.0.0.0)، اضبط كلمة مرور المصادقة عبر متغيّر البيئة ARABCODE_SERVER_PASSWORD قبل التشغيل، ولا تُبقِ الخادم مفتوحًا على شبكة غير موثوقة بلا حماية.
ملاحظة على ويندوز قد تتطلّب واجهة الويب/التطبيق المكتبي تثبيت WebView2 Runtime إن لم يكن موجودًا مسبقًا.

النماذج والمزوّدون

يدعم arabcode أكثر من 75 مزوّدًا عبر AI SDK وModels.dev، OpenAI و Anthropic Claude و Google Gemini و AWS Bedrock و Groq و Azure و OpenRouter و GitHub Copilot وغيرها، إضافة إلى الموديلات المحلية. لست مقيّدًا بمزوّد واحد.

ابدأ مجانًا، دون بطاقة

أسهل بداية هي النماذج المجانية المتاحة عبر بوّابة الموديلات: شغّل /connect واختر بوّابة النماذج المجانية، ثم /models لاختيار موديل. لا تحتاج بطاقة أو رصيدًا.

الموديلالمعرّف (Model ID)الإدخالالإخراج
DeepSeek V4 Flash Freedeepseek-v4-flash-freeمجانيمجاني
MiMo-V2.5 Freemimo-v2.5-freeمجانيمجاني
North Mini Code Freenorth-mini-code-freeمجانيمجاني
Nemotron 3 Ultra Freenemotron-3-ultra-freeمجانيمجاني
Big Picklebig-pickleمجانيمجاني
خصوصية هذه نماذج مجانية لفترة محدودة، وقد تُستخدَم البيانات المُجمَّعة خلالها لتحسين الموديل. لا ترسل بيانات شخصية أو سرّية إلى النماذج المجانية؛ وللمهام الحسّاسة استخدم موديلًا مدفوعًا بسياسة عدم الاحتفاظ (zero-retention).

ربط مزوّد بمفتاحك الخاص

أضِف مفتاح الـ API عبر /connect داخل الواجهة، أو من سطر الأوامر:

bash · إدارة المصادقة
arabcode auth login     # اختر مزوّدًا وأدخل مفتاح الـ API
arabcode auth list      # اعرض المزوّدين المسجّلين
arabcode auth logout    # احذف بيانات اعتماد مزوّد

تُخزَّن المفاتيح محليًا في ملف auth.json ضمن مجلد بيانات arabcode.

OpenAI

أنشئ مفتاحًا من لوحة OpenAI ثم شغّل /connect واختر OpenAI. أو استخدم اشتراك ChatGPT Plus/Pro كمزوّد مصادقة مباشر عبر المتصفّح دون مفتاح.

Anthropic (Claude)

/connect واختر Anthropic، ثم صادِق عبر المتصفّح لحساب Claude Pro/Max أو أدخِل مفتاح API. بعدها تظهر كل موديلات Claude في /models.

Google (Gemini)

احصل على مفتاح من Google AI Studio ثم /connect واختر Google. يدعم arabcode كذلك Vertex AI للاستخدام المؤسسي عبر متغيّرات البيئة المناسبة.

GitHub Copilot

استخدم اشتراك Copilot (Pro/Business/Enterprise) كمزوّد مصادقة مباشر، بلا مفتاح API منفصل.

ضبط المزوّد في ملف الإعداد

خصّص أي مزوّد عبر قسم provider. مثال: تغيير عنوان القاعدة (baseURL) لتوجيه الطلبات عبر وسيط أو نقطة نهاية مخصّصة.

ملف الإعداد · عنوان قاعدة مخصّص
{
  "$schema": "https://arabcode.dev/config.json",
  "provider": {
    "anthropic": {
      "options": { "baseURL": "https://api.anthropic.com/v1" }
    }
  }
}

لإخفاء موديلات من منتقي /models استخدم blacklist، أو whitelist لإبقاء المدرَجة فقط.

الموديلات المحلية

شغّل موديلاتك على جهازك: يدعم arabcode أي خادم متوافق مع OpenAI، مثل Ollama و LM Studio و llama.cpp، عبر ضبط baseURL على نقطة النهاية المحلية، أو عبر متغيّر البيئة LOCAL_ENDPOINT.

ملف الإعداد · موديل محلي عبر Ollama
{
  "$schema": "https://arabcode.dev/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": { "baseURL": "http://localhost:11434/v1" },
      "models": {
        "qwen3-coder": { "name": "Qwen3 Coder (local)" }
      }
    }
  }
}
الخادم المحلينقطة النهاية الافتراضيةحزمة AI SDK
Ollamahttp://localhost:11434/v1@ai-sdk/openai-compatible
LM Studiohttp://127.0.0.1:1234/v1@ai-sdk/openai-compatible
llama.cpp (llama-server)http://127.0.0.1:8080/v1@ai-sdk/openai-compatible
نصيحة إن لم تعمل استدعاءات الأدوات (tool calls) جيّدًا مع موديل محلي، اختر موديلًا بدعم قوي لاستدعاء الأدوات (مثل Qwen-Coder أو DeepSeek-Coder)، وزِد قيمة سياق النموذج (num_ctx) في Ollama إلى نحو 16k،32k.

ملف الإعداد

يُضبط arabcode عبر ملف إعداد بصيغة JSON أو JSONC (يقبل التعليقات)، ويُتحقّق منه مقابل مخطّط $schema. ضعه في جذر مشروعك باسم arabcode.json (آمن لحفظه في نظام الإصدار للفريق)، أو في مجلد الإعداد العام لتطبيقه على كل جلساتك. ويمكن توجيهه إلى مسار مخصّص عبر متغيّر البيئة ARABCODE_CONFIG، أو تمرير محتواه مباشرة عبر ARABCODE_CONFIG_CONTENT.

مواقع ملف الإعداد

النطاقماك / لينكسويندوز
عام (كل المشاريع)~/.config/arabcode/arabcode.json%USERPROFILE%\.config\arabcode\arabcode.json
المشروعarabcode.json في جذر المشروعarabcode.json في جذر المشروع
مسار مخصّصARABCODE_CONFIG=/path/to/config.json

يقبل الامتداد .json و.jsonc على حدٍّ سواء. وتُوضع الوكلاء والأوامر والإضافات الخاصّة بالمشروع في مجلد .arabcode/.

ترتيب الدمج والأسبقية

لا تُلغي ملفات الإعداد بعضها، بل تُدمَج معًا، والمصدر الأدنى في القائمة يتقدّم على ما قبله عند تعارض مفتاح بعينه فقط:

  1. الإعداد البعيد (.well-known/arabcode) — إعدادات المؤسّسة الافتراضية.

  2. الإعداد العام (~/.config/arabcode/arabcode.json) — تفضيلاتك الشخصية.

  3. إعداد مخصّص عبر ARABCODE_CONFIG.

  4. إعداد المشروع (arabcode.json في الجذر).

  5. مجلدات .arabcode/ — الوكلاء والأوامر والإضافات.

  6. إعداد مضمّن عبر ARABCODE_CONFIG_CONTENT — تجاوزات وقت التشغيل.

  7. إعداد مُدار (يفرضه مسؤول النظام) — أعلى أسبقية وغير قابل للتجاوز.

arabcode.json · ملف إعداد نموذجي
{
  "$schema": "https://arabcode.dev/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5",
  "default_agent": "build",
  "instructions": ["./CONTRIBUTING.md", "docs/guidelines.md"],
  "permission": { "bash": "ask", "edit": "ask" },
  "share": "manual",
  "autoupdate": true
}

أهم المفاتيح

المفتاحالغرض
model · small_modelالموديل الافتراضي، وموديل خفيف للمهام الثانوية (توليد العناوين مثلًا)
providerإعدادات المزوّدين، المهلات، التخزين المؤقّت، المفاتيح، عناوين القاعدة
disabled_providers · enabled_providersقائمة استبعاد أو قائمة سماح بمعرّفات المزوّدين
agent · default_agentتعريف الوكلاء المخصّصة والوكيل الرئيسي الذي يبدأ افتراضيًا
commandتعريف الأوامر المخصّصة (قوالب، أوصاف، الوكيل المنفّذ)
permission · toolsضبط الصلاحيات (allow/ask/deny) وتفعيل/تعطيل الأدوات
mcpإعداد خوادم Model Context Protocol (محلية أو بعيدة)
pluginتحميل الإضافات من .arabcode/plugins/ أو حزم npm
instructionsمسارات ملفات القواعد والإرشاد الإضافية (تدعم أنماط glob)
lsp · formatterضبط خوادم اللغة ومنسّقات الكود (مدمجة أو أوامر مخصّصة)
keybinds · themeتخصيص الاختصارات والثيم (تُضبط في tui.json)
share · snapshot · autoupdateسلوك المشاركة، واللقطات (افتراضيًا true)، والتحديث التلقائي (true/"notify")
compactionإدارة السياق: الضغط التلقائي، التقليم، ومخزون التوكنز المحجوز
watcher · attachmentأنماط تجاهل مراقبة الملفات، وحدود تحجيم الصور المرفقة
shellصدفة الطرفية التفاعلية (مثل pwsh أو مسار مطلق)
serverالمنفذ، اسم المضيف، mDNS، وإعدادات CORS للخادم
experimental.policiesقواعد سماح/منع مبنية على الموارد للمزوّدين (متقدّم)

إعداد الخادم

عند تشغيل arabcode serve أو arabcode web، يتحكّم قسم server في المنفذ واسم المضيف واكتشاف الشبكة (mDNS) وقائمة أصول CORS المسموح بها:

arabcode.json · إعداد الخادم
{
  "$schema": "https://arabcode.dev/config.json",
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true,
    "mdnsDomain": "myproject.local",
    "cors": ["http://localhost:5173"]
  }
}
استبدال المتغيّرات يدعم ملف الإعداد إدراج قيم البيئة عبر {env:VARIABLE_NAME}، ومحتوى الملفات عبر {file:path/to/file} (بمسار نسبي لمجلد الإعداد أو مطلق يبدأ بـ / أو ~)، لفصل البيانات الحسّاسة كمفاتيح الـ API عن الكود دون تكرار.

ملف AGENTS.md و /init

ملف AGENTS.md هو ملف التعليمات الخاص بمشروعك: يوثّق التقنيات وأسلوب الكود والبنية وأوامر البناء والاختبار والاصطلاحات، ويُقرأ تلقائيًا في كل جلسة (مكافئ لـ CLAUDE.md).

أمر /init يحلّل مشروعك ويولّد الملف أو يحسّنه: يفحص ملفات المستودع المهمّة، ويوثّق أوامر البناء والاختبار والبنية والاصطلاحات، ويحافظ على المحتوى القائم إن وُجد. يُنصح بحفظه في نظام الإصدار لاتساق الفريق.

  • قواعد المشروعملف AGENTS.md في جذر المشروع يسري على العمل داخل ذلك المجلد وفروعه.
  • قواعد عامةملف في مجلد الإعداد العام يسري على كل جلساتك، مثالي لتفضيلاتك الشخصية غير المشتركة مع الفريق.
  • توافق مع .claudeيقرأ arabcode ملف CLAUDE.md ومجلد .claude إن وُجدا، فتستخدم أدواتك السابقة بأقل تعديل.

ولإدراج ملفات إضافية استخدم مفتاح instructions في ملف الإعداد، وهو يقبل مسارات محلية وأنماط glob وروابط بعيدة.

الأوامر المخصّصة

حوّل المهام المتكرّرة (فحص PR، تجميع سياق issue، توليد مكوّن) إلى أمر واحد. كل أمر ملف Markdown في مجلد الأوامر، العام أو مجلد .arabcode/commands في المشروع، واسم الملف يصبح اسم الأمر (مثلًا test.md/test).

.arabcode/commands/component.md
---
description: توليد مكوّن
agent: build
---
أنشئ مكوّن React باسم $1 بلغة TypeScript.
افحص البنية الحالية أولًا: !`ls src/components`
واتبع نمط الملف @src/components/Button.tsx
الميزةالصيغةالوظيفة
الوسائط$ARGUMENTS · $1كل الوسائط كنص، أو وسيط موضعي واحد
حقن الصدفة!`command`يُنفَّذ في جذر المشروع ويُدرَج خرجه في الطلب
مراجع الملفات@filepathيُدرِج محتوى الملف المشار إليه في الطلب

مفاتيح الـ frontmatter الشائعة: description وagent وmodel وsubtask لإجبار استدعاء وكيل فرعي.

الاختصارات

اختصارات الواجهة النصية قابلة للتخصيص كلها. مفتاح القائد (leader) الافتراضي هو ctrl+x ويسبق كثيرًا من الأوامر. لتعطيل أي اختصار اضبط قيمته على "none".

الإجراءالاختصار
لوحة الأوامرctrl+p
تبديل الوكيل (build / plan)tab · shift+tab
قائمة الموديلات<leader> m
قائمة الوكلاء<leader> a
جلسة جديدة · قائمة الجلسات<leader> n · <leader> l
تراجع · إعادة<leader> u · <leader> r
نسخ الرسائل<leader> y
إرسال · سطر جديدreturn · shift+return
الخروجctrl+c · <leader> q

تُضبط الاختصارات والثيم في ملف tui.json.

الصلاحيات ووضع YOLO

يتحكّم قسم permission في الموافقة على العمليات. لكل قاعدة ثلاث نتائج ممكنة:

  • allowتُنفَّذ العملية دون طلب موافقة.
  • askيُطلب منك التأكيد قبل التنفيذ.
  • denyتُمنع العملية كليًا.

تشمل أنواع الصلاحيات edit وbash وwebfetch وread وtask وغيرها. وتدعم أنماط bash البدائل: * يطابق أي عدد من الأحرف و? حرفًا واحدًا، مع فوز آخر قاعدة مطابقة.

ملف الإعداد · صلاحيات بأنماط
{
  "permission": {
    "bash": {
      "*": "ask",
      "git *": "allow",
      "rm *": "deny"
    },
    "edit": {
      "*": "deny",
      "src/**": "allow"
    }
  }
}

يمكن تجاوز الصلاحيات لكل وكيل عبر agent.<name>.permission، وتُدمج قواعد الوكيل مع الإعداد العام وتُقدَّم عليه.

وضع YOLO وضع في الواجهة النصية يوافق تلقائيًا على كل طلبات الصلاحيات دون مقاطعتك في كل خطوة، سرعة أكبر في المهام الطويلة الموثوقة على حساب طبقة الأمان اليدوية. استخدمه بحذر في بيئات تثق فيها بالكود فقط.

الوكلاء المخصّصة

أنشئ فريقًا من الوكلاء المتخصّصين (مراجع أمان، كاتب توثيق، خبير اختبارات) لنتائج أدق لكل مجال بدل وكيل عام واحد. الوكلاء نوعان:

primary

وكيل رئيسي تتفاعل معه مباشرة وتتنقّل بينه وبين غيره بمفتاح Tab، مثل build وplan المدمجَين.

subagent

وكيل متخصّص يُستدعى تلقائيًا أو يدويًا عبر إشارة @، مثل general وexplore وscout المدمجة.

أنشئ وكيلًا تفاعليًا بأمر arabcode agent create، أو عرّفه بملف Markdown فيه YAML frontmatter للإعداد وجسم النص كـ system prompt:

.arabcode/agents/security.md
---
description: يكشف الثغرات الأمنية
mode: subagent
model: anthropic/claude-sonnet-4-5
temperature: 0.1
permission:
  edit: deny
  bash: deny
---
أنت خبير أمان. حدّد عيوب التحقق من المدخلات ومشاكل
المصادقة ومخاطر تسريب البيانات وثغرات الاعتماديات.

مفاتيح الإعداد: mode (primary/subagent/all) وmodel وtemperature وprompt وpermission وsteps (أقصى عدد تكرارات).

خوادم MCP و Code Mode

توسّع arabcode بأدوات خارجية عبر Model Context Protocol، محلية أو بعيدة، فتندمج تلقائيًا مع الموديل بجانب الأدوات المدمجة. يتيح لك ذلك تكاملًا مباشرًا مع قواعد البيانات والـ APIs وأنظمة الملفات.

ملف الإعداد · خادم محلي وخادم بعيد
{
  "$schema": "https://arabcode.dev/config.json",
  "mcp": {
    "local-tools": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-server"],
      "enabled": true,
      "environment": { "API_KEY": "{env:MY_API_KEY}" }
    },
    "remote-tools": {
      "type": "remote",
      "url": "https://example.com/mcp",
      "enabled": true,
      "headers": { "Authorization": "Bearer {env:TOKEN}" }
    }
  }
}

تُدار الخوادم كذلك من سطر الأوامر عبر arabcode mcp add | list | auth (مع دعم مصادقة OAuth). ويتيح Code Mode تشغيل سكربتات تنسيق (orchestration) مقيّدة فوق أدوات MCP بدل استدعائها واحدة تلو الأخرى، كفاءة أعلى في المنطق المعقّد.

تكامل LSP

يدعم arabcode بروتوكول خوادم اللغة (Language Server Protocol) لذكاء برمجي حقيقي، اقتراحات دقيقة، ومعرفة الأنواع، وتنقّل في الكود، وكشف الأخطاء، وليس مجرد تحليل نصي. تُحمَّل خوادم اللغة المناسبة للمشروع تلقائيًا، ويمكن ضبطها عبر مفتاح lsp في ملف الإعداد.

الفائدة: فهم أعمق لبنية الكود يقلّل الأخطاء الناتجة عن تخمين النوع أو المرجع، ويجعل تعديلات الوكيل أكثر دقّة.

نظام Skills

يكتشف arabcode الـ skills والوكلاء المبنية على ملفات تلقائيًا، ويخزّن مساراتها كمسارات ملفات حقيقية، فتعيد استخدام منطق متخصّص محفوظ مسبقًا بدل إعادة شرحه في كل جلسة.

وبفضل التوافق مع بنية .claude، يقرأ arabcode ما لديك من skills وملف CLAUDE.md إن وُجدا في المشروع، ويمكن التحكم في ذلك عبر متغيّرات البيئة ARABCODE_DISABLE_CLAUDE_CODE وARABCODE_DISABLE_CLAUDE_CODE_SKILLS.

تكامل GitHub

استدعِ arabcode مباشرة داخل مستودعك: اذكره في تعليق على issue أو PR فيقرأ سياق النقاش، ويكتب الكود، وينشئ فرعًا، ويفتح طلب دمج، كل ذلك داخل GitHub Actions.

التثبيت السريع

أسهل طريقة هي الأمر التفاعلي الذي يثبّت تطبيق GitHub، وينشئ ملف الـ workflow، ويضبط الأسرار (secrets):

arabcode github install

الاستخدام

بعد التثبيت، اكتب /arabcode (أو /ac) في تعليق على issue أو PR أو مراجعة كود، متبوعًا بطلبك:

مثال التعليقما يفعله الوكيل
/arabcode اشرح هذا الـ issueيولّد شرحًا من سياق النقاش
/arabcode أصلح هذاينشئ فرعًا، ينفّذ التعديل، ويفتح PR
/arabcode أضف معالجة أخطاء هناينفّذ التعديل المطلوب في مكانه

ملف الـ workflow

للتثبيت اليدوي، أضِف الملف التالي في .github/workflows/arabcode.yml، وخزّن مفتاح مزوّدك في Settings ← Secrets and variables ← Actions:

.github/workflows/arabcode.yml
name: arabcode
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]

jobs:
  arabcode:
    if: |
      contains(github.event.comment.body, '/arabcode') ||
      contains(github.event.comment.body, '/ac')
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: write
      pull-requests: write
      issues: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
          persist-credentials: false
      - uses: abdallhx2/arabcode/github@latest
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        with:
          model: anthropic/claude-sonnet-4-5

خيارات الإعداد (with)

المعاملمطلوبالوصف
modelنعمالموديل بصيغة provider/model
agentلاالوكيل، افتراضيًا default_agent أو build
shareلامشاركة الجلسة، افتراضيًا true للمستودعات العامة
promptلاتعليمة مخصّصة (مطلوبة للمحفّزات التلقائية)
tokenلارمز GitHub، افتراضيًا رمز تثبيت التطبيق

أحداث التحفيز المدعومة

الحدثمتى يُشغَّل
issue_commentتعليق على issue أو PR
pull_request_review_commentتعليق على سطر كود في مراجعة PR
issuesإنشاء/تعديل issue (يتطلّب prompt)
pull_requestأحداث PR تلقائية (يتطلّب prompt)
scheduleتنفيذ دوري بجدولة cron (يتطلّب prompt)
workflow_dispatchتشغيل يدوي من تبويب Actions (يتطلّب prompt)
مهمّة مجدولة للمهام التلقائية (مثل فحص التعليقات TODO أسبوعيًا) استخدم محفّز schedule مع cron ومرّر prompt يصف المهمة، مع منح صلاحيات contents وpull-requests وissues بقيمة write.

كما يمكن استخدام اشتراك GitHub Copilot (Pro/Business/Enterprise) كمزوّد مصادقة مباشر بدل مفتاح API منفصل، انظر قسم النماذج والمزوّدون.

Plugins و SDK

ابنِ أدوات وتكاملات مخصّصة فوق arabcode كمنصّة، لا كتطبيق جاهز فقط:

  • نظام Plugins قابل للتوسّعواجهات hook مسمّاة وواجهة plugin حديثة تعمل مع Effect و Promise. ثبّت إضافة بأمر arabcode plugin <module>.
  • SDK كاملبثّ أحداث حيّ (live event stream)، ووصول للجلسات النشطة، وسجل جلسات مقسّم صفحات، ونقاط نهاية لطلبات الصلاحيات.

استكشاف الأخطاء

العربية تظهر مقطّعة أو معكوسة

تأكّد أنك تستخدم طرفية تدعم Unicode والتشكيل بشكل جيّد، مثل WezTerm أو Alacritty أو Ghostty أو Kitty. بعض الطرفيات القديمة لا تدعم دمج الحروف العربية.

الأمر غير موجود بعد التثبيت

تأكّد أن مجلد تثبيت arabcode ضمن متغيّر PATH، على ماك/لينكس هو $HOME/.arabcode/bin، وعلى ويندوز %LOCALAPPDATA%\arabcode\bin. أعِد فتح الطرفية بعد التعديل.

استدعاء الأدوات لا يعمل مع موديل محلي

اختر موديلًا بدعم قوي لاستدعاء الأدوات (مثل Qwen-Coder أو DeepSeek-Coder)، وزِد قيمة سياق النموذج (num_ctx) في Ollama إلى نحو 16k،32k.

فشل المصادقة أو الموديل غير متاح

أعِد المصادقة عبر /connect وتحقّق من صلاحية المفتاح. أشِر إلى الموديل بالصيغة الصحيحة <providerId>/<modelId> (مثل openai/gpt-4.1)، واستعرض المتاح بأمر arabcode models.

السجلّات ووضع التتبّع

لتشخيص أعمق، شغّل arabcode بمستوى تسجيل مفصّل أو اطبع السجلّات في الطرفية مباشرة:

bash · تفعيل السجلّات المفصّلة
arabcode --log-level DEBUG   # تفاصيل تشخيصية دقيقة
arabcode --print-logs        # طباعة السجلّات في الطرفية مباشرة

تُحفَظ ملفات السجلّ بأسماء مؤرّخة (مثل 2025-01-09T123456.log)، ويُبقى على أحدث 10 ملفات منها.

مواقع الملفات المهمّة

المجلدماك / لينكسويندوز
السجلّات~/.local/share/arabcode/log/%USERPROFILE%\.local\share\arabcode\log
البيانات (اعتماد + جلسات)~/.local/share/arabcode/%USERPROFILE%\.local\share\arabcode
الذاكرة المؤقّتة~/.cache/arabcode%USERPROFILE%\.cache\arabcode
الإعداد~/.config/arabcode/arabcode.json%USERPROFILE%\.config\arabcode\arabcode.json

يحتوي مجلد البيانات على بيانات الاعتماد (auth.json) والسجلّات وبيانات الجلسات لكل مشروع.

خطوات إعادة الضبط

  • امسح الذاكرة المؤقّتةاحذف مجلد ~/.cache/arabcode بالكامل عند سلوك غير متوقّع.
  • عطّل الإضافاتشغّل arabcode --pure للتشغيل بلا إضافات، أو احذف مفتاح plugin من الإعداد لعزل المشكلة.
  • أعِد المصادقةاستخدم /connect داخل الواجهة لإعادة ربط المزوّد إذا فشلت المصادقة.
  • حافظة لينكسيتطلّب النسخ واللصق أدوات مثل xclip/xsel (X11) أو wl-clipboard (Wayland).
  • واجهة الويب على ويندوزتأكّد من تثبيت WebView2 Runtime.
لم تجد ما تبحث عنه؟ شغّل arabcode --version لمعرفة إصدارك، وarabcode upgrade للترقية، وراجِع المستودع للمرجع الكامل وللإبلاغ عن الأخطاء.