
moltis v20260818.08
خادم وكيل شخصي مستمر وآمن بلغة Rust. ملف ثنائي واحد، تنفيذ معزول (sandboxed)، نماذج لغوية كبيرة من عدة موفري خدمات، صوت، ذاكرة، أدوات تلغرام وواتساب وديسكورد وتيمز وMCP. آمن بتصميمه، يعمل على أجهزتك.
Moltis — خادم وكيل شخصي آمن ودائم مكتوب بلغة Rust
ملف ثنائي واحد — معزول، آمن، ملكك.
التثبيت • المقارنة • البنية • الأمان • الميزات • كيف يعمل • المساهمة
وصل Moltis مؤخرًا إلى الصفحة الأولى من Hacker News. يُرجى فتح مشكلة لأي عائق على الإطلاق. أنا مركّز على جعل Moltis ممتازًا.
آمن بالتصميم — مفاتيحك لا تغادر جهازك أبدًا. كل أمر يعمل داخل حاوية معزولة، وليس على مضيفك.
أجهزتك الخاصة — يعمل على Mac Mini أو Raspberry Pi أو أي خادم تملكه. ملف Rust ثنائي واحد، بدون Node.js، بدون npm، بدون بيئة تشغيل.
كامل الميزات — الصوت، الذاكرة، الاسترجاع عبر الجلسات، نقاط تفتيش تلقائية للتحرير، الجدولة، Telegram، Signal، Discord، أتمتة المتصفح، خوادم MCP، التنفيذ عن بُعد عبر SSH أو node، مفاتيح نشر مُدارة مع تثبيت المضيف في واجهة الويب، جرد مباشر للأدوات في الإعدادات، سياق مشروع متوافق مع Cursor، وفحص تهديدات ملفات السياق — كل ذلك مدمج. لا يوجد سوق إضافات يمكن مهاجمته عبر سلسلة التوريد.
قابل للتدقيق — مشغّل الوكيل وواجهة النموذج يتناسبان في ~7.5K سطر، مع مزودين في ~19K سطر إضافي. مساحة عمل Rust تبلغ ~270K سطر عبر 59 crate معيارية يمكنك تدقيقها بشكل مستقل، مع أكثر من 470 ملف Rust يحتوي على اختبارات. كود unsafe معزول إلى حدود FFI وحدود وقت التشغيل المترجمة مسبقًا، وليس إلى حلقة الوكيل الأساسية.
التثبيت
# سكربت تثبيت بسطر واحد (macOS / Linux)
curl -fsSL https://www.moltis.org/install.sh | sh
# macOS / Linux عبر Homebrew
brew install moltis-org/tap/moltis
# Docker (متعدد البنى: amd64/arm64)
docker pull ghcr.io/moltis-org/moltis:latest
# أو البناء من المصدر
cargo install moltis --git https://github.com/moltis-org/moltis
المقارنة
| OpenClaw | Hermes Agent | Moltis | |
|---|---|---|---|
| الحزمة الأساسية | TypeScript + تطبيقات مصاحبة Swift/Kotlin | Python + أسطح TUI/ويب TypeScript | Rust |
| بيئة التشغيل | Node.js + npm/pnpm/bun | Python + uv/pip، أجزاء واجهة Node اختيارية | ملف Rust ثنائي واحد |
| حجم النسخة المحلية* | ~1.1M سطر تطبيق | ~152K سطر تطبيق | ~270K سطر Rust |
| البنية | نظام بيئي واسع من البوابات والقنوات والعقد والتطبيقات | وكيل CLI/بوابة مع حلقة تعلم وأدوات بحث | خادم وكيل شخصي دائم مع crate معيارية |
| Crates/الوحدات | حزم npm، إضافات، تطبيقات | حزم Python، إضافات، أدوات، TUI | 59 crate في مساحة عمل Rust |
| العزل/الخلفيات | أذونات على مستوى التطبيق، أدوات متصفح/عقدة | محلي، Docker، SSH، Daytona، Singularity، Modal | Docker/Podman + Apple Container + WASM |
| المصادقة/الوصول | الاقتران وضوابط البوابة المحلية | إعداد CLI وبوابة الرسائل | كلمة مرور + Passkey + مفاتيح API + Vault |
| الإدخال/الإخراج الصوتي | أوضاع التنبيه الصوتي والمحادثة | نسخ المذكرات الصوتية | مزودو STT + TTS مدمجون |
| MCP | دعم الإضافات/التكامل | تكامل MCP | stdio + HTTP/SSE |
| المهارات | مهارات مدمجة ومدارة ومساحة عمل | مهارات ذاتية التحسين ودعم Skills Hub | مهارات مدمجة/مساحة عمل + تحسين ذاتي + استيراد OpenClaw |
| الذاكرة/RAG | ذاكرة ومحرك سياق مدعومان بالإضافات | ذاكرة منسقة بواسطة الوكيل، بحث في الجلسات، نمذجة المستخدم | SQLite + FTS + ذاكرة متجهية |
* قياس LoC باستخدام tokei، باستثناء node_modules، ومخرجات البناء المولدة، وdist، وtarget.
البنية — خريطة Crates
مساحة عمل Rust الحالية: ~270K LoC عبر 59 crate. الجدول أدناه يجمع crates الرئيسية حسب الدور بحيث تبقى البنية قابلة للمسح.
النواة الأساسية:
| Crate | LoC | الدور |
|---|---|---|
moltis-gateway | 37.4K | خادم HTTP/WS، RPC، مصادقة، ربط الإقلاع |
moltis-tools | 37.0K | تنفيذ الأدوات، العزل، أدوات WASM |
moltis-providers | 18.9K | تطبيقات مزودي LLM |
moltis-agents | 14.5K | حلقة الوكيل، البث، تجميع المطالبات |
moltis-chat | 14.2K | محرك الدردشة، تنسيق الوكيل |
moltis-config | 10.3K | الإعدادات، التحقق |
moltis-httpd | 9.9K | أساسيات خادم HTTP والوسائط |
moltis (CLI) | 4.7K | نقطة الدخول، أوامر CLI |
moltis-sessions | 3.5K | استمرارية الجلسات |
moltis-common | 1.5K | أدوات مشتركة |
moltis-service-traits | 1.2K | واجهات خدمة مشتركة |
moltis-protocol | 0.7K | أنواع بروتوكول الاتصال |
Crates الميزات والتكامل:
| الفئة | Crates | LoC المجمعة |
|---|---|---|
| القنوات | moltis-telegram, moltis-whatsapp, moltis-signal, moltis-discord, moltis-msteams, moltis-matrix, moltis-slack, moltis-nostr, moltis-channels | 34.0K |
| الويب وواجهات API | moltis-web, moltis-graphql, moltis-webhooks | 10.8K |
| قابلية التوسع | moltis-mcp, moltis-mcp-agent-bridge, moltis-skills, moltis-plugins | 11.5K |
| الذاكرة والسياق | moltis-memory, moltis-qmd, moltis-code-index, moltis-projects | 11.7K |
| الصوت والمتصفح | moltis-voice, moltis-browser | 9.2K |
| المصادقة والأمان | moltis-auth, moltis-oauth, moltis-vault, moltis-secret-store, moltis-network-filter, moltis-tls | 8.5K |
| الجدولة والأتمتة | moltis-cron, moltis-caldav, moltis-auto-reply | 4.7K |
| الإعداد والاستيراد | moltis-provider-setup, moltis-openclaw-import, moltis-onboarding | 11.7K |
| مضيفو Native وNode | moltis-swift-bridge, moltis-node-host, moltis-courier | 5.7K |
| أدوات WASM | moltis-wasm-precompile, moltis-wasm-calc, moltis-wasm-web-fetch, moltis-wasm-web-search | 1.4K |
| Crates الداعمة | moltis-media, moltis-metrics, moltis-tailscale, moltis-routing, moltis-canvas, moltis-schema-export, benchmarks | 2.1K |
استخدم --no-default-features --features lightweight للأجهزة المحدودة (Raspberry Pi، إلخ).
الأمان
- سطح unsafe صغير — كود الوكيل/البوابة الأساسي يبقى Rust آمنًا؛ unsafe معزول إلى Swift FFI، وأغلفة النماذج المحلية، وحدود WASM المترجمة مسبقًا
- تنفيذ معزول — Docker + Apple Container، عزل لكل جلسة
- معالجة الأسرار —
secrecy::Secret، تُصفَّر عند الإفلات، وتُحرَّر من مخرجات الأدوات - المصادقة — كلمة مرور + passkey (WebAuthn)، محدودة المعدل، مع خنق لكل IP
- حماية SSRF — محلولة عبر DNS، تمنع loopback/private/link-local
- التحقق من الأصل — يرفض ترقيات WebSocket عبر الأصول
- بوابة الخطافات — خطافات
BeforeToolCallيمكنها فحص/حظر أي استدعاء أداة - سلامة سلسلة التوريد — تصديقات القطع الأثرية، توقيع Sigstore بدون مفاتيح، توقيع GPG (YubiKey)، مجاميع SHA-256/SHA-512
راجع بنية الأمان للتفاصيل.
تحقق من الإصدارات باستخدام gh attestation verify <artifact> -R moltis-org/moltis أو راجع التحقق من الإصدارات.
الميزات
- بوابة الذكاء الاصطناعي — دعم متعدد المزودين لـ LLM (OpenAI Codex، GitHub Copilot، محلي)، استجابات بث، حلقة وكيل مع تفويض وكيل فرعي، أوضاع جلسات، تنفيذ أدوات متوازي
- الاتصال — واجهة ويب مع مطالبات وكيل بلوحة أوامر ونسخ/تصدير Markdown، Telegram، Signal، Microsoft Teams، Discord، Slack مع بطاقات أدوات حية أصلية، رسائل مباشرة Nostr + دردشة جماعية NIP-29 (بما في ذلك قنوات Buzz من Block)، وصول API، إدخال/إخراج صوتي (8 مزودي TTS + 7 مزودي STT)، PWA للجوال مع إشعارات دفع
- الذاكرة والاسترجاع — مساحات عمل ذاكرة لكل وكيل، ذاكرة طويلة المدى مدعومة بالتضمينات، بحث هجين متجهي + نص كامل، استمرارية جلسات مع ضغط تلقائي، استرجاع عبر الجلسات، سياق مشروع متوافق مع Cursor، فحص أمان ملفات السياق
- الملفات المُدارة — إدارة ملفات متداخلة موثقة في الإعدادات، مع مسار مضيف معلن بواسطة الوكيل وتركيبات مستقلة للقراءة فقط افتراضيًا لعزل Docker وPodman وApple Container
- تحرير وكيل أكثر أمانًا — نقاط تفتيش تلقائية قبل تحويرات المهارات والذاكرة المدمجة، أدوات استعادة، تفرع الجلسات
- قابلية التوسع — خوادم MCP (stdio + HTTP/SSE)، نظام مهارات، 15 حدث خطاف دورة حياة مع قاطع دائرة، حارس أوامر مدمرة
- بروتوكول عميل الوكيل — يقود وكلاء ACP خارجيين (
codex-acp,claude-agent-acp, Cursor)، ويخدم Moltis لعملاء ACP عبر stdio باستخدامmoltis acp - الأمان — Vault مشفر عند التخزين (XChaCha20-Poly1305 + Argon2id)، مصادقة كلمة مرور + passkey + مفتاح API، عزل الصندوق الرملي، حماية SSRF/CSWSH
- العمليات — جدولة Cron، CalDAV محلي دائم، Gmail، بريد Himalaya، ومجموعات بيانات رسائل Slack/Discord/Matrix/Teams قابلة لإعادة الاستخدام، أدوات وكيل للقراءة فقط خاصة بالمزود، بحث نص كامل سريع، إسقاطات JSONL/Markdown، أدوات قياس الوكيل (Langfuse لتتبعات LLM، OTLP لـ Grafana/Datadog)، مقاييس Prometheus، نشر سحابي (Fly.io، DigitalOcean)، تكامل Tailscale، مفاتيح نشر SSH مُدارة، أهداف عن بُعد مثبتة بالمضيف، جرد أدوات حي في الإعدادات، وتدفقات تشخيص تنفيذ عن بُعد CLI/ويب
كيف يعمل
Moltis هو خادم وكيل شخصي دائم محلي أولاً — ملف Rust ثنائي واحد يجلس بينك وبين مزودي LLM متعددين، يحافظ على حالة جلسة دائمة، ويمكنه مقابلتك عبر القنوات دون تسليم بياناتك إلى مرحّل سحابي.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Web UI │ │ Telegram │ │ Discord │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────┬───────┴────────┬───────┘
│ WebSocket │
▼ ▼
┌─────────────────────────────────┐
│ Gateway Server │
│ (Axum · HTTP · WS · Auth) │
├─────────────────────────────────┤
│ Chat Service │
│ ┌───────────┐ ┌─────────────┐ │
│ │ Agent │ │ Tool │ │
│ │ Runner │◄┤ Registry │ │
│ └─────┬─────┘ └─────────────┘ │
│ │ │
│ ┌─────▼─────────────────────┐ │
│ │ Provider Registry │ │
│ │ Multiple providers │ │
│ │ (Codex · Copilot · Local)│ │
│ └───────────────────────────┘ │
├─────────────────────────────────┤
│ Sessions │ Memory │ Hooks │
│ (JSONL) │ (SQLite)│ (events) │
└─────────────────────────────────┘
│
┌───────▼───────┐
│ Sandbox │
│ Docker/Apple │
│ Container │
└───────────────┘
راجع البدء السريع لتفاصيل إقلاع البوابة، وتدفق الرسائل، والجلسات، والذاكرة.
البدء
البناء والتشغيل
يتطلب just (مشغّل أوامر) وNode.js (لـ Tailwind CSS).
git clone https://github.com/moltis-org/moltis.git
cd moltis
just build-css # بناء Tailwind CSS لواجهة الويب
just build-release # البناء في وضع الإصدار
cargo run --release --bin moltis
لإصدار كامل يتضمن أدوات صندوق WASM الرملي:
just build-release-with-wasm # بناء قطع WASM + ملف الإصدار الثنائي
cargo run --release --bin moltis
افتح https://moltis.localhost:3000. عند أول تشغيل، يُطبع رمز إعداد على
الطرفية — أدخله في واجهة الويب لتعيين كلمة المرور أو تسجيل passkey.
أعلام اختيارية: --config-dir /path/to/config --data-dir /path/to/data
Docker
# Docker / OrbStack
docker run -d \
--name moltis \
-p 13131:13131 \
-p 13132:13132 \
-p 1455:1455 \
-v moltis-config:/home/moltis/.config/moltis \
-v moltis-data:/home/moltis/.moltis \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/moltis-org/moltis:latest
افتح https://localhost:13131 وأكمل الإعداد. لنشر Docker بدون مراقبة،
اضبط MOLTIS_PASSWORD وMOLTIS_PROVIDER وMOLTIS_API_KEY
قبل الإقلاع الأول لتخطي معالج الإعداد. راجع وثائق Docker
لتفاصيل Podman وOrbStack وثقة TLS والاستمرارية.
النشر السحابي
Fly.io (CLI):
fly launch --image ghcr.io/moltis-org/moltis:latest
fly secrets set MOLTIS_PASSWORD="your-password"
تستخدم جميع إعدادات السحابة --no-tls لأن المزود يتولى إنهاء TLS.
راجع وثائق النشر السحابي للتفاصيل.
الترخيص
MIT