وكلاء الذكاء الاصطناعي وMCP

خادم MCP، وخطافات الوكلاء، وسجل شبكة الوكلاء، ومهارات الوكلاء، وإبقاء الـ Mac مستيقظًا.

تجد الإعداد خطوة بخطوة لـ Claude Code وCodex وCursor وGemini CLI وClaude Desktop وWindsurf وCline وZed وHermes Agent وOpenClaw وOpenCode وGitHub Copilot CLI وأي عميل MCP في إعداد Kilobat في وكيل الذكاء الاصطناعي.

أعطِ هذا الطلب لوكيل مثل Claude Code أو Codex أو Cursor:

Install the Kilobat CLI with `brew install seifip/kilobat/kilobat`. Run `kilobat diagnose --json`, `kilobat status --json` and `kilobat scan --json`, then tell me what is slowing my connection and how to fix it. Ask me before changing DNS, profiles or rules.

خادم MCP

يتحدث kilobat mcp بروتوكول Model Context Protocol عبر stdio. أضفه إلى Claude Code:

claude mcp add kilobat -- kilobat mcp

أو أضفه إلى أي عميل يقرأ إعداد mcpServers:

{ "mcpServers": { "kilobat": { "command": "kilobat", "args": ["mcp"] } } }

أدوات القراءة فقط: get_status، diagnose_network، diagnose_connection، get_conditions، get_updaters، get_uploads، get_data_pack، get_wifi، scan_wifi، suggest_wifi_channel، get_usage_report، compare_usage، get_app_bandwidth، get_access_policy، get_network_history، list_sessions، agent_network_log (كل مضيف اتصل به وكيل وأوامره)، benchmark_dns، check_url، list_connections، list_devices، trace_route، get_route_history، compare_speed_tests، get_exit_path (يسأل Cloudflare عن عنوان IP العام فقط عندما يمرّر الوكيل public_ip)، check_vpn_leaks (اختبار التسريب الذي يستعلم من خدمات خارجية)، list_networks، get_fastest_dns (أسرع DNS لكل شبكة من تشغيلات التطبيق الهادئة)، list_rules، list_approvals، list_blocked_connections، explain_verdict (كل قاعدة تطابق مضيفًا أو تطبيقًا والقاعدة الحاسمة)، check_host_reputation (ما إذا كان المضيف في قائمة برامج ضارة أو تصيّد أو احتيال أو تتبّع، ويُفحص ذلك على هذا الـ Mac)، get_protection_status، run_stutter_test وget_game_ping (ترسل طلبات قياس الاستجابة فقط)، get_nearby_radios، get_captive_portal (صفحة تسجيل دخول Wi-Fi، مثل kilobat portal --json)، service_status (يستعلم من صفحات الحالة العامة للخدمات المسماة أو التطبيقات الجارية) وcreate_support_report (التقرير لمزوّد الخدمة الذي يسلّمه الوكيل إليك). تعيد الأدوات JSON نفسه الذي يعيده CLI. يستخدم run_speedtest البيانات، وينقل run_lan_test بيانات على شبكتك لخمس ثوانٍ ويسألك أولًا، ويمنع keep_awake وrelease_awake سكون الخمول لمدة محددة دون تغيير الإعدادات؛ ويُبقي keep_awake مع lid_closed الـ Mac يعمل والغطاء مغلق أيضًا بعد سماحك، ويسألك أولًا. أدوات التغيير (set_profile، set_app_rule، set_new_app_mode، decide_approval، block_destination، set_budget، set_data_pack، set_app_quota، set_network_cost، set_updater_pause، set_kill_switch، set_protection الذي يخبر الوكيل أيضًا بألا يوقف الحماية لتمرير طلبه، hold_upload الذي يعلّق رفع تطبيق آخر، set_dns الذي يمسح ذاكرة التخزين المؤقت أيضًا، set_fastest_dns، set_dns_fallback وset_airdrop_visibility الذي يفتح إعدادات AirDrop) موسومة كتغييرات، وتطلب أوصافها من الوكيل سؤالك أولًا.

ربط الوكلاء

من دون مساعدة، يعتمد Kilobat على حركة بيانات الوكيل واستخدامه للمعالج، لذا قد يكون الوكيل الهادئ قد انتهى أو ينتظر ردك. تخبر الخطافات Kilobat بالمشروع الذي ينتمي إليه التشغيل، ومتى ينتظرك ومتى ينتهي. يشغّل كل خطاف kilobat agent-event، الذي لا يطبع شيئًا ويعود فورًا وينتهي دائمًا بالرمز 0، فلا يعطّل الوكيل. إذا لم يكن التطبيق يعمل، تنتظر الأحداث في ملف صغير يقرأه عند فتحه. يقرأ Kilobat معرّفات الجلسات والمجلدات ونصوص الحالة القصيرة، ولا يقرأ المطالبات أو الردود. ادمج هذه الخطافات مع أي خطافات تستخدمها بالفعل.

Claude Code، في ~/.claude/settings.json. يتلقى كل خطاف JSON على stdin يتضمن معرّف الجلسة والمجلد، ويقرأه --stdin-json. تعني مطالبة الإذن أو الإدخال أن الوكيل ينتظر؛ وتعني Stop انتهاءه بعد اكتمال مهام الخلفية؛ أما حد المعدل فيعني الانتظار حتى إعادة ضبطه.

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "Notification": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "Stop": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "StopFailure": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }],
    "SessionEnd": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent claude --stdin-json" }] }]
  }
}

Codex، الطريقة الأبسط: notify في ~/.codex/config.toml. يمرر Codex وسيطة JSON بعد كل دور، ويقرأها --json-arg. لا يبلّغ هذا إلا عن الانتهاء، ويشغّل Codex برنامج notify واحدًا.

notify = ["kilobat", "agent-event", "done", "--agent", "codex", "--json-arg"]

للإبلاغ عن الانتظار أيضًا، استخدم خطافات Codex في ~/.codex/hooks.json بدلًا من ذلك، وامنحها الثقة باستخدام /hooks:

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }],
    "PermissionRequest": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }],
    "Stop": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent codex --stdin-json" }] }]
  }
}

Gemini CLI، في ~/.gemini/settings.json. يعمل Gemini CLI باسم node، لذا لا يستطيع Kilobat ربط حركة بياناته بالتشغيل، لكنه يتلقى الحالة.

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }],
    "BeforeAgent": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }],
    "Notification": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }],
    "AfterAgent": [{ "hooks": [{ "type": "command", "command": "kilobat agent-event --agent gemini --stdin-json" }] }]
  }
}

Cline (CLI وSDK وKanban): ثبّت إضافة Kilobat، التي تضيف ملفًا واحدًا إلى مخزن إضافات Cline ولا تغيّر أي إعدادات أخرى. يزيلها cline plugin uninstall kilobat.

cline plugin install https://kilobat.app/agents/cline/kilobat.ts

تبلّغ الإضافة عن التشغيل أثناء العمل أو عند الانتهاء أو الفشل مع بقاء Cline مفتوحًا أو الإلغاء أو بلوغ حد المعدل بعد استنفاد محاولات Cline، وكذلك عند انتظار إجابتك على سؤال من Cline. تنتظر الوكلاء الفرعيين وأعضاء الفريق قبل اعتبار التشغيل منتهيًا. لا ترى الإضافات مطالبات موافقة Cline، لذا يغطيها كشف حركة البيانات واستخدام المعالج.

يمكن لأي وكيل آخر استدعاء kilobat agent-event start|working|waiting|done|failed --agent <name> --session <id> --cwd <folder> من خطافاته. أضف --verbose لرؤية ما حدث عند تجربته يدويًا.

سجل شبكة الوكيل

أثناء عمل Claude Code أو Codex أو Cursor أو Gemini CLI أو Aider أو Windsurf أو Claude Desktop أو ChatGPT أو وكيل آخر، يسجّل Kilobat كل مضيف اتصل به هو والعمليات التي يبدأها: npm وpip وuv وcurl وgit وbrew وخوادم MCP، حتى عند وجود shell بينهما. تسرد كل جلسة، منذ بدء عملية الوكيل وحتى خروجه وخروج كل ما بدأه، المضيفين حسب العملية المتصلة، والأكثر إرسالًا أولًا، مع المنفذ والبروتوكول وأول وآخر ظهور والبايتات المرسلة والمستقبلة وعدد الاتصالات ومجلد المشروع الذي عمل فيه الوكيل. يوجد السجل في السجل ‹ سجل شبكة الوكلاء، وتعرض القائمة سطرًا أثناء عمل الوكيل، مثل «Claude Code · 14 مضيفًا · 2.1 MB رفع». يضع «نسخ كـ Markdown» جدول الجلسة في الحافظة لاستخدامه في بلاغ مشكلة أو مراجعة.

تشير العلامات إلى ما يستحق نظرة أخرى، ولا تعني وجود خطأ: المرة الأولى (لم يتصل أي وكيل على هذا الـ Mac بالمضيف من قبل؛ لا تُسمّى السجلات المعروفة مثل registry.npmjs.org وpypi.org وgithub.com وخدمة الوكيل نفسه جديدة أبدًا)، وHTTP عادي (المنفذ 80)، ورفع كبير (أكثر من 10 MB إلى مضيف واحد غير خدمة الوكيل نفسه، فلا يُعلّم إرسال Claude Code سياقه إلى Anthropic)، وعنوان فقط (اسم المضيف مجهول)، ومشاركة أو نفق (قائمة قصيرة لمواقع اللصق ومشاركة الملفات مثل transfer.sh والأنفاق مثل ngrok وtrycloudflare.com ومستقبِلات الطلبات مثل webhook.site). يعرض «المعلّم فقط» هذه العناصر وحدها.

كيف يعمل: يقرأ Kilobat بالفعل إحصاءات شبكة macOS لكل اتصال كل ثانية (مثل nettop) مع عملية كل اتصال. يتعرف على الوكلاء من ملفاتهم التنفيذية أو الحزمة التي يشغّلها مفسّر (node …/@openai/codex، python3 -m aider) أو ملف التطبيق التنفيذي، ويتتبع شجرة عمليات كل وكيل: تخبره النواة لحظة تفرّع عملية في الشجرة، فيُدرج curl الذي يعمل عُشر ثانية أثناء عمله، وتبقى العمليات المنقولة إلى launchd تابعة للوكيل. يفوز أقرب وكيل، لذا فإن Claude Code المشغّل في Terminal الخاص بـ Cursor يتبع Claude Code. تأتي أسماء المضيفين من مرشح شبكة Kilobat عندما يكون مفعّلًا (الاسم الذي طلبه التطبيق)، أو من البحث عن مضيفي المطورين المعروفين والمضيفين في عناوين curl أو git للوكيل بمحلّل الـ Mac ومطابقة العناوين، أو من DNS العكسي، الذي يُعلّم لأنه اسم الخادم لا الاسم الذي طلبه التطبيق. دون أي من ذلك يعرض الصف العنوان.

ما لا يراه: حركة البيانات التي تنشئها خدمات macOS نيابةً عن عملية (تمر استعلامات DNS عبر mDNSResponder والتنزيلات عبر nsurlsessiond)، وحاويات Docker والأجهزة الافتراضية (تخرج حركتها عبر عملية Docker أو الجهاز الافتراضي نفسه)، والوكلاء داخل محرر يعملون في مضيف امتداداته، مثل Cline أو Copilot في VS Code، إذ لا يمكن تمييزهم عن المحرر. في Cursor وWindsurf تُحتسب الأوامر التي تكتبها في Terminal الخاص بهما ضمن التطبيق. يُحتسب الاتصال الذي يفتح ويغلق بين عينتين يفصل بينهما ثانية ضمن بايتات الجلسة دون مضيف. وقد تفوت عملية تبدأ وتنتهي قبل معالجة إشعار إنشاء العملية من النواة. يُسجّل السجل مع Kilobat Pro على هذا الـ Mac فقط، في ~/Library/Application Support/Kilobat/agent-network-log.json، ويُحتفظ به 30 يومًا ولا يُرسل إلى أي مكان؛ ويتيح «مسح» حذف الساعة الأخيرة أو اليوم أو الكل.

عند تشغيل الحماية، تظهر أيضًا في الجلسة الاتصالات التي رفضها Kilobat، معلّمة بأنها محظورة مع القائمة أو قاعدة حماية الوكلاء، رغم أنها لم تنقل أي بيانات.

في Terminal، يطبع kilobat agent-log أحدث جلسة، أو جلسة الوكيل نفسه عندما يشغّله وكيل؛ وتضيّق الخيارات --all و--since 2h و--agent claude و--flagged و--json النتائج. القراءة مجانية، ويسجل kilobat agent-log --watch البيانات مباشرة في Terminal دون التطبيق أو Pro ودون حفظ أي شيء. يستدعي الوكلاء أداة MCP للقراءة فقط agent_network_log، التي تعيد جلستهم الخاصة عند عدم تمرير وسائط، ليتحقق الوكيل مما اتصلت به عملية تثبيت شغّلها.

مسح السجل أو نسيان موقع

في الإعدادات ‹ البيانات والخصوصية، يزيل نسيان موقع مضيفًا من المحاولات المحظورة وسجل شبكة الوكلاء ووجهات تشغيل الوكلاء وجلسات التنبيه وذاكرة إشعارات الحماية. ضمّن النطاقات الفرعية لإزالة أسماء مثل www.example.com أيضًا. يزيل مسح سجل المواقع السجلات نفسها للساعة الأخيرة أو منذ منتصف الليل أو بالكامل. وللمحاولات المحظورة وسجل شبكة الوكلاء قائمات مسح خاصة أيضًا؛ وتتيح قائمة سياق صف المضيف نسيانه. يحافظ مسح السجل على قواعدك وإعدادات الحماية. وقد يُسجّل النشاط المستقبلي مجددًا.

في Terminal، استخدم kilobat history forget example.com --subdomains --json أو kilobat history clear --hour (ويتاح أيضًا --today و--all). يطلب الأمر من التطبيق محو سجلاته الحية عند تشغيله، أو يعدّل السجلات المحفوظة عند إغلاقه. يفعل MCP clear_history الشيء نفسه فقط عندما تطلب من الوكيل محو السجل. لا يمكن التراجع عن الحذف؛ وتعرض النتيجة عدد الإدخالات المحذوفة من كل سجل.

عندما يكون تطبيق في المقدمة

للقراءة أو العرض، يبقي خيار «أثناء وجود تطبيق في المقدمة» في فنجان الشاي الـ Mac مستيقظًا فقط عندما يكون التطبيق الذي تختاره في المقدمة، ويسمح له بالسكون فور انتقالك عنه. يحدد «إبقاء الشاشة مضاءة» في فنجان الشاي ما إذا كانت الشاشة ستبقى مضاءة أيضًا، كما يفعل مع كل ما يبقيه Kilobat مستيقظًا. يتبع Kilobat أحداث تبديل التطبيقات الخاصة بـ macOS: لا يستطلع أو يحرك الفأرة أو يصطنع نشاطًا، فلا يمكنه إظهارك حاضرًا لبرامج المراقبة. ينتهي عند إغلاق التطبيق أو إيقاف الخيار أو وصول البطارية إلى 20% (أو الحد الذي ضبطته للتشغيل مع إغلاق الغطاء)، ولا يبقي الغطاء مغلقًا. له تعليق مستقل، لذلك لا ينهي تبديل التطبيقات أو إغلاق التطبيق جلسة إبقاء الجهاز مستيقظًا أو تشغيل الوكيل. من Terminal: kilobat awake --while-frontmost Keynote --display.

أثناء الاتصال بالطاقة

فعّل «الإبقاء مستيقظًا أثناء الاتصال بالطاقة» (الإعدادات ‹ الاستيقاظ والوكلاء)، أو «أثناء الاتصال بالطاقة» في قائمة فنجان الشاي، فيبقي توصيل محول الطاقة جهاز Mac مستيقظًا حتى تفصله، كما يوضح الشريط «مستيقظ أثناء الاتصال بالطاقة». يحدد خيار إبقاء الشاشة قيد التشغيل ما إذا كانت الشاشة ستبقى مضاءة أيضًا. إذا أوقفته، يبقى متوقفًا حتى توصل الطاقة مجددًا، حتى إذا أُعيد تشغيل Kilobat. يتلقى Kilobat التغيير من إشعار مصدر الطاقة في macOS دون استطلاع متكرر. لا يؤدي فصل الطاقة إلا إلى إنهاء الجلسة التي بدأها توصيلها: تستمر الجلسة التي بدأتها بنفسك أو تنزيل تنتظره أو تطبيق في المقدمة أو تشغيل وكيل أو إبقاء مستيقظ من Terminal. لا يبقي Mac قيد التشغيل والغطاء مغلق. من Terminal: kilobat settings awake-on-power on، وkilobat settings keep-screen-on on للشاشة؛ يعرضه kilobat conditions --json باسم awakeOnPower.

التشغيل والغطاء مغلق

يؤدي إغلاق الغطاء إلى إدخال Mac في السكون حتى عندما يبقيه Kilobat مستيقظًا، ما لم تسمح بالتشغيل والغطاء مغلق في الإعدادات ‹ الاستيقاظ والوكلاء. يثبّت ذلك برنامجًا مساعدًا صغيرًا يعمل بصلاحيات root؛ ويطلب macOS السماح به في إعدادات النظام ‹ عام ‹ عناصر تسجيل الدخول. عند تفعيله، يُبقي تشغيل الوكيل النشط Mac قيد التشغيل والغطاء مغلق، وكذلك جلسة الإبقاء مستيقظًا عند تحديد «والغطاء مغلق أيضًا» في قائمة فنجان الشاي. لا يبقيه الوكيل الذي ينتظرك مستيقظًا إلا عند تفعيل «الإبقاء مستيقظًا أثناء انتظار الوكيل»، ولمدة 30 دقيقة كحد أقصى.

قد يسخن Mac المغلق داخل حقيبة وتنفد بطاريته، لذلك يسمح البرنامج المساعد نفسه بدخوله السكون عند بلوغ حد البطارية الذي حددته (20% افتراضيًا)، أو ارتفاع حرارته، أو فور فصل الطاقة إذا اخترت التشغيل بالطاقة فقط، أو بعد أطول مدة حددتها (8 ساعات كحد أقصى)، أو بعد دقيقة من إنهاء Kilobat. إذا أُعيد تشغيل البرنامج المساعد أو Mac أثناء الإبقاء مستيقظًا، فإنه يعيد الإعداد أولًا. يعرض Kilobat كيفية انتهاء كل جلسة، مثل «السماح لـ Mac بالسكون: البطارية عند 20%».

من Terminal، يطلب kilobat awake --lid-closed من التطبيق الإبقاء مستيقظًا بالطريقة نفسها ويذكر السبب عند التعذر؛ وينتهي الإبقاء بانتهاء الأمر. تستخدم الوكلاء keep_awake مع lid_closed، ويطلب وصفه منها تأكيد ذلك معك أولًا. يعرض kilobat conditions --json القيمة lidClosedAllowed والقيمة الحالية lidHold.

مهارات الوكيل

تعلّم تسع مهارات وكلاء البرمجة كيفية استكشاف مشكلات شبكة Mac وإصلاحها ومواصلة العمليات الطويلة باستخدام Kilobat. تفسّر القياسات وتوضح ما هو غير مؤكد وتطلب الإذن قبل تغيير الإعدادات. ثبّتها معًا؛ توجّه مهارة kilobat الوكيل إلى المهارة المناسبة.

npx skills add seifip/kilobat-skills
kilobatابدأ هنا. الإعداد وقواعد الأمان والمهارة المناسبة للسؤال.
mac-network-troubleshootingإنترنت بطيء أو غير موثوق لسبب غير واضح: يعثر على الطبقة المتعطلة.
mac-wifi-troubleshootingإشارة Wi-Fi ضعيفة أو متقطعة، والقنوات المزدحمة، وأفضل موقع لـ Mac أو الموجّه.
mac-hotspot-data-saverنقاط اتصال الهاتف وحدود البيانات: ما يستخدم البيانات وملف السفر والميزانيات.
mac-dns-troubleshootingعمليات البحث البطيئة ومقارنة المحللات وتبديل DNS وبوابات تسجيل الدخول.
video-call-network-checkتقطع المكالمات وبث الألعاب: ارتفاعات زمن الاستجابة والتذبذب والفقد وامتلاء المخزن المؤقت وعمليات الرفع في الخلفية.
mac-bandwidth-monitorالتطبيقات التي تستخدم الاتصال وسجل الاستخدام والجهات التي تتصل بها.
mac-app-firewallحظر التطبيقات والنطاقات وعناوين IP أو السماح بها؛ والسؤال عن التطبيقات الجديدة والرد عليها.
mac-agent-runsعمليات الوكيل الطويلة: إبقاء Mac مستيقظًا وفحص الظروف وربط خطافات الوكيل ومعرفة متى انتهى التشغيل أو انتظرك أو تعثر.

ثبّت Kilobat CLI بشكل منفصل باستخدام أمر Homebrew أعلاه، أو صِل خادم MCP الخاص به. يتطلب CLI نظام macOS 14 أو أحدث؛ ويتطلب البناء من مصدر Homebrew إصدار Xcode 16 أو أحدث. راجع المهارات على skills.sh أو اقرأ مصدرها ومراجعها.

Siri والاختصارات

اسأل Siri عن اتصالك فيجيب Kilobat من فحوصاته بجملة أو اثنتين مع بطاقة بالأرقام. اذكر اسم التطبيق في السؤال، كما يتطلب Siri: يؤدي قول «لماذا الإنترنت بطيء في Kilobat؟» إلى فحص جديد يحدد السبب، مثل «Wi-Fi لديك جيدة؛ خط مزوّد الخدمة يفقد 4% من الحزم منذ 9:05 مساءً. التفاصيل في تقرير المزوّد». والأسئلة الأخرى هي: «هل اتصالي جيد في Kilobat؟»، و«لماذا تجمّدت مكالمتي في Kilobat؟» (آخر تقرير مكالمة)، و«هل Slack متعطل في Kilobat؟» (لأي خدمة يقرأ Kilobat صفحة حالتها، أو «هل تطبيقاتي متعطلة في Kilobat؟» للتطبيقات التي تستخدمها)، و«ما الذي يستخدم الإنترنت في Kilobat؟»، و«كم بيانات استخدمت في Kilobat؟»، و«هل أنا مستعد لمكالمتي في Kilobat؟»، و«هل يسرّب VPN بيانات في Kilobat؟»، و«اختبر السرعة باستخدام Kilobat». تعمل الأسئلة نفسها من Spotlight، وكل منها إجراء في تطبيق الاختصارات يمرّر إجابته إلى الخطوة التالية: حالة الشبكة وسببها وزمن الاستجابة والفقد؛ أو تقرير المكالمة؛ أو الخدمات وما إذا كانت تبلّغ عن انقطاع؛ أو حجم بيانات اليوم. يمكن لإجراء «استخدام النموذج» في الاختصارات تمرير هذه النتائج إلى Apple Intelligence. دون Kilobat Pro، يوضح Siri المشكلة وقياسات الخط وعدد مرات تجمّد المكالمة وما إذا كانت الخدمة متعطلة؛ ويضيف Pro السبب وما يمكن فعله. تعتمد الاختصارات الجاهزة على الإجراءات نفسها.