ثبّت أداة سطر أوامر واحدة، فيقرأ Agent في Cursor ما قرره فريقك في اجتماع وهو يعمل في مستودعك. ولا تعود تلصق ملاحظات الاجتماعات في المحادثة.
يشمل ذلك الاجتماعات التي سجّلها Meeting.ai. يسجّل Meeting.ai مكالماتك ويكتب الملاحظات والتفريغ النصي، ويقرؤها Agent عبر memo، وهو أداة سطر الأوامر من Meeting.ai. الربط هنا يتم بـ CLI يشغّله Agent في الطرفية، لا بخادم MCP؛ والسبب مذكور قرب نهاية المقال. يطبع memo بياناته بصيغة JSON (أما التصدير فيأتي بالصيغة التي تطلبها)، ولا يتوقف أبداً ليطرح سؤالاً. الإعداد أمران وتسجيل دخول واحد في المتصفح. ولا مفتاح API.
الاجتماعات والأجوبة أدناه أمثلة متخيَّلة.
توشك أن تغيّر رقماً يبدو اعتباطياً. عامل المزامنة (sync worker) يعيد المحاولة خمس مرات. وثلاث تبدو أكثر من كافية.
قبل أن أخفّض MAX_ATTEMPTS في workers/sync/retry.py: استخدم memo لتجد الاجتماع الذي استقررنا فيه على خمس محاولات، وأخبرني بالسبب.
يجد Agent مراجعة الحادثة التي عُقدت في 22 سبتمبر ويقتبس السبب: واجهة API لدى الشريك قد تحتاج إلى أربع دقائق لتنتقل إلى الخادم البديل (failover)، وخمس محاولات مع فترات انتظار بينها (backoff) تغطي تلك المدة. إذن تبقى الخمس.
التذكرة تقول «أضف الحالة الفارغة (empty state) وحالة الخطأ»، والتفاصيل اتُّفق عليها في مكالمة. حضرت مراجعة التصميم يوم الخميس الماضي، وتتذكر نصفها تقريباً.
استخدم memo لتجد مراجعة التصميم يوم الخميس لقائمة الفواتير. ابحث في التفريغ النصي عمّا اتفقنا عليه في الحالة الفارغة وحالة الخطأ. طبّقهما في src/billing/InvoiceList.tsx، وأرني القواعد التي وجدتها قبل أن تعدّل.
يشغّل Agent الأمرين memo meetings search وmemo meetings get، ويقرأ JSON، ويعرض ما وجده قبل أن يمس الملف:
من «مراجعة تصميم قائمة الفواتير» (8 أكتوبر):
1. الحالة الفارغة: سطر واحد من نص المساعدة وزر وحيد «استيراد الفواتير».
2. حالة الخطأ: أبقِ رأس الجدول، واعرض الخطأ في شريط تنبيه فيه «إعادة المحاولة».
3. التحميل: صفوف هيكلية (skeleton)، بلا مؤشر دوّار.
لم يُحسم: هل يتضمن شريط التنبيه رابطاً إلى صفحة الحالة؟
الخطة: تعديل src/billing/InvoiceList.tsx وإضافة InvoiceList.test.tsx. هل أتابع؟عميل عرض الخلل في مكالمة، ولم يكتب أحد تذكرة.
استخدم memo لتجد مكالمة الأسبوع الماضي مع Northwind حول استيراد سجلات ساعات العمل. استخرج الخطوات التي اتبعوها وما كانوا يتوقعونه. اكتب اختباراً فاشلاً في tests/import/ يعيد إنتاج المشكلة، ثم توقف.
يرفع الاختبار الملف نفسه مرتين ويفشل لأن كل صف تكرر، وهذا ما قاله العميل في المكالمة.
كيف تربط Meeting.ai بـ Cursor؟
تحتاج إلى Cursor مع Agent، وإلى macOS أو Linux، وإلى حساب في Meeting.ai فيه اجتماع. وإذا كان الحساب فارغاً، فسجّل اجتماعاً أو ارفعه أولاً. أسماء القوائم والأزرار في Cursor مكتوبة هنا بالإنجليزية كما ترد في وثائقه، وقد تختلف عندك إذا كنت تستخدمه بلغة عرض أخرى. ثم شغّل هذين الأمرين في الطرفية:
curl -fsSL https://raw.githubusercontent.com/meeting-ai/memo-cli/main/install.sh | bashبعد ذلك افتح طرفية جديدة، ليجد الـ shell الأمر memo في ~/.local/bin، وشغّل:
memo auth login- ثبّت memo. الأمر الأول ينزّل الإصدار المناسب لمنصتك، ويتحقق من مجموعه الاختباري SHA-256، ويضع
memoفي~/.local/bin، ويثبّت ملف مهارة، وهو ملف Markdown يخبر Agent بأوامرmemoالمتاحة. يمكنك قراءة برنامج التثبيت قبل تشغيله. - سجّل الدخول. يفتح
memo auth loginموقع Meeting.ai في متصفحك. سجّل الدخول ووافق؛ ولن تحتاج بعدها إلى لصق شيء في الطرفية. ومن تلك اللحظة يتصرفmemoباسمك ويصل إلى مساحات العمل التي يستطيع حسابك في Meeting.ai الوصول إليها. - تحقق من الجلسة. شغّل
memo auth status. وإذا كنت عضواً في أكثر من مساحة عمل، فشغّلmemo workspace list، ثمmemo workspace setمع معرّف مساحة العمل. - تحقق من المهارة. شغّل
memo install-skill-md --list. يعرض المسار~/.agents/skills/memo/SKILL.md، وCursor يحمّل المهارات من~/.agents/skills. وفي Cursor، افتح Customize في الشريط الجانبي وانتقل إلى Skills لتراها. - اسأل Agent. افتح Agent واكتب: «استخدم memo لعرض آخر خمسة اجتماعات لي، ثم أرني قرارات أحدثها.» وقارن الجواب بصفحة الاجتماع في Meeting.ai.
إذا لم تجد المهارة في الخطوة 4، فشغّل memo install-skill-md وأعد تشغيل Cursor. ولاستدعاء المهارة مباشرة، اكتب / في محادثة Agent وابحث عن memo.
اجعل Cursor يشغّل memo من دون أن يسألك كل مرة
تحدّد متى تُشغَّل أوامر الطرفية من Settings > Agents > Approvals & Execution. في الوضع الافتراضي، Auto-review، لا يستطيع memo العمل داخل البيئة المعزولة (sandbox)، لأنها تحجب الوصول إلى الشبكة وmemo يحتاج إلى الشبكة. عندها قد يطلب منك Cursor الموافقة على الأمر.
ولإيقاف طلبات الموافقة على أوامر القراءة، أضف ما تستخدمه منها إلى قائمة السماح (allowlist) للطرفية في Cursor Settings، مثل memo meetings list وmemo meetings search وmemo meetings get. المطابقة تتم على بادئة الأمر، فإدخال memo وحده سيسمح أيضاً لأوامر المشاركة والحذف بأن تعمل بلا استئذان. وفِرَق العمل التي تحفظ قائمة السماح في ملف تستطيع استخدام الحقل terminalAllowlist في .cursor/permissions.json؛ وحين يحدد ذلك الملف قائمة سماح، فإنها تحل محل القائمة الموجودة في Cursor Settings.
ما يهمّك أن تعرفه
- كيف تحققنا من هذه الخطوات. كتبناها من وثائق Cursor كما قرأناها في 14 أكتوبر 2026 ومن memo 0.19.2، ولم نجرّب الإعداد كاملاً داخل Cursor بأنفسنا، فراسل [email protected] إذا بدت خطوة مختلفة على جهازك.
- التكلفة. تسجيل الدخول وقراءة الملاحظات والتفريغات النصية بلا تكلفة إضافية ما دامت خطتك تتيح لك الوصول إلى الاجتماع. أما التسجيل، وVisual Notes (رسوم للاجتماع في صفحة واحدة)، وتوليد الوسائط، فتُحتسب من اشتراكك في Meeting.ai أو من Coins، وهي الرصيد في حسابك.
- اقرأ الأمر قبل أن توافق عليه. معظم أوامر
memoللقراءة فقط؛ أما التي تنشئ اجتماعاً أو تعدّل الملاحظات أو تشارك أو تحذف فتغيّر بيانات حقيقية. ومن دون--confirm، ينتظرmemo meetings createالتأكيد ولا ينشئ الاجتماع، وعلى Agent ألا يضيف هذا الخيار إلا حين تكون قد طلبت ذلك الإجراء بعينه. - الملاحظات أولاً، ثم الاقتباسات. التفريغ النصي الكامل طويل، فاطلب الملاحظات وبنود المتابعة، ثم دع Agent يبحث في التفريغ النصي عن التفصيل الذي تحتاج إليه. والقرار الشفهي قد يكون مبهماً أو يُنقض لاحقاً في المكالمة نفسها، فاطلب الأسطر المقتبسة وما بقي معلّقاً.
- أبقِ التفريغات النصية خارج المستودع. مكان القرارات وصف الـ PR أو سجل قرار. أما التفريغات النصية الخام بما فيها من كلام زملائك فلا مكان لها في الـ commit.
- macOS وLinux وAgent المحلي فقط. يُثبَّت
memoعلى macOS وLinux (arm64 وamd64) وداخل WSL، ولم نجرّبه هناك مع تطبيق Cursor لسطح المكتب؛ ولا توجد نسخة لـ Windows. وتقول وثائق Cursor إن المهارات الموجودة في~/.agents/skillsلا تُنسخ إلى Cloud Agents ولا إلى remote workers، فاستخدم Agent المحلي.
ماذا تطلب بعد ربط Meeting.ai؟
اكتب «استخدم memo» في الطلب وسمِّ الاجتماع، ليذهب Agent إلى الاجتماع الصحيح.
اجتماع التخطيط في ملف تودعه في المستودع
مكالمة التخطيط يوم الاثنين خرجت بإحدى عشرة مهمة وترتيب تقريبي. وما إن جاء الأربعاء حتى اختلف الجميع على الترتيب.
استخدم memo لقراءة اجتماع التخطيط يوم الاثنين واكتب المهام في docs/plan.md، مرتبة حسب اعتماد بعضها على بعض، مع المسؤول الذي سُمّي في الاجتماع.
1. إضافة الجدول api_keys (Priya)
2. نقطة نهاية (endpoint) لإنشاء المفاتيح (Tomas)، بعد 1
3. شاشة إعدادات المفاتيح (Wen)، بعد 2
...
لم يُسمَّ له مسؤول في الاجتماع: الـ rate limit لكل مفتاح.طابِق الفرع مع ما اتُّفق عليه
الفرع جاهز. وقبل أن تطلب مراجعته، تريد أن تتأكد أنه يطابق ما اتُّفق عليه في مراجعة الـ API.
استخدم memo لتجد اجتماع مراجعة الـ API. قارن هذا الفرع بما اتفقنا عليه هناك. اذكر كل اختلاف واقتبس السطر المقابل له من التفريغ النصي.
الفرع feature/api-keys مقابل «مراجعة الـ API» (6 أكتوبر): عدد الاختلافات 2
1. بادئة المفتاح. في الفرع: "sk_". المتفق عليه: "mk_live_" و"mk_test_".
«يجب ألا يقع أي خلط بين مفاتيح الاختبار والمفاتيح الفعلية.»
2. انتهاء الصلاحية. في الفرع: لا تنتهي أبداً. المتفق عليه: 90 يوماً افتراضياً.
«تسعون يوماً، وبإمكان المالك أن يمدّدها.»
المطابق: صلاحيات (scopes) لكل مفتاح، والسر يُعرض مرة واحدة.وصف PR يشرح السبب
نصف المراجعين لم يحضروا المكالمة، والـ diff لا يشرح نفسه.
استخدم memo لتجد اجتماع مراجعة الـ API. اكتب وصف الـ PR لهذا الفرع واذكر القرار الذي استند إليه كل تغيير.
- تنتهي صلاحية المفاتيح بعد 90 يوماً افتراضياً. تقرر ذلك في مراجعة الـ API يوم 6 أكتوبر.
- مفاتيح الاختبار تبدأ بـ "mk_test_"، حتى لا يخلط أحد بينها وبين مفتاح فعلي.طلبات أخرى
- سجل قرار. «استخدم memo لقراءة اجتماع المعمارية يوم الأربعاء الماضي واكتب docs/adr/0012-job-queue.md: السياق، والقرار، والخيارات المرفوضة.»
- التحضير لمراجعة. «استخدم memo لعرض أحداث التقويم غداً. ولمراجعة التصميم، لخّص ما يغيّره هذا الفرع والأسئلة المعلّقة من المراجعة الأخيرة.» يحتاج هذا إلى تقويم مربوط بـ Meeting.ai.
- متابعة الـ retro. «استخدم memo لقراءة آخر retro. أي بنود المتابعة تمس هذا المستودع، وأيها لم يُنجز بعد؟»
- متطلبات من اجتماعات شهر كامل. «استخدم memo للبحث في اجتماعات هذا الشهر عن عبارة (صفحة الأسعار). اكتب المتطلبات في docs/pricing-requirements.md وأشِر إلى المتعارض منها.»
- ملاحظات الإصدار. «استخدم memo لقراءة اجتماعات التخطيط والمراجعة لهذا الـ sprint. اكتب ملاحظات الإصدار واذكر الاجتماع الذي جاء منه كل بند.»
- الملاحظات في ملف Markdown. «استخدم memo لتصدير مراجعة الحادثة اليوم بصيغة Markdown إلى docs/incidents/: الملاحظات وبنود المتابعة، من دون التفريغ النصي.» يشغّل Agent الأمر
memo meetings exportمع--include sections,key-points: فـ sections هي الملاحظات، وkey points هي بنود المتابعة. - مدوّن ملاحظات للمكالمة التالية. «استخدم memo لإرسال Meeting Bot إلى هذه المكالمة: [الصق هنا رابط Zoom أو Google Meet أو Microsoft Teams].» هذا الطلب يُجري تغييراً ولا يكتفي بالقراءة: يشغّل Agent الأمر
memo meetings create --url <link> --confirm، فينضم Meeting Bot، مدوّن الملاحظات في Meeting.ai، إلى المكالمة ويسجّلها.
لماذا لا يجد Cursor اجتماعاتي؟
السبب في الغالب أن Cursor لم يشغّل الأمر، أو أن memo لم يسجّل الدخول.
| ما تراه | ما تفعله |
|---|---|
Agent يجيب من دون تشغيل memo | قل «استخدم memo» في الطلب، أو اكتب / واختر مهارة memo |
| Cursor يحجب الأمر | وافق عليه حين يسألك Cursor، أو أضف أوامر القراءة التي تستخدمها إلى قائمة السماح للطرفية |
memo: command not found | افتح طرفية جديدة ليصبح ~/.local/bin ضمن مسارك (PATH)، ثم أعد تشغيل Cursor |
memo يقول إنك لم تسجّل الدخول | شغّل memo auth login من جديد |
| مهارة memo غير مدرجة | شغّل memo install-skill-md، ثم أعد تشغيل Cursor |
| لم يُعثر على أي اجتماع | شغّل memo workspace list وانتقل إلى مساحة العمل الصحيحة بالأمر memo workspace set |
| أمر يقول إن الرصيد نفد | هذا الإجراء يحتاج إلى اشتراك أو Coins |
memo يقول إن الاجتماع مقفل | لم يعد لدى مساحة العمل التي يتبع لها الاجتماع اشتراك أو Coins تغطّيه. أعِد الاشتراك أو Coins لتقرأه من جديد؛ وإن كان اجتماعاً شاركه معك شخص آخر، فعلى مالكه أن يفعل ذلك |
لماذا CLI وليس خادم MCP؟
استخدم CLI في الوقت الحالي. يضيف Cursor خوادم MCP البعيدة في mcp.json، وتصف وثائقه طريقتين لتسجيل الدخول إليها: dynamic client registration، أو client ID يعطيك إياه المزوّد. وخادم Meeting.ai على العنوان https://mcp.meeting.ai/mcp لا يوفّر أياً منهما. فهو يستخدم طريقة ثالثة، هي Client ID Metadata Documents، ولا تذكرها وثائق MCP لدى Cursor. لم نتأكد من أن Cursor يستطيع تسجيل الدخول، ولذلك لا يسلك هذا الدليل ذلك الطريق.
كيف تلغي ربط Meeting.ai بـ Cursor؟
شغّل memo auth logout لإنهاء الجلسة، وmemo install-skill-md --uninstall لإزالة ملف المهارة. ولإنهاء الجلسة من جهة Meeting.ai، افتح الإعدادات › MCP & CLI وألغِ وصولها. ويسري الإلغاء فوراً.
ابدأ بسؤال واحد
شغّل الأمرين أعلاه واسأل Agent عن قرار توشك أن تغيّره. وتجد في صفحة Meeting.ai CLI أمر التثبيت نفسه، ويشرح دليل CLI الأوامر بتفصيل أكبر.
أدلة الأدوات الأخرى:
- وكلاء برمجة يتصلون عبر MCP: Claude Code وCodex
- وكلاء تشغّلهم بنفسك، عبر
memoأيضاً: OpenClaw وHermes Agent - مساعدو الدردشة: ChatGPT وClaude





