Bruno
نشط ومستقريعمل محلياً ✓بدون اشتراك APIاختبر واجهات API محليًا واحفظ الطلبات كملفات نصية قابلة لمراجعة Git وتشغيلها من CLI وCI.
npm install -g @usebruno/cliالاستخدام المثالي لهذه الأداة
مثالي للمطور الفردي أو الفريق الصغير الذي يريد وضع مجموعات API واختباراتها بجوار الكود ومراجعتها عبر Git. استخدمه لفحوص REST وGraphQL وgRPC وWebSocket القابلة للتكرار، وليس لمزامنة سحابية لحظية أو اختبار الحمل.
التفاصيل والميزات المصورة
تبدأ المشكلة عادةً من طلب API بسيط في تطبيق رسومي، ثم تتكاثر الطلبات والبيئات والتوكيدات حتى يصبح الفريق أمام ملف تصدير كبير أو مساحة سحابية يصعب مراجعة تغييراتها مثل الكود. Bruno يعالج هذه الفجوة بحفظ مجموعة الطلبات محليًا كملفات نصية، بحيث تفتحها في تطبيق سطح المكتب، تراجعها في Git، وتشغّل الاختبارات نفسها من الطرفية أو CI. قيمته ليست في إرسال HTTP فقط؛ بل في جعل تعريفات API جزءًا واضحًا من سير العمل الهندسي.
🧭 ما Bruno؟
Bruno عميل مفتوح المصدر لاستكشاف واجهات API واختبارها. يدعم REST وGraphQL وgRPC وWebSocket، ويخزن المجموعات داخل مجلد على جهازك بدل ربطها إلزاميًا بخدمة سحابية. يذكر المشروع صراحةً أن المنتج offline-only ولا يخطط لإضافة مزامنة سحابية؛ لذلك تظل ملفات المجموعة تحت سيطرتك، وتختار أنت مستودع Git أو وسيلة النسخ الاحتياطي.
هناك سطحان أساسيان للعمل:
- تطبيق سطح مكتب لبناء الطلبات، اختيار البيئات، فحص الاستجابات وكتابة التوكيدات والسكربتات.
- أداة طرفية
bruلتشغيل طلب أو مجلد أو مجموعة كاملة محليًا وفي خطوط CI/CD.
يحفظ Bruno تعريفات الطلبات في ملفات نصية قابلة للفرق والمراجعة. تعرض الوثائق الحالية تنسيقات Bruno/OpenCollection، بينما يشرح مستودع المشروع لغة Bru النصية. النتيجة العملية واحدة للقارئ: يمكن فتح الملفات في المحرر، ومراجعة التغيير قبل الدمج، واسترجاع نسخة سابقة من Git.

🎯 متى يكون الاستخدام مثاليًا؟
يناسب Bruno مطورًا فرديًا أو فريقًا صغيرًا يريد أن تكون اختبارات API بجوار الكود، أو يريد الانتقال من مجموعة لا يظهر فرقها بوضوح إلى ملفات قابلة للمراجعة. وهو مفيد عند بناء خدمة داخلية، توثيق أمثلة طلبات حقيقية، اختبار بيئات التطوير والاختبار، أو تشغيل فحص API بعد كل تغيير.
لا تختَره فقط لأنك تريد مزامنة سحابية فورية وحضورًا تعاونيًا لحظيًا؛ هذه ليست فلسفته. كذلك ليس بديلًا لأداة اختبار حمل، ولا يراقب الخدمة في الإنتاج على مدار الساعة. يمكن دمجه في CI للفحص الوظيفي، لكن قياس الضغط والمراقبة المستمرة يحتاجان أدوات مخصصة.
🧩 كيف يعمل خطوة بخطوة؟
- أنشئ Collection داخل مجلد مشروع أو مستودع مستقل.
- أضف طلبًا وحدد المسار والرؤوس والجسم والمصادقة المطلوبة.
- ضع القيم المتغيرة مثل
baseUrlومعرّف المستخدم في Environment، ولا تضع التوكنات الحقيقية في Git. - أضف توكيدًا واضحًا، مثل أن تكون الحالة
200وأن يحتوي الرد على حقل متوقع. - نفّذ الطلب من تطبيق سطح المكتب، ثم شغّل المجموعة من الطرفية للتحقق من قابلية الأتمتة.
- راجع ملفات النص في Git، وافصل تغيير الطلب عن الأسرار والنتائج المؤقتة.
- شغّل
bru runفي CI، واجعل رمز الخروج الفاشل يوقف الدمج أو النشر.
هذا الفصل مهم: التطبيق يساعدك في الاستكشاف، والملفات تحفظ المعرفة، وGit يراجع التغيير، وCLI يثبت أن السيناريو قابل للتكرار.

🔌 البروتوكولات والبيئات
يستطيع Bruno التعامل مع REST وGraphQL وgRPC وWebSocket بحسب صفحة المنتج الرسمية. يمكنك تعريف بيئات منفصلة للتطوير والاختبار والإنتاج، ثم تبديل القيم دون نسخ الطلب نفسه. هذا يقلل خطأ شائعًا: وجود ثلاث نسخ من المجموعة تختلف تدريجيًا ولا يعرف أحد أيها الأحدث.
افصل بين ثلاثة أنواع من القيم:
| النوع | مثال | أين يوضع؟ |
|---|---|---|
| إعداد غير حساس | baseUrl | ملف البيئة القابل للمراجعة |
| قيمة محلية حساسة | token أو كلمة مرور | Secret Manager أو ملف محلي مستبعد من Git |
| قيمة ناتجة أثناء الاختبار | معرّف طلب جديد | متغير وقت تشغيل مع مراجعة سلوك الحفظ |
يدعم Bruno استيراد مجموعات من Postman وInsomnia ومواصفات OpenAPI وغيرها، لكن الاستيراد ليس نهاية العمل: راجع المصادقة والسكربتات والمتغيرات بعد التحويل، لأن النماذج ليست متطابقة دائمًا.

✅ مثال عملي: فحص خدمة طلبات
افترض خدمة داخلية فيها GET /health وPOST /orders. أنشئ بيئة Local بقيمة baseUrl=http://localhost:3000، ثم أضف طلب الصحة وطلب إنشاء الطلب. ضع التوكن في مخزن الأسرار، وأضف توكيدًا لحالة الصحة وتوكيدًا بأن استجابة الطلب الجديد تحمل id.
ثبّت CLI ثم شغّل المجموعة:
npm install -g @usebruno/cli
bru run --env Local
إذا كان مشروعك ينظم الطلبات داخل مجلد فرعي، يمكن تشغيل المجلد أو ملف طلب محدد وفق مرجع CLI. ابدأ بالأمر الأبسط أعلاه، وثبّت إصدار CLI في بيئة CI بدل الاعتماد الدائم على أحدث إصدار. لم أنفّذ Bruno أو المجموعة في بيئة هذا الدليل؛ التحقق هنا وثائقي من المستودع والوثائق الرسمية.
في العمل اليدوي قد يرسل المطور طلبات فردية ثم ينسى نقل تعديل إلى زميله. في Bruno تصبح المجموعة نفسها أصلًا نصيًا: يغيّر المطور الطلب، يرى المراجع الفرق، ثم يعيد CI تشغيل السيناريو. يبقى الحكم على صحة التوكيد مسؤولية الفريق؛ الأداة لا تعرف تلقائيًا أن نتيجة العمل التجارية صحيحة.

🔐 الخصوصية والأسرار والصلاحيات
الميزة الأوضح هي أن المجموعات محلية ولا تحتاج حساب Bruno لاستخدام الأساسيات. لكن «محلي» لا يعني «آمن تلقائيًا»: الطلبات نفسها قد ترسل بيانات إلى أي مضيف تضعه في baseUrl، والسكربتات قد تتعامل مع أسرار أو تغيّر متغيرات.
في Bruno V4 نقل المشروع تعيينات مزودي الأسرار إلى ملفات البيئة. القيم السرية نفسها لا تُكتب إلى القرص، لكن أسماء التعيينات وإعدادات المزود قد تظهر في الملفات. الأهم: توضح ملاحظات V4 أن السكربتات التي تستخدم bru.setEnvVar تحفظ تغييرات متغيرات البيئة إلى القرص افتراضيًا. لذلك:
- راجع
git diffقبل كل commit. - استخدم Secret Manager للقيم الحساسة أو ملف
.envمحليًا مع إضافته إلى.gitignore. - لا تفترض أن متغيرًا أنشأه السكربت سيبقى في الذاكرة فقط.
- افتح المجموعات القديمة في التطبيق لإجراء ترحيل V4؛ CLI لا ينفذ الترحيل نيابةً عنك.

تشغّل Bruno CLI السكربتات افتراضيًا في Safe Mode مبني على QuickJS/WASM. يمنع هذا الوضع الوصول إلى نظام الملفات وأوامر النظام ووحدات Node الأصلية. يوجد Developer Mode لسيناريوهات تحتاج صلاحيات أوسع، لكنه مناسب فقط لمجموعة موثوقة راجعت سكربتاتها. تعامل مع Collection مستوردة كما تتعامل مع كود خارجي: اقرأ السكربت قبل تشغيله، وابدأ بالوضع الآمن.

💰 النسخة المجانية وما قد يتطلب الدفع
المشروع الأساسي مفتوح المصدر بترخيص MIT، وتعرض صفحة الأسعار خطة Open Source بسعر صفر. عند التحقق في 1 نوفمبر 2026 كانت الخطتان المدفوعتان المعروضتان هما Pro بسعر 6 دولارات للمستخدم شهريًا عند الدفع السنوي، وUltimate بسعر 11 دولارًا للمستخدم شهريًا عند الدفع السنوي. راجع الصفحة قبل الشراء لأن الأسعار والحدود قابلة للتغيير.
نقطة تحتاج انتباهًا: التعاون عبر ملفات Git مجاني، ويمكنك استخدام Git من الطرفية أو أي عميل خارجي. أما بعض إجراءات Git المتقدمة داخل واجهة Bruno، مثل commit وpush وإدارة الفروع وحل التعارضات داخل التطبيق، فتضعها وثائق المشاركة وصفحة الأسعار ضمن القدرات المدفوعة. كذلك قد تختلف التقارير وبعض ميزات الفرق حسب الخطة. لا تخلط بين «Git مجاني» و«كل أزرار Git داخل التطبيق مجانية».
⚖️ ماذا تكسب مقارنة بالعمل اليدوي؟
| المهمة | يدويًا أو في ملفات متفرقة | باستخدام Bruno |
|---|---|---|
| مشاركة الطلبات | نسخ روابط ونصوص أو تصدير ملف كبير | ملفات نصية داخل Git |
| مراجعة التغيير | صعب معرفة الحقل الذي تغيّر | فرق Git وطلب مراجعة |
| تبديل البيئة | نسخ الطلب وتعديل العنوان | Environment ومتغيرات |
| التكرار في CI | إعادة كتابة الاختبار بأداة أخرى | تشغيل المجموعة بـ bru run |
| ملكية البيانات | تعتمد على الخدمة المستخدمة | المجموعة على جهازك ومستودعك |
| التعاون اللحظي | قد يكون جاهزًا في أدوات سحابية | يعتمد على Git، لا مزامنة Bruno سحابية |
القيمة المضافة تظهر عندما يصبح الطلب جزءًا من دورة التطوير لا مجرد تجربة مؤقتة. إذا كان الفريق لا يراجع ملفات المجموعة ولا يشغّلها آليًا، فستبقى الأداة مجرد عميل API آخر.

⚠️ القيود والتوافق
- تطبيق سطح المكتب متاح لـ macOS وWindows وLinux، مع تنزيلات وحزم متعددة. CLI يثبت عبر npm، وتوجد صور Docker رسمية لمعمارية
linux/amd64وlinux/arm64. - أحدث إصدار منشور تحققنا منه هو v4.3.0 بتاريخ 22 أكتوبر 2026. صفحة التنزيل قد تتأخر عن صفحة إصدارات GitHub؛ اعتمد صفحة الإصدار عند مقارنة الأرقام.
- آخر commit ظاهر على الفرع الرئيسي كان 30 أكتوبر 2026. سجل المستودع وقت الفحص نحو 48.0 ألف نجمة و3.1 آلاف fork؛ هذه مؤشرات انتشار وليست تقييم جودة.
- لا توجد مزامنة سحابية من Bruno؛ Git هو مسار التعاون المقصود.
- V4 يحمل تغييرات كاسرة في الأسرار ومتغيرات البيئة؛ لا تخلط إصدارات التطبيق وCLI داخل الفريق من دون خطة ترحيل.
- الاختبار الوظيفي لا يساوي اختبار حمل أو مراقبة إنتاج، والتوكيدات الرديئة تعطي ثقة زائفة.
- لم نتحقق بالتشغيل من المثبتات أو CLI أو الاستيراد؛ تحققنا من الوثائق والمستودع والإصدار والأسعار المنشورة.
📚 المصادر وتاريخ التحقق
تم التحقق في 1 نوفمبر 2026 من المصادر الأصلية التالية:
- مستودع Bruno الرسمي على GitHub — الترخيص، العمل المحلي، التثبيت، CLI وDocker والنشاط.
- الإصدار v4.3.0 — الإصدار المنشور في 22 أكتوبر 2026.
- وثائق Bruno الرسمية ومرجع CLI — التشغيل والبيئات.
- صفحة المنتج الرسمية — البروتوكولات والأسطح المتاحة.
- صفحة الأسعار — الخطة المفتوحة والخطط المدفوعة وحدود الميزات.
- تغييرات Bruno V4 — ترحيل الأسرار وسلوك حفظ متغيرات البيئة.
- وضع CLI الآمن — QuickJS/WASM وحدود Safe Mode وDeveloper Mode.