ما هو 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.
git clone https://github.com/abdallhx2/arabcode \
&& cd arabcode \
&& bun install \
&& bun run --cwd packages/arabcode dev
يتطلّب Bun مثبّتًا.
التحقق من التثبيت
arabcode --version # اعرض رقم الإصدار
arabcode # شغّل الواجهة النصية
إزالة التثبيت
| طريقة التثبيت | أمر الإزالة |
|---|---|
| npm | npm uninstall -g arabcode |
| ماك / لينكس (curl) | rm -rf ~/.arabcode |
| ويندوز (PowerShell) | Remove-Item -Recurse -Force "$env:LOCALAPPDATA\arabcode" |
بعد الإزالة، احذف كذلك مدخل PATH المرتبط من ملف إعداد طرفيتك (~/.bashrc أو ~/.zshrc) أو من متغيّرات بيئة ويندوز.
البدء السريع، من صفر إلى أول محادثة
-
افتح مجلد مشروعك وشغّل الأداة:
cd ~/my-app && arabcode -
اربط موديلًا (ابدأ بموديل مجاني دون بطاقة):
/connect -
وثّق مشروعك للوكيل مرة واحدة (يُنشئ
AGENTS.md):/init -
اكتب طلبك بالعربية مباشرة، مثلًا:
اشرح كيف تُدار المصادقة في @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 | تصدير المحادثة إلى Markdown | ctrl+x x | |
/editor | فتح محرّر خارجي لتحرير الرسالة | ctrl+x e | |
/themes | عرض واختيار الثيم | ctrl+x t | |
/details | إظهار/إخفاء تفاصيل تنفيذ الأدوات | ||
/thinking | إظهار/إخفاء كتل تفكير الموديل | ||
/help | عرض كل الأوامر والاختصارات | ||
/exit | /quit · /q | الخروج من arabcode | ctrl+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يعرض استهلاك التوكنز والتكلفة، مفيد إذا كنت تدير عدة مشاريع أو عملاء.
الأوضاع غير التفاعلية
يغطّي 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 webweb مقابل serve
arabcode web
نفس خادم serve لكنه يفتح واجهة ويب في المتصفّح تلقائيًا. مثالي للعمل من الشاشة الرسومية مع الاحتفاظ بكامل قدرات الوكيل.
arabcode serve
خادم HTTP بلا واجهة للوصول البرمجي الكامل عبر الـ API. تربط به لاحقًا واجهة نصية عن بُعد بأمر arabcode attach [url].
ضبط الخادم والمنفذ
تتحكّم الأعلام نفسها في كلا الأمرين، أو اضبطها دائمًا في قسم server بملف الإعداد:
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 Free | deepseek-v4-flash-free | مجاني | مجاني |
| MiMo-V2.5 Free | mimo-v2.5-free | مجاني | مجاني |
| North Mini Code Free | north-mini-code-free | مجاني | مجاني |
| Nemotron 3 Ultra Free | nemotron-3-ultra-free | مجاني | مجاني |
| Big Pickle | big-pickle | مجاني | مجاني |
ربط مزوّد بمفتاحك الخاص
أضِف مفتاح الـ API عبر /connect داخل الواجهة، أو من سطر الأوامر:
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.
{
"$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 |
|---|---|---|
| Ollama | http://localhost:11434/v1 | @ai-sdk/openai-compatible |
| LM Studio | http://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 |
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/.
ترتيب الدمج والأسبقية
لا تُلغي ملفات الإعداد بعضها، بل تُدمَج معًا، والمصدر الأدنى في القائمة يتقدّم على ما قبله عند تعارض مفتاح بعينه فقط:
الإعداد البعيد (
.well-known/arabcode) — إعدادات المؤسّسة الافتراضية.الإعداد العام (
~/.config/arabcode/arabcode.json) — تفضيلاتك الشخصية.إعداد مخصّص عبر
ARABCODE_CONFIG.إعداد المشروع (
arabcode.jsonفي الجذر).مجلدات
.arabcode/— الوكلاء والأوامر والإضافات.إعداد مضمّن عبر
ARABCODE_CONFIG_CONTENT— تجاوزات وقت التشغيل.إعداد مُدار (يفرضه مسؤول النظام) — أعلى أسبقية وغير قابل للتجاوز.
{
"$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 المسموح بها:
{
"$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).
---
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، وتُدمج قواعد الوكيل مع الإعداد العام وتُقدَّم عليه.
الوكلاء المخصّصة
أنشئ فريقًا من الوكلاء المتخصّصين (مراجع أمان، كاتب توثيق، خبير اختبارات) لنتائج أدق لكل مجال بدل وكيل عام واحد. الوكلاء نوعان:
primary
وكيل رئيسي تتفاعل معه مباشرة وتتنقّل بينه وبين غيره بمفتاح Tab، مثل build وplan المدمجَين.
subagent
وكيل متخصّص يُستدعى تلقائيًا أو يدويًا عبر إشارة @، مثل general وexplore وscout المدمجة.
أنشئ وكيلًا تفاعليًا بأمر arabcode agent create، أو عرّفه بملف Markdown فيه YAML frontmatter للإعداد وجسم النص كـ system prompt:
---
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:
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 بمستوى تسجيل مفصّل أو اطبع السجلّات في الطرفية مباشرة:
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 للترقية، وراجِع المستودع للمرجع الكامل وللإبلاغ عن الأخطاء.