شو هي، وكيف بتشتغل بأربع خطوات
الرابط: github.com/kalil0321/reverse-api-engineer · الحزمة على PyPI اسمها reverse-api-engineer (آخر إصدار v0.14.0). الجملة من الـ README نفسه: «حوّل المواقع لـ APIs: تصفّح (أو خلّي وكيل يتصفّح)، وخذ client نظيف ومنظّم للـ endpoints اللي الموقع بيستعملها فعلاً».
- إنت بتعطيها الموقع والهدف: «جيب لي كل وظائف Apple من صفحة التوظيف».
- متصفح بيفتح: إنت بتتصفّح (الوضع اليدوي) أو وكيل AI بيتصفّح بدالك (وضع الوكيل).
- الأداة بتسجّل كل طلبات الشبكة اللي الموقع بيعملها بملف HAR (نفس اللي بتشوفه بتبويب Network بأدوات المطوّر).
- Claude بيقرأ الطلبات وبيكتب client شغّال بـ Python أو JavaScript أو TypeScript أو Go أو Java أو C# أو PHP أو Ruby أو C أو PowerShell.
الفرق عن دليل REA (Reverse Engineer Anything): REA بتفكّك تطبيق موجود على جهازك لتفهم كيف ميزة معمولة. Reverse API Engineer بتشتغل على موقع، وهدفها واحد: الطلبات الشبكية اللي ورا الصفحة، وكود يستدعيها.
الحدود القانونية أولاً
- شروط الموقع وملف robots.txt: إذا بيمنعوا السحب الآلي، خلص. لا تدوّر على طريقة.
- حدود الطلبات (rate limits): الـ client اللي بيطلع بيضرب الـ API مباشرة. حط تأخير بين الطلبات ولا تسحب الموقع كله.
- بيانات شخصية: حتى لو الطلب شغّال، ما بتسحب أسماء وإيميلات ناس بدون أساس قانوني.
- ملف HAR فيه كوكيز وtokens تبعك: لا تلصقه بشات، ولا ترفعه على GitHub، ولا تبعته بـ issue. المشروع نفسه بيحذّر من هاد.
- الكود المولّد بيشتغل على جهازك: اقرأه قبل ما تشغّله، زي أي كود كاتبه نموذج.
شو بتحتاج على جهازك
- Python 3.11 أو أحدث و
uv(أو pip). تأكد بـpython --version. - النظام: ويندوز 64-bit، أو ماك بمعالج Apple Silicon، أو لينكس. الـ README بيقول صراحة إن ماك Intel وويندوز 32-bit ما صاروا مدعومين (بسبب مكتبة التشفير).
- Node.js 20.19 أو أحدث لوضع الوكيل (بيشغّل أدوات المتصفح عبر
npx)، ولأمر تركيب الـ skill. - متصفح Chrome لوضع الوكيل الافتراضي (chrome-mcp): إصدار 146 أو أحدث. الوضع اليدوي بيستعمل متصفح Playwright خاص به.
- نموذج: الافتراضي Claude عبر مفتاح API، وفي بديل مجاني (القسم 3).
- Claude Code لو بدك تشغّلها من جوّا الشات (القسم 2 و6). دليل التركيب لو لسا.
أمر للأداة، أمر للـ skill، وإعداد النموذج.
أمر التثبيت
التثبيت الأساسي (وضع الوكيل جاهز فيه):
uv tool install reverse-api-engineerما عندك uv؟ نفس الشي بـ pip install reverse-api-engineer أو pipx install reverse-api-engineer.
لو بدك الوضع اليدوي (إنت بتتصفّح): الإضافة [manual] ومتصفح Playwright:
uv tool install "reverse-api-engineer[manual]"
playwright install chromiumتأكد إنها انصّبت:
reverse-api-engineer --versionالأمر بالطرفية اسمه reverse-api-engineer (والمشروع بيختصره rae بالوثائق). الإعدادات بتنحفظ بملف ~/.reverse-api/config.json، وبتعدّلها من جوّا الأداة بـ /settings.
كـ skill بـ Claude Code بأمر واحد
المشروع فيه ملف Skill جاهز بيعلّم Claude Code (وكمان Codex وCursor وOpenCode) كيف يشغّل الأداة صح: يفحص التثبيت، يعمل فحص مسبق، يشغّل السحب بالخلفية، يتأكد من الـ client، ويحسّنه. الأمر اللي بالـ README:
npx skills add kalil0321/reverse-api-engineernpx skills أداة من طرف ثالث (مشروع skills.sh)، مش أمر من Anthropic، ومش موجودة بوثائق Claude Code الرسمية. هي بتنسخ مجلد الـ skill لمكانه الصحيح. بتسألك لأي وكيل ولأي مكان (مشروع أو مستخدم). لو ما بدك تشغّل أداة خارجية، النسخ اليدوي تحت بيعطي نفس النتيجة.البديل اليدوي (نفس النتيجة بدون npx): انسخ مجلد الـ skill من المستودع لمجلد Skills تبعك:
git clone --depth 1 https://github.com/kalil0321/reverse-api-engineer.git
mkdir -p ~/.claude/skills
cp -r reverse-api-engineer/skills/reverse-api-engineer ~/.claude/skills/بعدها افتح Claude Code بأي مجلد: الـ skill بينشحن لحاله لما تطلب شي عن API موقع، أو استدعيه مباشرة بـ /reverse-api-engineer. المسار ~/.claude/skills/ هو مكان الـ Skills الشخصية حسب وثائق Claude Code، وما بتحتاج تعيد تشغيله بعد النسخ.
النموذج: مدفوع بمفتاح API، أو مجاني
الأداة بتحتاج نموذج يقرأ ملف HAR ويكتب الكود. الافتراضي: Claude عبر Claude Agent SDK. وهون تصحيح مهم عن الكابشن:
ANTHROPIC_API_KEY. سحب واحد عادةً بيكلّف سنتات، والأداة بتطبع لك التكلفة بآخر كل تشغيل.ضيف المفتاح (ماك/لينكس، للجلسة الحالية):
export ANTHROPIC_API_KEY=sk-ant-...على ويندوز بـ PowerShell:
$env:ANTHROPIC_API_KEY = "sk-ant-..."النموذج الافتراضي بالإعدادات claude-sonnet-4-6، وبتغيّره من جوّا الأداة بـ /model: الـ README بيذكر Sonnet 5.5 وOpus 5.5 (الأقوى) وHaiku 5.5 (الأسرع والأرخص). لملف HAR عادي، Sonnet أو Haiku بيكفوا.
الطريق المجاني: OpenCode مع نموذج مجاني، أو Ollama على جهازك. من جوّا الأداة:
reverse-api-engineer
/settings
# SDK: opencode → Provider/Model: اختار نموذج معلّم "free" (الافتراضي big-pickle)
# أو Provider: ollama لو عندك Ollama منصّب بنموذج بيدعم tool calling وسياق 64k+الـ README بيقول إن OpenCode بينزّل ويشتغل لحاله عبر npx (بده Node 20+)، والنماذج المجانية بتتعلّم بالقائمة. جودة الكود مع نموذج مجاني أقل من Claude، بس لـ API بسيطة بتمشي.
جرّب يدوي أول، بعدين خلّي الوكيل يتصفّح.
أول تجربة: الوضع اليدوي
ابدأ هون عشان تشوف بعينك شو بينسجّل. بده الإضافة [manual] من القسم 1.
reverse-api-engineer
> fetch all open jobs from the careers page, with title, location and team- إنت اكبس Shift+Tab لحد ما يصير الوضع manual، واكتب هدفك بالإنجليزي أو العربي (الإنجليزي أدق مع أسماء الحقول).
- الأداة بتفتح متصفح. تصفّح الموقع زي أي مستخدم: افتح صفحة الوظائف، فلتر، اكبس «التالي» لصفحتين.
- إنت سكّر المتصفح لما تخلص.
- Claude بيقرأ ملف HAR وبيكتب الـ client بمجلد
./scripts/<اسم-وصفي>/: api_client.py وexample_usage.py وREADME.md.
اكتب الهدف كـ بيانات بدك ياها، مش كبسات: «الوظائف المفتوحة مع العنوان والمكان والفريق، مع الصفحات» أحسن من «اكبس تبويب الوظائف». هاد من تعليمات الـ skill نفسه.
وضع الوكيل: AI بيتصفّح بدالك
الوضع الافتراضي. وكيل AI بيفتح الموقع وبيعمل المهمة لحاله، والأداة بتسجّل الطلبات. فيه ثلاث طرق للمتصفح، بتختارها من /settings:
| المزوّد | شو بيعمل | متى |
|---|---|---|
| chrome-mcp (الافتراضي للإعدادات الجديدة) | بيشغّل Chrome تبعك نفسه، فجلساتك وتسجيلات دخولك موجودة. ما بيحفظ ملف HAR، فما بتقدر تعيد التوليد من نفس التسجيل. | مواقع بدها تسجيل دخول إنت مسجّل فيه. |
| auto | متصفح Playwright جديد بدون جلساتك، وبيحفظ HAR. ما بده أي إعداد لـ Chrome. | بيانات عامة، أو لما بدك تعيد التوليد لاحقاً بـ engineer. |
| agent-browser | أداة Vercel agent-browser (بتنصّب لحالها أول مرة). | لو الطريقتين فوق ما زبطوا. |
قبل أول تشغيل بوضع الوكيل: فحص مسبق بدون ما يفتح متصفح (بيفحص الإعدادات والمفتاح والاتصال بـ Chrome):
reverse-api-engineer agent -p "fetch open jobs with title, location and team" -u "https://example.com/careers" --dry-runمع chrome-mcp: افتح Chrome 146 أو أحدث، روح على chrome://inspect/#remote-debugging وفعّل «Enable auto-connect». لما يبدأ التشغيل، Chrome بيسألك توافق على الاتصال: وافق، وإلا بينتهي الوقت بدون client. لمواقع عامة ضيف --headless فبيشتغل بـ Chrome مخفي بدون جلساتك ومن غير هالإعداد.
التشغيل الفعلي (بياخد دقايق):
reverse-api-engineer agent -p "fetch open jobs with title, location and team" -u "https://example.com/careers" --jsonمن جوّا Claude Code بجملة
بعد القسم 2، افتح Claude Code بمجلد مشروعك واكتب:
بدي client بـ Python لصفحة الوظائف بهالموقع: https://example.com/careers
الهدف: كل الوظائف المفتوحة مع العنوان والمكان والفريق، مع الصفحات.
استعمل skill الـ reverse-api-engineer. اعمل الفحص المسبق أول، وقلّي قبل ما تفتح متصفحي. بالآخر شغّل الـ client وتأكد إنه رجّع بيانات حقيقية مش مجرد 200.شو بيعمل Claude Code حسب الـ skill: بيفحص إن الأداة منصّبة (وبيسألك قبل ما يركّب شي)، بيدوّر على تسجيل سابق لنفس الموقع بـ list عشان ما يعيد الشغل، بيعمل --dry-run، بيشغّل السحب بالخلفية (لأنه بياخد أطول من مهلة أمر عادي)، وبعدين بيقرأ الـ client وREADME قبل ما يشغّله، وبيحكي لك شو الـ endpoints اللي غطّاها وكيف المصادقة (كوكيز، bearer token…) لأنها بتنتهي.
لما بدك تحسّن client موجود بدون إعادة التصفّح (بس لتشغيلات حفظت HAR):
على نفس التسجيل الأخير: ضيف الصفحات (pagination) ونموذج Job منظّم بالأنواع، وخلّي الباقي زي ما هو.شو بيطلع لك، والأوامر المهمة
كل تشغيل بينحفظ بـ ~/.reverse-api/runs/scripts/<run_id>/، ونسخة باسم مقروء بـ ./scripts/<اسم>/ بمجلدك. اللغة الافتراضية Python، وبتغيّرها من /settings (output_language) لـ javascript أو typescript أو go أو java أو csharp أو php أو ruby أو c أو powershell.
| الأمر | شو بيعمل |
|---|---|
reverse-api-engineer | الجلسة الكاملة بالطرفية. Shift+Tab بيبدّل الوضع: manual · agent · engineer · collector. |
/model · /mode · /settings | النموذج، الوضع، والإعدادات (SDK، مزوّد المتصفح، لغة الإخراج). |
/history · /resume <run_id> | التشغيلات السابقة، وتكملة محادثة تشغيل من وين وقفت. |
/open | بيفتح آخر client اتولّد. |
reverse-api-engineer list --json | كل التشغيلات (بما فيها الفاشلة)، للسكربتات. |
reverse-api-engineer show <run_id> --json | تفاصيل تشغيل: عدد الملفات، وهل في HAR محفوظ. |
reverse-api-engineer run <run_id> --file api_client.py | بيشغّل الـ client المولّد (--auto-install بيركّب اعتمادياته). |
reverse-api-engineer engineer <run_id> -p "..." | يعيد التوليد من نفس ملف HAR بطلب جديد (--fresh يبدأ من الصفر). |
| وضع collector | الوكيل بيجمع بيانات منظّمة (JSON/CSV) بالبحث والجلب بدل client، بمجلد ./collected/. |
بعد التوليد: شغّل example_usage.py وشوف إن البيانات حقيقية. الكوكيز والـ tokens اللي انسجّلوا بينتهوا بعد فترة، فالـ client بده تجديد مصادقة من وقت للثاني، وهاد مكتوب بالـ README المولّد.
الأخطاء اللي بتضيّع ساعة، والحدود بصراحة.
أخطاء بتضيّع وقتك
| الغلط | شو بيصير | الصح |
|---|---|---|
| بتشغّلها بدون مفتاح أو بدون إعداد OpenCode | تحذير بالفحص المسبق، أو توليد فاشل بعد التصفّح. | القسم 3 أول: مفتاح API أو SDK مجاني. |
| هدف عام («اسحب الموقع») | الوكيل بيلفّ بدون نهاية، وclient لكل شي وولا شي. | هدف واحد وبياناته: «الوظائف مع العنوان والمكان». |
| chrome-mcp بدون تفعيل auto-connect | بيوقف بالفحص المسبق أو بينتهي وقته. | الإعداد بالقسم 5، أو --headless لمواقع عامة. |
| تشغيل ثاني وأول واحد لسا شغّال | شغل مكرّر وتكلفة مكرّرة. | استنّى النتيجة، أو استعمل /history. |
| موقع فيه captcha أو حماية بوتات | وضع الوكيل بينحجب. | الوضع اليدوي (إنت بتعدّي الـ captcha)، وبعدين engineer على التسجيل. |
| بترفع ملف HAR أو تلصقه بشات | كوكيزك وtokens تبعك صاروا عند غيرك. | خلّيه على جهازك. احذفه لما تخلص. |
| تنسخ الـ client لمشروعك وتنسى | بعد أسبوع المصادقة بتنتهي والكود بيوقف. | اقرأ README المولّد: فيه كيف بتتجدّد المصادقة. |
تنبيهات صدق
- مش مجانية بالكامل. الأداة مفتوحة المصدر، بس النموذج بيكلّف: مفتاح API (سنتات لكل سحب غالباً) أو جودة أقل مع نموذج مجاني. الكابشن قال «بتحتاج نموذج» وهاد التفصيل.
- الكابشن قال 2,300+ نجمة. يوم كتابة الدليل صارت 2,690 (الرقم بيكبر). والأرقام هون من GitHub يوم 2026-11-05.
- مش كل موقع بيمشي. حماية البوتات، الـ captcha، والمواقع اللي بتوقّع الطلبات بتوكنات متغيّرة بتخرب التسجيل أو الـ client. الـ README بيقولها.
- وضع الوكيل بيشتغل جوّا Chrome تبعك (المزوّد الافتراضي). يعني بيكبس ويتصفّح بجلساتك. اقرأ شو رح يعمل، ووافق على اتصال Chrome بعينك.
- كود مكتوب بنموذج. راجعه قبل ما تحطه بمنتج، وجرّبه على بيانات قليلة أول.
- قانونياً عليك إنت. الأداة ما بتعرف إذا عندك حق تسحب. القسم «الحدود القانونية» مش شكلي.
أسئلة شائعة
شو ملف HAR؟
بتشتغل على ويندوز؟
الموقع بده تسجيل دخول. كيف؟
بدي الـ client بـ JavaScript مش Python
/settings غيّر output_language لـ javascript أو typescript. أو اطلبها من Claude Code بالجملة وهو بيمرّر الإعداد.فيه فرق بين «skill» و«MCP» هون؟
كيف أشيلها؟
uv tool uninstall reverse-api-engineer (أو pip uninstall)، واحذف مجلد ~/.reverse-api/ لو بدك تمسح التشغيلات والإعدادات، ومجلد الـ skill من ~/.claude/skills/reverse-api-engineer.