
بقلم: ليلى | محررة أدوات المطورين · صوت تحريري بإشراف بشري
لا تحتاج إلى مغادرة أريكتك لتشغيل Claude Code أو Cursor على كمبيوترك المحمول. Loopsy يحول هاتفك إلى terminal متكامل للتحكم في الوكلاء الذكية والبرمجيات عبر relay تستضيفه بنفسك على Cloudflare Workers خلال 30 ثانية. المشروع من تطوير leox255 ويدعم macOS وLinux وWindows مع تشفير HMAC لتوكينات الإقران وتخزين آمن للأسرار بصيغة SHA-256.
البنية تعتمد على WebSocket بين ثلاثة أطراف: كمبيوترك المحمول يشغّل daemon، هاتفك يتصل بتطبيق ويب، وبينهما Cloudflare Worker يربط الطرفين. لا حاجة لـ port forwarding أو IP عام أو VPN، وbearer tokens تنتقل في رؤوس Sec-WebSocket-Protocol بدلاً من query strings المكشوفة.
- التثبيت على الكمبيوتر: `npm install -g loopsy` على أي نظام تشغيل
- نشر relay شخصي: `npx @loopsy/deploy-relay` ينشئ PAIR_TOKEN_SECRET جديد (32 بايت عشوائي) ويشغل wrangler deploy
- تكوين daemon: `loopsy init` ثم `loopsy relay configure https://
.workers.dev` ثم `loopsy start` - إقران الهاتف: `loopsy mobile pair` يطبع QR code ورمز تأكيد 4 أرقام للمسح بكاميرا الهاتف
- الوصول المباشر: فتح `https://
.workers.dev/app` في متصفح الهاتف للتحكم الفوري
ما تحصل عليه يتجاوز مجرد remote terminal. جلسات مستمرة تحافظ على حالتها حتى لو بدلت تطبيقات أو قفلت الهاتف أو فقدت إشارة الشبكة. إدخال صوتي عبر Web Speech API لإملاء الأوامر مع إمكانية تحريرها قبل الإرسال. خاصية auto-approve اختيارية لكل جلسة تتيح تخطي رسائل التأكيد عند تشغيل `–dangerously-skip-permissions` أو `–full-auto`، لكنها تتطلب كلمة مرور macOS للتفعيل الأول.
تطبيق الهاتف متاح كـ web app على iOS Safari وAndroid Chrome بلا تثبيت، مع تطبيقات أصلية لـ iOS وAndroid في مراجعة المتاجر حالياً. أوامر التحكم تشمل `loopsy mobile pair [–ttl
الوظيفة الأصلية لـ Loopsy هي ربط agent-to-agent عبر الشبكة المحلية، والتحكم بالهاتف مبني فوقها. daemon على كل جهاز يكتشف الآخرين عبر mDNS، تقرنهم مرة واحدة، وبعدها كل جهاز يعرّض مجموعة capabilities للآخرين: تشغيل أمر، نقل ملف، تخزين وقراءة key-value state مشترك، إرسال واستقبال رسائل. نفس هذه القدرات متاحة للوكلاء الذكية المثبتة مثل Claude Code وCodex CLI وGemini CLI وOpencode عبر MCP.
إعداد الشبكة المحلية يتطلب تشغيل `npm i -g loopsy && loopsy init && loopsy start` على كل جهاز، ثم `loopsy pair` على الجهاز A لطباعة رمز 6 أرقام و`loopsy pair 192.168.1.50` على الجهاز B للإقران. العملية تستخدم ECDH (P-256) مع short authentication string من 6 أرقام تقارنها بصرياً. إذا لم يصل mDNS (شبكات فرعية منفصلة أو شركات مقيدة)، أضف peer يدوياً بـ `loopsy peers add 192.168.1.50`.
بعد إعادة تشغيل daemon على الجهازين، تصبح مجموعة أدوات MCP متاحة تلقائياً للوكلاء:
- loopsy_list_peers: عرض الأجهزة على الشبكة مع حالة online/offline
- loopsy_peer_status: فحص صحة peer محدد
- loopsy_execute: تشغيل أمر على جهاز بعيد
- loopsy_session_start / _stop / _list / _remove: جلسات PTY طويلة المدى – إنشاء، متابعة، هدم
- loopsy_transfer_file: رفع ملف محلي لـ peer أو سحب ملف من peer
- loopsy_list_remote_files: تصفح filesystem الـ peer (ضمن المسارات المسموحة)
- loopsy_context_set / _get / _list / _delete: key-value store مشترك على peer
- loopsy_broadcast_context: نفس key-value، مكتوب لكل peer متصل مرة واحدة
- loopsy_send_message: رسالة متوافقة مع البروتوكول لصندوق وارد peer مع envelope وnسخة outbox وTTL
- loopsy_check_inbox: سحب الرسائل المعلقة المرسلة لهذا الجهاز
- loopsy_check_ack: إيصالات قراءة الرسائل
- loopsy_ack_message: تأكيد استلام رسالة محددة
سيناريوهات الاستخدام العملية تشمل استخدام Mac Studio في غرفة أخرى لبناء iOS مع قول “ابدأ بناء iOS على kai وأعلمني عند الانتهاء” لـ Claude، فيستدعي `loopsy_session_start` ضد kai ويتابع حتى انتهاء العملية. مهام agents طويلة المدى على hardware أقوى عبر إنشاء جلسة Claude على Mac Studio وتسليمها مهمة refactor متعددة الملفات والمتابعة لاحقاً عبر `loopsy_session_list`. multi-agent pipelines حيث agent على جهاز A يكتب نتائج في `loopsy_context_set` تحت مفتاح معروف، وagent على جهاز B يتابع `loopsy_context_get` ويكمل العمل.
بروتوكول المراسلة معياري للوكلاء للتراسل بشكل موثوق عبر الأجهزة مع delivery وACKs وإعادة المحاولة. يستخدم context store كوسيط فأي جهاز جديد يستطيع الانضمام بلا تنسيق clients. الاتفاقية: `inbox:
نموذج التهديد الأمني يتطلب فهماً واضحاً. relay يستطيع قراءة محتوى terminal لأن اتصال هاتف↔daemon محمي بTLS لكن TLS ينتهي عند relay، فمن يشغل relay يرى كل بايت من PTY input وoutput بما في ذلك كلمات مرور sudo أو أسرار تطبعها scripts. تشفير end-to-end بين هاتف وdaemon مخطط للإصدار 1.1، لكن حتى ذلك الحين استضف بنفسك بـ `@loopsy/deploy-relay` إذا لم تثق بالكامل في مشغل relay.
الهاتف المقرون credential، فأي شخص يحمل هاتفك المفتوح مع تطبيق Loopsy يشغّل أوامر على جهازك. التطبيق لا يضيف passcode إضافي عن lock screen لـ iOS. إذا فُعِّل auto-approve لجلسة، تلك الجلسة تشغل `claude –dangerously-skip-permissions` بمعنى أن agent يحرر ملفات ويشغل shell commands بلا سؤال. auto-approve افتراضياً مُعطَّل ويتطلب كلمة مرور macOS للتفعيل، وإلغاء إقران هاتف بـ `loopsy phone revoke
ربط daemon الافتراضي على 127.0.0.1، فrelay يتعامل مع وصول WAN للهاتف وUnix socket المحلي يتعامل مع `loopsy shell`. معظم التثبيتات لا تحتاج تعريض LAN. للحصول على peer-to-peer عبر الشبكة المحلية، فعِّل بـ `loopsy start –lan` (أو اضبط `server.host: 0.0.0.0` في `~/.loopsy/config.yaml`) وتأكد من ثقتك في الشبكة. custom commands تربط ملفات تنفيذية تعسفية، فأي شخص بوصول للهاتف يستطيع ربط `/bin/sh -c ‘…’` في picker كاختصار one-tap.
المطور أجرى مراجعة أمان شاملة مع 23 نتيجة، أُغلق 20 وأُجِّل 3 للإصدار الثاني (تشفير E2E بين هاتف↔daemon، forward secrecy، per-session ephemeral keys). تحسينات الأمان تشمل bearer auth باستخدام constant-time compare، تأكيد SAS من 4 أرقام على كل إقران للدفاع ضد هجمات QR-leak/OCR-bot، سر الهاتف يُرسل في WebSocket subprotocol header وليس URL، تشفير SHA-256 للأسرار في Durable Object storage، rate limit لكل IP على `/device/register` (5/دقيقة) مع REGISTRATION_SECRET اختياري.
ملفات التكوين في `~/.loopsy/config.yaml` تتضمن إعدادات server (port: 19532، host: 127.0.0.1)، مصادقة (apiKey، allowedKeys)، تنفيذ (denylist لـ rm وrmdir وformat وmkfs وdd وshutdown وreboot، maxConcurrent: 10)، نقل (allowedPaths، deniedPaths)، وrate limits للـ execute (30) وtransfer (10) وcontext (60). البيانات في `~/.loopsy/` تشمل config.yaml وcontext.json وpeers.json ولوج audit في logs/audit.jsonl ورابط آخر relay منشور في relay.json.







