DEV Community

Cover image for كيفية استخدام CLI-Anything: لجعل أي برنامج أصيلًا في Agent
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيفية استخدام CLI-Anything: لجعل أي برنامج أصيلًا في Agent

CLI-Anything هو مكون إضافي مفتوح المصدر لوكلاء الترميز بالذكاء الاصطناعي (Claude Code بشكل أساسي) يقوم بإنشاء واجهة سطر أوامر لأي برنامج يمتلك قاعدة تعليمات برمجية. يمكنك توجيهه نحو GIMP أو Blender أو LibreOffice أو أي تطبيق آخر، وسيقوم بتحليل الكود المصدري وإنتاج واجهة CLI منظمة يمكن لوكيل الذكاء الاصطناعي التحكم بها آليًا.

جرّب Apidog اليوم

المشكلة: وكلاء الذكاء الاصطناعي لا يستطيعون استخدام برامج الواجهة الرسومية

البرمجيات اليوم تنقسم إلى نوعين:

  • خدمات API-first (تخزين سحابي، دفع، بريد إلكتروني، تحليلات): يمكن للوكلاء استدعاؤها مباشرة عبر HTTP.
  • برامج سطح المكتب (GIMP، Blender، LibreOffice، Audacity): بُنيت للبشر عبر واجهات رسومية، وليست APIs.

عند محاولة ربط وكيل ذكاء اصطناعي بهذه البرامج الرسومية، لديك خياران تقليديان: كتابة أغلفة مخصصة (تستغرق وقتًا وتتوقف بسرعة)، أو RPA (هش ويتعطل عند تغييرات الواجهة).

CLI-Anything يحل المشكلة بتحليل الكود المصدري للبرنامج، ثم توليد واجهة CLI حقيقية تستدعي وظائف البرنامج مباشرة. بذلك، لا يحتاج الوكيل "رؤية" الشاشة، بل يصدر أوامر منظمة ويتولى البرنامج تنفيذها.

💡إذا كانت سير عمل وكيلك تحتاج لاستدعاء REST APIs بجانب البرامج المحلية، فإن Apidog يتولى جانب اختبار وتنظيم APIs. أداة مجانية لإرسال الطلبات وفحصها وتنظيمها، لتتحقق من تكامل API قبل إدخالها في سير عملك.

ما يفعله CLI-Anything

CLI-Anything هو مكون إضافي مفتوح المصدر من HKUDS (مختبر علوم البيانات بجامعة هونغ كونغ). المشروع تجاوز 6,100 نجمة على GitHub.

المكون الإضافي يعمل داخل Claude Code (تجريبيًا في Codex وOpenCode). مرّكب على سبع مراحل أوتوماتيكية:

  1. تحليل - مسح الكود وربط إجراءات الواجهة الرسومية بوظائف البرنامج.
  2. تصميم - تخطيط مجموعات الأوامر وتنسيق الإخراج.
  3. تنفيذ - بناء واجهة CLI بايثون عبر Click مع REPL ودعم --json وتراجع/إعادة.
  4. تخطيط الاختبارات - إنشاء TEST.md لخطط اختبار وحدات وشاملة.
  5. كتابة الاختبارات - توليد test_core.py وtest_full_e2e.py.
  6. توثيق - تشغيل pytest وإلحاق النتائج بـTEST.md.
  7. نشر - توليد setup.py وتثبيت السكربتات في PATH.

بعد المرحلة السابعة، تصبح CLI جاهزة في نظامك. يمكن للوكلاء اكتشافها بـwhich cli-anything-gimp، وفحصها بـcli-anything-gimp --help، وتشغيل الأوامر.

كل CLIs المنتجة تتبع هيكل ثابت: إخراج بشري افتراضي، إخراج JSON عند طلب --json، حفظ الحالة، تراجع/إعادة، REPL تفاعلي. بذلك، لا يحتاج الوكيل تعلم واجهة مختلفة لكل برنامج.

تثبيت CLI-Anything

CLI-Anything يعتمد على بايثون (وليس npm). تثبيته يتم في بيئة وكيلك، وتثبيت واجهات CLI المنتجة عبر pip install -e ..

المتطلبات:

  • بايثون 3.10+
  • البرنامج المستهدف (مثلاً GIMP) مثبت
  • وكيل ترميز ذكاء اصطناعي مدعوم (Claude Code أساسي، Codex/OpenCode تجريبي)

Claude Code (الطريقة الأساسية)

/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything

بعد التثبيت، تتوفر أوامر /cli-anything في جلسة Claude Code.

OpenCode

استنسخ المستودع ونسخ ملفات الأوامر وHARNESS.md إلى ~/.config/opencode/commands/. ستضاف 5 أوامر:

  • /cli-anything
  • /cli-anything-refine
  • /cli-anything-test
  • /cli-anything-validate
  • /cli-anything-list

Codex

bash CLI-Anything/codex-skill/scripts/install.sh

Qodercli

bash CLI-Anything/qoder-plugin/setup-qodercli.sh

ملاحظة حول ويندوز

تحتاج Git for Windows (bash وcygpath) أو WSL. إذا واجهت cygpath: command not found، ثبت Git for Windows وحاول مجدداً.

تثبيت واجهة CLI المولدة

بعد توليد CLI لبرنامجك:

cd <software>/agent-harness
pip install -e .

يتيح التثبيت القابل للتعديل (-e) تعديل الكود دون إعادة التثبيت.

إنشاء أول CLI خاص بك

بعد تثبيت المكون الإضافي، أنشئ واجهة CLI بأمر واحد. مثال GIMP:

في Claude Code:

/cli-anything ./gimp

أو من مستودع GitHub:

/cli-anything https://github.com/blender/blender

يبدأ خط الأنابيب المكون من 7 مراحل ويولّد جميع الملفات المطلوبة. بعد التنفيذ، ستحصل على هيكل دليل مثل:

gimp/
  agent-harness/
    GIMP.md
    setup.py
    cli_anything/
      gimp/
        README.md
        gimp_cli.py
        core/
        utils/
        tests/
          test_core.py
          test_full_e2e.py
          TEST.md

كل CLI تعيش في مساحة اسم cli_anything.* (مثلاً cli_anything.gimp) لمنع التضارب عند توليد عدة CLIs.

استخدام CLI المولدة

بعد pip install -e . داخل agent-harness:

cli-anything-gimp --help

تعرض كافة مجموعات الأوامر والأوامر الفرعية. جميع الأدوات تتبع نمط cli-anything-<software>.

إخراج بشري (افتراضي)

cli-anything-gimp project new --width 1920 --height 1080
cli-anything-gimp layer list
cli-anything-gimp layer add --name "Background" --type solid --color "#ffffff"
cli-anything-gimp filter apply --name "gaussian-blur" --radius 3
cli-anything-gimp export save --format png --output ./output.png

إخراج JSON (للوكلاء)

cli-anything-gimp --json project new --width 1920 --height 1080
# يعود: {"status": "ok", "project_id": "proj_abc123", "width": 1920, "height": 1080}

cli-anything-gimp --json layer add -n "Background"
# يعود: {"status": "ok", "layer_id": "layer_001", "name": "Background"}

الإخراج JSON منسق عبر جميع الأوامر: status، وحقول العملية، وتفاصيل الخطأ.

REPL تفاعلي

cli-anything-gimp

يدخلك إلى واجهة أوامر تفاعلية مع إكمال تلقائي وتاريخ مستمر. مفيد لتجربة الأوامر قبل كتابتها كسكربت.

تراجع/إعادة

cli-anything-gimp undo
cli-anything-gimp redo

تحسين واختبار CLI الخاصة بك

CLI المولدة قد تحتاج تحسينات. استخدم /cli-anything:refine لإضافة الأوامر المفقودة.

تحسين عام

/cli-anything:refine /home/user/gimp

يمسح CLI الحالية ويضيف الأوامر الناقصة.

تحسين مركز

/cli-anything:refine /home/user/blender "particle systems and physics simulation"

يركز على جزء محدد من الكود البرمجي.

تشغيل الاختبارات

/cli-anything:test /home/user/gimp

يحدث نتائج الاختبار في TEST.md.

التحقق من الصحة

/cli-anything:validate /home/user/gimp

يتحقق من توافق CLI مع HARNESS.md.

سرد CLIs المتاحة

/cli-anything:list
/cli-anything:list --json
/cli-anything:list --path /home

حالات الاستخدام الواقعية

CLI-Anything جُرّب على 11 تطبيقاً. أمثلة واقعية:

معالجة صور دفعات مع GIMP

cli-anything-gimp project open --file product.jpg
cli-anything-gimp layer add --name "Watermark" --type image --source watermark.png
cli-anything-gimp layer position --name "Watermark" --x 10 --y 10
cli-anything-gimp export save --format webp --output product-final.webp

إنشاء المستندات بـLibreOffice

cli-anything-libreoffice document open --template invoice-template.ods
cli-anything-libreoffice cell set --address "B5" --value "Acme Corp"
cli-anything-libreoffice cell set --address "C10" --value "1500.00"
cli-anything-libreoffice export pdf --output invoice-2026-001.pdf

العرض ثلاثي الأبعاد بـBlender

cli-anything-blender scene open --file product-scene.blend
cli-anything-blender render set --samples 256 --output /renders/product
cli-anything-blender render start --format png

أتمتة البث باستخدام OBS Studio

cli-anything-obs scene set --name "Main Camera"
cli-anything-obs recording start
cli-anything-obs scene set --name "Screen Share"
cli-anything-obs recording stop --output session.mp4

دمج مع CI/CD

يمكنك دمج أي CLI مولدة في إجراءات GitHub أو خطوط أنابيب CI لأتمتة عمليات التصميم، العرض، أو إنشاء المستندات.

بناء سير عمل الوكيل باستخدام Apidog

CLI-Anything يتعامل مع البرامج المحلية، أما استدعاء REST APIs الخارجية (رفع الصور، إرسال ملفات، إلخ) فيمكنك أتمتته عبر Apidog، عميل API مجاني للاختبار والتوثيق والأتمتة.

مثال عملي: وكيل يعالج صور منتجات بـGIMP ويرفعها إلى API تخزين سحابي. CLI-Anything يوفر أوامر GIMP، وApidog يختبر نقطة نهاية التخزين قبل دمجها في السكربت.

خطوات العمل في Apidog:

  1. ضبط بيئة وبيانات اعتماد API كمتغيرات
  2. اختبار endpoint الرفع بملف عينة
  3. إضافة تأكيدات للتحقق من الاستجابة
  4. تصدير الطلب كـcurl أو كود جاهز للدمج في السكربت

Apidog يدعم أيضًا مجموعات اختبار آلية، لتشغيل التأكيدات في كل تنفيذ واكتشاف التراجعات مبكرًا.

القيود التي يجب معرفتها

يتطلب دعم Windows برنامج Git Bash أو WSL

CLIs المنتجة تعتمد على بايثون وbash-style paths. على Windows، تحتاج Git for Windows أو WSL. PowerShell غير مدعوم.

يجب تثبيت البرنامج المستهدف

يجب أن يكون GIMP, Blender, إلخ مثبتًا فعليًا على نفس الجهاز. CLI-Anything لا يجمع البرامج نفسها، بل يلتف حولها فقط.

إخراج بايثون فقط

كل CLIs مبنية بـPython Click فقط. إذا أردت CLI بلغة أخرى (Node.js، Go)، عليك كتابتها بنفسك.

Claude Code هو المنصة المستقرة

Claude Code أكثر استقرارًا ودعمًا. التكامل مع Codex وOpenCode تجريبي فقط.

جودة CLI تعتمد على الكود البرمجي

إذا كان الكود المصدري للبرنامج غير منظم أو معقد جدًا أو يعتمد بشدة على حالة GUI، قد لا يكتشف كل الأوامر أو ينتج CLI ناقص. خطوة التحسين تساعد، لكن البرامج الاحتكارية المعقدة يصعب تغليفها بالكامل.

الأسئلة الشائعة

هل يعمل CLI-Anything مع أي برنامج؟

نظريًا نعم، عمليًا يعمل أفضل مع البرامج مفتوحة المصدر التي تربط الكود بإجراءات GUI بوضوح. تم إثباته على GIMP وBlender وInkscape وAudacity وKdenlive وShotcut وOBS Studio وDraw.io وLibreOffice وAnyGen وZoom.

هل CLI-Anything مجاني؟

نعم، مرخص MIT ومفتوح المصدر عبر github.com/HKUDS/CLI-Anything.

هل أحتاج معرفة بايثون؟

لا. لا تكتب أي كود بايثون. فقط ثبّت بايثون >=3.10 لتشغيل الـCLIs المنتجة.

هل أستطيع استدعاء CLI من سكربتاتي؟

نعم، CLI المولدة أداة سطر أوامر عادية. يمكنك استدعاءها من shell، Makefiles، سكربت بايثون، إلخ.

ما هو HARNESS.md؟

وثيقة مواصفات تحدد هيكل الأوامر وتنسيق الإخراج ومتطلبات الاختبار لـCLI-Anything. خطوة التحقق تتأكد من توافق الـCLI معها.

هل يمكن إنتاج CLIs لأدوات الشركة الداخلية؟

نعم. وجه المكوّن الإضافي لأي كود على نظامك (داخلي أو خارجي). التحليل يتم محليًا ولا يرسل الكود لأي جهة.

كيف يقارن هذا بـMCP؟

MCP يربط الوكلاء بخدمات سحابية عبر بروتوكول موحد. CLI-Anything يبني أغلفة CLI محلية لتطبيقات GUI التي تفتقد API. يمكنك استخدام كليهما حسب الحاجة.

موارد إضافية

Top comments (0)