
حوّل أي تطبيق ويب إلى API. إضافة كروم تلتقط حركة مرور المتصفح، وتولد تلقائيًا المخططات، وتسمح للذكاء الاصطناعي بإعادة تشغيل APIs مباشرة. لا حاجة إلى API رسمي.
حوّل أي تطبيق ويب إلى واجهة برمجة تطبيقات (API). لا حاجة لواجهة برمجة رسمية. لا أتمتة للمتصفح.
Neo هي إضافة لمتصفح Chrome تلتقط بشكل سلبي كل استدعاء API يقوم به متصفحك، وتتعلم الأنماط، وتسمح للذكاء الاصطناعي (أو لك) بإعادة تشغيلها مباشرة.
عوامل الذكاء الاصطناعي التي تعمل مع تطبيقات الويب اليوم لديها خياران، كلاهما سيء:
| الأسلوب | المشكلة |
|---|---|
| واجهات API الرسمية | معظم تطبيقات SaaS لا تملك واحدة، أو تظهر 10% فقط من الميزات |
| أتمتة المتصفح | لقطة شاشة → OCR → ضغط. بطيء، هش، يتعطل مع كل تغيير في واجهة المستخدم |
Neo هو الطريق الثالث. كل تطبيق ويب لديه بالفعل واجهة برمجة داخلية كاملة — الواجهة الأمامية تستدعيها في كل مرة تنقر فيها على شيء. Neo تلتقط هذه الاستدعاءات وتجعلها قابلة لإعادة التشغيل.
v2: الآن مع أتمتة واجهة المستخدم. يضيف Neo v2 طبقة واجهة مستخدم تعتمد على شجرة إمكانية الوصول — snapshot وclick وfill وtype وpress وhover وscroll وselect وscreenshot وget وwait. عندما توجد واجهة API، استخدمها مباشرة. عندما لا توجد، يمكن لـ Neo تشغيل واجهة المستخدم عبر نفس واجهة CLI. أداة واحدة، كلتا الطبقتين.
تصفح بشكل طبيعي ← يسجل Neo كل حركة API ← يتم إنشاء المخطط تلقائيًا ← يعيد الذكاء الاصطناعي تشغيل APIs مباشرة
← أو يقود واجهة المستخدم عبر شجرة a11y
إضافة Chrome تعترض كل fetch() و XMLHttpRequest — الروابط، الرؤوس، أجسام الطلب/الاستجابة، التوقيت، وحتى عنصر DOM الذي أطلق الاستدعاء.
شغّل neo-schema على نطاق لإنشاء خريطة API تلقائيًا: نقاط النهاية، رؤوس المصادقة المطلوبة، معاملات الاستعلام، بنية الاستجابة، رموز الخطأ.
نفّذ استدعاءات API داخل سياق علامة التبويب في المتصفح عبر بروتوكول أدوات المطورين في Chrome (Chrome DevTools Protocol). ملفات تعريف الارتباط، رموز CSRF، مصادقة الجلسة — كلها موروثة تلقائيًا. لا حاجة لإدارة الرموز.
| المتصفح | النوع | الأفضل لـ |
|---|---|---|
| Chrome / Chromium | متصفح كامل | التقاط API + أتمتة واجهة المستخدم (افتراضي) |
| Lightpanda | بلا رأس (Zig) | عوامل الذكاء الاصطناعي، السكرابينغ — أسرع بـ 11 مرة، ذاكرة أقل بـ 9 مرات |
git clone https://github.com/4ier/neo.git
cd neo && npm install && npm run build
npm link # يجعل `neo` متاحًا عالميًا
قم بتحميل الإضافة:
chrome://extensionsextension/dist/# تثبيت Lightpanda
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux
chmod +x lightpanda && sudo mv lightpanda /usr/local/bin/
# تكوين Neo لاستخدام Lightpanda
# في ~/.neo/config.json:
# { "chromePath": "/usr/local/bin/lightpanda", "browserType": "lightpanda", "cdpPort": 9222 }
neo start # يشغل خادم CDP الخاص بـ Lightpanda
neo connect # اتصل به
neo open https://example.com
neo snapshot # شجرة a11y كاملة
كل الأوامر تمر عبر CLI واحدة: neo <command>.
يتطلب متصفحًا مع تمكين CDP (بروتوكول أدوات المطورين في Chrome).
# --- الاتصال والجلسات ---
neo connect [port] # الاتصال بـ CDP، حفظ الجلسة
neo connect --electron <app-name> # اكتشاف منفذ CDP لتطبيق Electron تلقائيًا
neo launch <app> [--port N] # تشغيل تطبيق Electron مع تمكين CDP
neo discover # العثور على نقاط نهاية CDP يمكن الوصول إليها على localhost
neo sessions # عرض الجلسات المحفوظة
neo tab # عرض أهداف CDP في الجلسة النشطة
neo tab <index> | neo tab --url <pattern> # تبديل هدف علامة التبويب النشطة
neo inject [--persist] [--tab pattern] # حقن سكريبت التقاط Neo في الهدف
# --- الالتقاط وحركة المرور ---
neo status # نظرة عامة على البيانات الملتقطة
neo capture summary # نظرة عامة سريعة
neo capture list github.com --limit 10 # عرض المعرفات لإعادة التشغيل/التفاصيل
neo capture list --since 1h # مرشح زمني
neo capture domains
neo capture search "CreateTweet" --method POST
neo capture watch x.com # متابعة حية (مثل tail -f)
neo capture stats x.com # تحليل الأسلوب/الحالة/التوقيت
neo capture export x.com --since 2h > x.json
neo capture export x.com --format har > x.har # HAR 1.2 لـ Postman/devtools
neo capture import x-captures.json
neo capture prune --older-than 7d
neo capture gc x.com [--dry-run] # إزالة التكرارات الذكية
# --- إعادة تشغيل API والتنفيذ ---
neo replay <capture-id> --tab x.com # إعادة تشغيل استدعاء ملتقط
neo exec <url> --method POST --body '{...}' --tab example.com --auto-headers
neo api x.com HomeTimeline # استدعاء ذكي (بحث في المخطط + مصادقة تلقائية)
# --- المخطط والتحليل ---
neo schema generate x.com # إنشاء من الالتقاطات
neo schema generate --all # دفعة لجميع النطاقات
neo schema show x.com [--json]
neo schema openapi x.com # تصدير مواصفات OpenAPI 3.0
neo schema diff x.com # التغييرات عن الإصدار السابق
neo schema coverage # النطاقات مع/بدون مخططات
neo label x.com [--dry-run] # تسميات دلالية لنقاط النهاية
neo flows x.com [--window 5000] # أنماط تسلسل استدعاءات API
neo deps x.com [--min-confidence 1] # تبعيات البيانات من الاستجابة إلى الطلب
neo workflow discover|show|run <name> # اكتشاف سير العمل متعدد الخطوات وإعادة التشغيل
neo suggest x.com # تحليل قدرات الذكاء الاصطناعي
neo export-skill x.com # إنشاء SKILL.md جاهز للعامل
# --- أتمتة واجهة المستخدم (v2) ---
neo snapshot [-i] [-C] [--json] # شجرة a11y مع تعيين @ref
neo click @ref [--new-tab] # النقر على العنصر بواسطة @ref
neo fill @ref "text" # مسح + ملء الإدخال
neo type @ref "text" # إضافة نص إلى الإدخال
neo press <key> # مفتاح لوحة المفاتيح (يدعم Ctrl+a، Enter، إلخ.)
neo hover @ref # تحويم المؤشر فوق العنصر
neo scroll <dir> [px] [--selector css] # التمرير حسب الاتجاه
neo select @ref "value" # تعيين القيمة في القائمة المنسدلة
neo screenshot [path] [--full] [--annotate] # التقاط لقطة شاشة
neo get text @ref | neo get url | neo get title # استخراج معلومات
neo wait @ref | neo wait --load networkidle | neo wait <ms> # انتظار العنصر/التحميل/الوقت
# --- التفاعل مع الصفحة ---
neo read github.com # استخراج نص قابل للقراءة
neo eval "document.title" --tab github.com # تشغيل JS في الصفحة
neo open https://example.com # فتح عنوان URL
# --- المحاكاة والجسر ---
neo mock x.com [--port 8080 --latency 200] # خادم محاكاة من المخطط
neo bridge [--json] [--interactive] # تدفق التقاط WebSocket في الوقت الحقيقي
# --- التشخيص ---
neo doctor # فحص Chrome، الإضافة، المخططات
neo reload # إعادة تحميل الإضافة من CLI
neo tabs [filter] # عرض علامات التبويب المفتوحة في Chrome
Neo ليس مخصصًا لـ Chrome فقط. أي تطبيق يدعم CDP يعمل — بما في ذلك تطبيقات Electron:
# تشغيل VS Code مع CDP والاتصال
neo launch code --port 9230
neo snapshot # رؤية شجرة إمكانية الوصول في VS Code
neo click @14 # النقر على عنصر قائمة
# أو الاتصال بتطبيق Electron قيد التشغيل بالفعل
neo connect --electron slack
# حقن سكريبت التقاط Neo في أي هدف CDP
neo inject --persist # يبقى بعد التنقل بين الصفحات
neo inject --tab slack # استهداف علامة تبويب محددة
# يتم حفظ الجلسات تلقائيًا. التبديل بينها باستخدام --session:
neo --session vscode snapshot
neo --session chrome api x.com HomeTimeline
يضيف Neo v2 طبقة تفاعل كاملة لواجهة المستخدم مبنية على شجرة إمكانية الوصول — لا لقطات شاشة، لا إحداثيات، لا مطابقة وحدات البكسل:
# 1. خذ لقطة — كل عنصر تفاعلي يحصل على @ref
neo snapshot
# @1 button "تسجيل الدخول"
# @2 textbox "بحث"
# @3 link "التسعير"
# 2. تفاعل باستخدام @ref
neo click @1
neo fill @2 "عوامل الذكاء الاصطناعي"
neo press Enter
neo screenshot results.png --full
يمنح هذا عوامل الذكاء الاصطناعي طريقة سريعة ودلالية للتفاعل مع أي واجهة مستخدم. اجمعها مع التقاط API لنهج ثنائي القناة: استخدم APIs عند وجودها، وتراجع إلى واجهة المستخدم عندما لا تكون موجودة.
الجسر ينشئ قناة WebSocket دائمة بين الإضافة و CLI. الإضافة تتصل تلقائيًا بـ ws://127.0.0.1:9234 وتدفع كل التقاط في الوقت الفعلي. في الوضع التفاعلي، يمكنك الاستعلام عن الإضافة مباشرة: ping وstatus وcapture.count وcapture.list وcapture.domains وcapture.search وcapture.clear.
┌─────────────────────────────────────┐
│ Chrome / Electron App (CDP) │
│ │
│ inject/interceptor.ts │
│ ├─ يراقب fetch & XHR │
│ ├─ يعترض WebSocket/SSE │
│ ├─ يتتبع مشغلات DOM (click → │
│ │ ارتباط API) │
│ └─ يسجل كامل الطلب/الاستجابة │
│ │
│ content/index.ts │
│ └─ يربط الصفحة ↔ الإضافة │
│ │
│ background/index.ts │
│ ├─ يحفظ في IndexedDB (Dexie) │
│ ├─ حد لكل نطاق (500 إدخال) │
│ └─ عميل WebSocket Bridge │
│ │
└──────────────┬──────────────────────┘
│ بروتوكول أدوات المطورين Chrome
┌──────────────┴──────────────────────┐
│ CLI: neo (Node.js) │
│ │
│ الطبقة 1: التقاط API وإعادة التشغيل │
│ ├─ neo capture → إدارة حركة المرور │
│ ├─ neo schema → اكتشاف API │
│ ├─ neo exec → تنفيذ في المتصفح │
│ ├─ neo api → استدعاء مخطط ذكي │
│ ├─ neo replay → إعادة تشغيل الملتقط│
│ └─ neo flows/deps → تحليل الأنماط │
│ │
│ الطبقة 2: أتمتة واجهة المستخدم (v2) │
│ ├─ neo snapshot → شجرة a11y + @refs │
│ ├─ neo click/fill/type/press/hover │
│ ├─ neo scroll/select/screenshot │
│ └─ neo get/wait │
│ │
│ إدارة الجلسات │
│ ├─ neo connect/launch/discover │
│ ├─ neo tab → تبديل الهدف │
│ └─ neo inject → حقن السكريبت │
│ │
└──────────────┬──────────────────────┘
│
┌──────────────┴──────────────────────┐
│ وكيل الذكاء الاصطناعي (OpenClaw / أي LLM) │
│ ├─ API أولاً: مخطط → exec/api │
│ ├─ واجهة مستخدم احتياطية: لقطة → نقر │
│ └─ أتمتة ثنائية القناة │
└──────────────────────────────────────┘
# 1. تصفح X بشكل طبيعي — Neo يلتقط طفرات GraphQL
neo schema show api.x.com
# 2. ابحث عن نقطة نهاية CreateTweet
neo capture search "CreateTweet" --method POST
# 3. أعد التشغيل باستخدام المصادقة الأصلية (ملفات تعريف الارتباط موروثة تلقائيًا)
neo replay abc123 --tab x.com
# 4. أو أنشئ استدعاء جديدًا مع رؤوس مصادقة مكتشفة تلقائيًا
neo exec "https://x.com/i/api/graphql/.../CreateTweet" \
--method POST --auto-headers \
--body '{"variables":{"tweet_text":"مرحباً من Neo!"},...}'
تتبع مشغلات Neo يربط تفاعلات واجهة المستخدم باستدعاءات API:
neo schema show github.com
# الإخراج يشمل:
# POST /repos/:owner/:repo/star (3x, 280ms)
# ← click button.js-social-form "Star" (3x)
neo capture watch api.openai.com
# 14:23:01 POST 200 /v1/chat/completions (1230ms)
# 14:23:05 SSE_MSG 200 /v1/chat/completions (0ms) [sse]
neo-capture-v01)يقوم المعترض بتجاهل الضوضاء تلقائيًا:
يعمل Neo محليًا بالكامل — لا خوادم خارجية، لا بيانات تتبع، لا تغادر بياناتك جهازك.
ما يلتقطه Neo: كل استدعاء fetch/XHR/WebSocket يقوم به متصفحك على كل موقع ويب. هذا قوي ولكنه تدخلي حسب التصميم.
إخفاء رؤوس المصادقة (v1.1.0+): يتم إخفاء قيم رؤوس المصادقة (رموز Bearer، رموز CSRF، ملفات تعريف الارتباط، معرفات الجلسة) أثناء الالتقاط قبل التخزين. يخزن IndexedDB فقط أسماء الرؤوس، وليس القيم. عندما ينفذ --auto-headers استدعاء API، فإنه يجلب رؤوس المصادقة الحية من المتصفح في الوقت الفعلي عبر CDP — لا يعيد تشغيل بيانات الاعتماد المخزنة أبدًا.
ما يجب أن تعرفه:
التوصيات:
neo capture domainsneo capture clear banksite.comNeo هي أداة مطور تتبادل مساحة الخصوصية من أجل القدرة. استخدمها بوعي.
neo CLI موحد مع أوامر فرعيةneo replay <id> يعيد تنفيذ الاستدعاءات الملتقطةneo api مع بحث في المخطط + مصادقة تلقائيةneo flows يكتشف تسلسلات استدعاء APIMIT
| الجانب | التفاصيل |
|---|
| نطاق الالتقاط | <all_urls> — Neo يرى حركة المرور على كل موقع ويب، بما في ذلك الخدمات المصرفية، البريد الإلكتروني، البوابات الطبية |
| سكريبت المحتوى | يعمل في عالم MAIN (يشارك سياق JS مع الصفحات) لاعتراض fetch/XHR |
| منفذ CDP | يتطلب CLI تشغيل Chrome على المنفذ 9222 — أي عملية محلية يمكنها الاتصال بهذا المنفذ |
| أجسام الاستجابة | مخزنة في IndexedDB (مقصورة إلى 100 كيلوبايت) — قد تحتوي على بيانات شخصية من استجابات API |
| ملفات المخطط | تخزن فقط بنية نقطة النهاية (المسارات، أسماء الرؤوس، أشكال الاستجابة) — لا بيانات اعتماد أو بيانات مستخدم |
| التصدير | neo capture export يخفي المصادقة افتراضيًا؛ --include-auth يتطلب موافقة صريحة |
neo depsneo doctor للتحقق من الإعدادneo export-skill ينشئ SKILL.mdneo mock ينشئ خادم HTTP محلي من المخطط--all)neo label)neo workflow)neo connect, neo sessions, علم --sessionneo launch, neo connect --electronneo tab عرض/تبديل الأهدافneo inject مع --persist و --tabsnapshot, click, fill, type, press, hover, scroll, select, screenshot, get, wait