
skyvern v1.0.50
أتمتة سير العمل المستندة إلى المتصفح باستخدام الذكاء الاصطناعي
🐉 أتمتة سير العمل في المتصفح باستخدام نماذج اللغة الكبيرة (LLMs) والرؤية الحاسوبية 🐉
Skyvern يقوم بأتمتة سير العمل في المتصفح باستخدام نماذج اللغة الكبيرة (LLMs) والرؤية الحاسوبية. يوفر حزمة أدوات تطوير (SDK) متوافقة مع Playwright تضيف وظائف الذكاء الاصطناعي فوق Playwright، بالإضافة إلى منشئ سير عمل بدون كود لمساعدة المستخدمين التقنيين وغير التقنيين على أتمتة سير العمل اليدوي على أي موقع ويب، مما يحل محل حلول الأتمتة الهشة أو غير الموثوقة.
تطلبت الأساليب التقليدية لأتمتة المتصفح كتابة نصوص برمجية مخصصة للمواقع الإلكترونية، وغالبًا ما اعتمدت على تحليل DOM والتفاعلات القائمة على XPath والتي كانت تتعطل كلما تغيرت تخطيطات المواقع.
بدلاً من الاعتماد فقط على تفاعلات XPath المحددة برمجيًا، يعتمد Skyvern على نماذج اللغة الكبيرة للرؤية (Vision LLMs) لتعلم والتفاعل مع المواقع الإلكترونية.
كيف يعمل
استلهم Skyvern من تصميم الوكيل المستقل القائم على المهام الذي روّج له BabyAGI و AutoGPT -- مع ميزة إضافية رئيسية: نمنح Skyvern القدرة على التفاعل مع المواقع الإلكترونية باستخدام مكتبات أتمتة المتصفح مثل Playwright.
يستخدم Skyvern سربًا من الوكلاء لفهم موقع إلكتروني، وتخطيط وتنفيذ إجراءاته:
لهذا النهج عدة مزايا:
- يمكن لـ Skyvern العمل على مواقع إلكترونية لم يرها من قبل، حيث إنه قادر على ربط العناصر المرئية بالإجراءات اللازمة لإكمال سير العمل، دون أي كود مخصص
- Skyvern مقاوم للتغييرات في تخطيط المواقع، حيث لا توجد مسارات XPath محددة مسبقًا أو محددات أخرى يبحث عنها نظامنا أثناء محاولة التنقل
- Skyvern قادر على أخذ سير عمل واحد وتطبيقه على عدد كبير من المواقع الإلكترونية، حيث إنه قادر على التفكير في التفاعلات اللازمة لإكمال سير العمل يمكن العثور على تقرير فني مفصل هنا.
عرض توضيحي
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
بداية سريعة
سحابة Skyvern
سحابة Skyvern هي نسخة سحابية مُدارة من Skyvern تسمح لك بتشغيل Skyvern دون القلق بشأن البنية التحتية. تسمح لك بتشغيل عدة نسخ من Skyvern بالتوازي وتأتي مع آليات كشف مكافحة البوت، وشبكة بروكسي، وحلالات CAPTCHA.
إذا كنت ترغب في تجربتها، انتقل إلى app.skyvern.com وأنشئ حسابًا.
تشغيل محليًا (واجهة المستخدم + الخادم)
اختر طريقة الإعداد المفضلة لديك:
قاعدة البيانات الافتراضية:
skyvern quickstartوskyvern run serverتستخدمان افتراضيًا قاعدة بيانات SQLite في~/.skyvern/data.dbبحيث يعمل مسار pip دون الحاجة إلى Postgres أو Docker. لاستخدام Postgres بدلاً من ذلك، مرر--postgresلحاوية محلية أو--database-stringلقاعدة بيانات موجودة. يستخدم Docker Compes دائمًا خدمة Postgres المرفقة.
الخيار أ: تثبيت pip (موصى به للإعداد المحلي المُدار بواسطة Python)
التبعيات المطلوبة:
بالإضافة إلى ذلك، لنظام Windows:
- Rust
- VS Code مع أدوات تطوير C++ وWindows SDK
1. تثبيت Skyvern```bash
pip install "skyvern[all]"
#### 2. تشغيل Skyvern```bash
skyvern quickstart
يستخدم خيار pip السريع SQLite بشكل افتراضي. لتشغيل حاوية Postgres محلية، قم بتشغيل skyvern quickstart --postgres.
الخيار ب: Docker Compose
استخدم هذا الخيار إذا كنت تريد أن يكون كل شيء في حاويات (Postgres، API، UI) ولا تريد تثبيت Python/Node محليًا.
- قم بتثبيت Docker Desktop
- استنساخ المستودع: ```bash
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
- قم بتكوين مزود LLM الخاص بك في ملف
.env(سيؤدي الأمرquickstart --docker-composeأدناه إلى إنشائه من ملف.env.exampleفي حال كان مفقودًا): ```bash cp .env.example .env # if not already creatededit .env to add your LLM API key
- شغّل كل شيء: ```bash
docker compose up -d
- افتح http://localhost:8080
استكشاف الأخطاء وإصلاحها
(sqlite3.OperationalError) table organizations already exists — لقد واجهت خطأً معروفًا في pip install skyvern==1.0.31. الحل:```bash
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
إذا كنت لا تزال على الإصدار 1.0.31 ولا يمكنك الترقية، فقم بالتثبيت عبر uv بدلاً من ذلك:```bash
uv pip install skyvern
pip install skyvern يفشل مع خطأ ResolutionImpossible (litellm / fastmcp) — لقد واجهت تعارضًا في حل التبعيات في الإصدار 1.0.31. إما الترقية إلى 1.0.32+ أو استخدم uv: uv pip install skyvern.
SDK
Skyvern هو امتداد لـ Playwright يضيف أتمتة المتصفح المدعومة بالذكاء الاصطناعي. يمنحك القوة الكاملة لـ Playwright مع قدرات إضافية للذكاء الاصطناعي—استخدم التعليمات باللغة الطبيعية للتفاعل مع العناصر، واستخراج البيانات، وأتمتة سير العمل المعقدة متعددة الخطوات.
التثبيت:
- Python SDK / cloud API:
pip install skyvern - خادم محلي + واجهة مستخدم محزمة:
pip install "skyvern[all]"ثم قم بتشغيلskyvern quickstart - خادم محلي + واجهة مستخدم محزمة مع Postgres:
pip install "skyvern[all]"ثم قم بتشغيلskyvern quickstart --postgres - واجهة مستخدم محزمة لواجهة برمجة تطبيقات موجودة:
pip install "skyvern[ui]"ثم قم بتشغيلskyvern run ui --api-url <api-url> --api-key <api-key> - TypeScript:
npm install @skyvern/client
أوامر الصفحة المدعومة بالذكاء الاصطناعي
يضيف Skyvern أربعة أوامر أساسية للذكاء الاصطناعي مباشرة على كائن الصفحة:
| الأمر | الوصف |
|---|---|
page.act(prompt) | تنفيذ إجراءات باستخدام اللغة الطبيعية (مثال: "انقر على زر تسجيل الدخول") |
page.extract(prompt, schema) | استخراج بيانات منظمة من الصفحة مع مخطط JSON اختياري |
page.validate(prompt) | التحقق من حالة الصفحة، يعيد قيمة bool (مثال: "تحقق مما إذا كان المستخدم مسجلاً للدخول") |
page.prompt(prompt, schema) | إرسال تعليمات عشوائية إلى LLM مع مخطط استجابة اختياري |
بالإضافة إلى ذلك، يوفر page.agent أوامر سير عمل عالية المستوى:
| الأمر | الوصف |
|---|---|
page.agent.run_task(prompt) | تنفيذ مهام معقدة متعددة الخطوات |
page.agent.login(credential_type, credential_id) | المصادقة باستخدام بيانات الاعتماد المخزنة (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | التنقل وتنزيل الملفات |
page.agent.run_workflow(workflow_id) | تنفيذ سير العمل المعدة مسبقًا |
إجراءات Playwright المعززة بالذكاء الاصطناعي
تدعم جميع إجراءات Playwright القياسية معلمة prompt اختيارية لتحديد موقع العنصر بالذكاء الاصطناعي:
| الإجراء | Playwright | المعزز بالذكاء الاصطناعي |
|---|---|---|
| نقر | page.click("#btn") | page.click(prompt="انقر على زر تسجيل الدخول") |
| تعبئة | page.fill("#email", "[email protected]") | page.fill(prompt="حقل البريد الإلكتروني", value="[email protected]") |
| تحديد | page.select_option("#country", "US") | page.select_option(prompt="القائمة المنسدلة للدولة", value="US") |
| رفع | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="منطقة التحميل", files="doc.pdf") |
ثلاثة أوضاع تفاعل:```python
1. Traditional Playwright - CSS/XPath selectors
await page.click("#submit-button")
2. AI-powered - natural language
await page.click(prompt="Click the green Submit button")
3. AI fallback - tries selector first, falls back to AI if it fails
await page.click("#submit-btn", prompt="Click the Submit button")
### أوامر الذكاء الاصطناعي الأساسية - أمثلة```python
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")
# extract - Extract structured data with optional JSON schema
result = await page.extract("Get the product name and price")
result = await page.extract(
prompt="Extract order details",
schema={"order_id": "string", "total": "number", "items": "array"}
)
# validate - Check page state (returns bool)
is_logged_in = await page.validate("Check if the user is logged in")
# prompt - Send arbitrary prompts to the LLM
summary = await page.prompt("Summarize what's on this page")
أمثلة بدء سريع
التشغيل عبر واجهة المستخدم:```bash skyvern run all
انتقل إلى http://localhost:8080 لتشغيل المهام عبر واجهة الويب. إذا كانت واجهة المستخدم المرفوعة مفقودة، فسيقدم `skyvern run ui` تثبيت حزمة واجهة المستخدم المطابقة. للتثبيت غير التفاعلي، استخدم `skyvern run ui --install-ui` أو `skyvern run all --install-ui`.
لتشغيل واجهة المستخدم المرفوعة فقط مقابل Skyvern API موجود، قم بتثبيت `skyvern[ui]` وقم بتمرير `--api-url`؛ يستنتج CLI `--wss-url` من عنوان API ما لم تقم بتجاوزه. يمكنك أيضًا تعيين `VITE_API_BASE_URL` و `VITE_WSS_BASE_URL` و `VITE_ARTIFACT_API_BASE_URL` و `VITE_SKYVERN_API_KEY` و `VITE_BROWSER_STREAMING_MODE` قبل تشغيل `skyvern run ui`.
**Python SDK:**```python
from skyvern import Skyvern
# Local mode
skyvern = Skyvern.local()
# Or connect to Skyvern Cloud
skyvern = Skyvern(api_key="your-api-key")
# Launch browser and get page
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
# Mix Playwright with AI-powered actions
await page.goto("https://example.com")
await page.click("#login-button") # Traditional Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123") # AI login
await page.click(prompt="Add first item to cart") # AI-augmented click
await page.agent.run_task("Complete checkout with: John Snow, 12345") # AI task
TypeScript SDK:```typescript import { Skyvern } from "@skyvern/client";
const skyvern = new Skyvern({ apiKey: "your-api-key" }); const browser = await skyvern.launchCloudBrowser(); const page = await browser.getWorkingPage();
// Mix Playwright with AI-powered actions await page.goto("https://example.com"); await page.click("#login-button"); // Traditional Playwright await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI login await page.click({ prompt: "Add first item to cart" }); // AI-augmented click await page.agent.runTask("Complete checkout with: John Snow, 12345"); // AI task
await browser.close();
**تنفيذ المهمة البسيطة:**```python
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
الاستخدام المتقدم
التحكم في متصفحك الخاص (Chrome)
دع Skyvern يتحكم في متصفح Chrome الحالي لديك — مع جميع ملفات تعريف الارتباط، وعمليات تسجيل الدخول، والإضافات.
الخطوة 1: تمكين التصحيح عن بُعد في Chrome
- افتح Chrome وانتقل إلى
chrome://inspect/#remote-debugging - انقر على Enable لبدء خادم التصحيح
- يجب أن ترى: Server running at: 127.0.0.1:9222
[!TIP] يمكن لأمر
skyvern init browserالقيام بذلك تلقائيًا — فهو يفتحchrome://inspect/#remote-debugging، وينتظر حتى تقوم بتمكينه، ويحفظ الإعدادات.
الخطوة 2: الاتصال بـ Skyvern
الخيار أ — كود Python:```python from skyvern import Skyvern
skyvern = Skyvern( base_url="http://localhost:8000", api_key="YOUR_API_KEY", browser_address="http://127.0.0.1:9222", ) task = await skyvern.run_task( prompt="Find the top post on hackernews today", )
**الخيار ب — خدمة Skyvern:**
أضف متغيرين إلى ملف `.env` الخاص بك:```bash
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
أعد تشغيل خدمة Skyvern باستخدام الأمر skyvern run all وشغّل المهمة عبر الواجهة الرسومية أو الكود
ربط Skyvern Cloud بمتصفحك المحلي
دع Skyvern Cloud يتحكم في متصفح Chrome الذي يعمل على جهازك — مع جميع ملفات تعريف الارتباط (cookies) وبيانات تسجيل الدخول والإضافات الموجودة لديك. مفيد لأتمتة المواقع التي قمت بتسجيل الدخول إليها بالفعل أو التي تستخدم VPN.```bash
One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
ثم استخدم عنوان النفق في مهمتك:```python
from skyvern import Skyvern
skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
prompt="Download the latest invoice from my account",
browser_address="https://abc123.ngrok-free.dev",
)
[!WARNING] استخدم
--api-keyدائمًا عند تعريض متصفحك عبر نفق. بدونها، أي شخص لديه عنوان URL يمكنه التحكم الكامل في متصفحك. راجع وثائق الأمان.
راجع الوثائق الكاملة لجميع الخيارات، وإعداد النفق يدويًا، واستكشاف الأخطاء وإصلاحها.
الحصول على مخطط إخراج متسق من تشغيلك
يمكنك فعل ذلك عن طريق إضافة معامل data_extraction_schema:```python
from skyvern import Skyvern
skyvern = Skyvern() task = await skyvern.run_task( prompt="Find the top post on hackernews today", data_extraction_schema={ "type": "object", "properties": { "title": { "type": "string", "description": "The title of the top post" }, "url": { "type": "string", "description": "The URL of the top post" }, "points": { "type": "integer", "description": "Number of points the post has received" } } } )
### أوامر مفيدة لتصحيح المشكلات```bash
# Launch the Skyvern Server Separately*
skyvern run server
# Launch the Skyvern UI
skyvern run ui
# Check status of the Skyvern service
skyvern status
# Stop the Skyvern service
skyvern stop all
# Stop the Skyvern UI
skyvern stop ui
# Stop the Skyvern Server Separately
skyvern stop server
الأداء والتقييم
يحقق Skyvern أداءً متطورًا (SOTA) على معيار WebBench بدقة 64.4%. يمكن العثور على التقرير الفني + التقييم هنا
الأداء في مهام الكتابة (مثل ملء النماذج، تسجيل الدخول، تنزيل الملفات، إلخ)
Skyvern هو أفضل وكيل أداءً في مهام الكتابة (مثل ملء النماذج، تسجيل الدخول، تنزيل الملفات، إلخ)، والتي تُستخدم بشكل أساسي في المهام المجاورة لأتمتة العمليات الروبوتية (RPA).
ميزات Skyvern
مهام Skyvern
المهام هي اللبنة الأساسية داخل Skyvern. كل مهمة هي طلب واحد إلى Skyvern، يوجهه للتنقل عبر موقع ويب وإنجاز هدف محدد.
تتطلب المهام منك تحديد url وprompt، ويمكن أن تتضمن اختياريًا data schema (إذا كنت تريد أن يتوافق الإخراج مع مخطط معين) وerror codes (إذا كنت تريد أن يتوقف Skyvern عن العمل في حالات محددة).
سير عمل Skyvern
سير العمل هي طريقة لربط مهام متعددة معًا لتشكيل وحدة عمل متماسكة.
على سبيل المثال، إذا أردت تنزيل جميع الفواتير الأحدث من 1 يناير، يمكنك إنشاء سير عمل ينتقل أولاً إلى صفحة الفواتير، ثم يقوم بالتصفية لإظهار الفواتير الأحدث من 1 يناير فقط، واستخراج قائمة بجميع الفواتير المؤهلة، والتكرار خلال كل فاتورة لتنزيلها.
مثال آخر هو إذا أردت أتمتة شراء المنتجات من متجر إلكتروني، يمكنك إنشاء سير عمل ينتقل أولاً إلى المنتج المطلوب، ثم يضيفه إلى السلة. ثانيًا، سينتقل إلى السلة ويتحقق من حالة السلة. أخيرًا، سيمر بعملية الدفع لشراء العناصر.
تشمل ميزات سير العمل المدعومة:
- مهمة المتصفح
- إجراء المتصفح
- استخراج البيانات
- التحقق
- الحلقات التكرارية
- تحليل الملفات
- إرسال البريد الإلكتروني
- المطالبات النصية
- كتلة طلب HTTP
- كتلة التعليمات البرمجية المخصصة
- رفع الملفات إلى التخزين الكتلي
- (قريبًا) الشروط
البث المباشر
يتيح لك Skyvern بث إطار عرض المتصفح مباشرة إلى جهازك المحلي بحيث يمكنك رؤية ما يفعله Skyvern بالضبط على الويب. هذا مفيد لتصحيح الأخطاء وفهم كيفية تفاعل Skyvern مع موقع الويب، والتدخل عند الضرورة.
ملء النماذج
Skyvern قادر أصليًا على ملء مدخلات النماذج على مواقع الويب. تمرير المعلومات عبر navigation_goal سيسمح لـ Skyvern بفهم المعلومات وملء النموذج وفقًا لذلك.
استخراج البيانات
Skyvern قادر أيضًا على استخراج البيانات من موقع الويب.
يمكنك أيضًا تحديد data_extraction_schema مباشرة داخل المطالبة الرئيسية لإخبار Skyvern بالبيانات التي ترغب في استخراجها بالضبط من موقع الويب، بتنسيق jsonc. سيكون إخراج Skyvern منظمًا وفقًا للمخطط المقدم.
تنزيل الملفات
Skyvern قادر أيضًا على تنزيل الملفات من موقع الويب. يتم تحميل جميع الملفات التي تم تنزيلها تلقائيًا إلى التخزين الكتلي (إذا تم تكوينه)، ويمكنك الوصول إليها عبر واجهة المستخدم.
المصادقة
يدعم Skyvern عددًا من طرق المصادقة المختلفة لتسهيل أتمتة المهام خلف تسجيل الدخول. إذا كنت ترغب في تجربته، فيرجى التواصل معنا عبر البريد الإلكتروني أو ديسكورد.
🔐 دعم المصادقة الثنائية (TOTP)
يدعم Skyvern عددًا من طرق المصادقة الثنائية المختلفة للسماح لك بأتمتة سير العمل التي تتطلب المصادقة الثنائية.
تشمل الأمثلة:
- المصادقة الثنائية القائمة على رمز QR (مثل Google Authenticator, Authy)
- المصادقة الثنائية عبر البريد الإلكتروني
- المصادقة الثنائية عبر الرسائل النصية القصيرة
🔐 تعرف على المزيد حول دعم المصادقة الثنائية هنا.
تكاملات مدير كلمات المرور
يدعم Skyvern حاليًا تكاملات مدير كلمات المرور التالية:
- Bitwarden
- خدمة بيانات الاعتماد المخصصة (HTTP API)
- 1Password
- LastPass
بروتوكول سياق النموذج (MCP)
يدعم Skyvern بروتوكول سياق النموذج (MCP) للسماح لك باستخدام أي LLM يدعم MCP.
اطلع على توثيق MCP هنا
تكامل Zapier / Make.com / N8N
يدعم Skyvern Zapier وMake.com وN8N للسماح لك بربط سير عمل Skyvern الخاصة بك بالتطبيقات الأخرى.
🔐 تعرف على المزيد حول دعم المصادقة الثنائية هنا.
أمثلة واقعية لاستخدام Skyvern
نحب أن نرى كيف يتم استخدام Skyvern في الممارسة العملية. فيما يلي بعض الأمثلة على كيفية استخدام Skyvern لأتمتة سير العمل في العالم الحقيقي. يرجى فتح طلبات سحب (PRs) لإضافة الأمثلة الخاصة بك!
تنزيل الفواتير على العديد من مواقع الويب المختلفة
احجز عرضًا توضيحيًا لرؤيته مباشرة
أتمتة عملية التقديم على الوظائف
أتمتة شراء المواد لشركة تصنيع
التنقل إلى مواقع الويب الحكومية لتسجيل الحسابات أو ملء النماذج
ملء نماذج الاتصال بنا العشوائية
استرداد عروض أسعار التأمين من مقدمي خدمات التأمين بأي لغة
إعداد المساهم
تأكد من تثبيت uv.
- شغّل هذا لإنشاء بيئتك الافتراضية (
.venv)uv sync --group dev - قم بإجراء تكوين الخادم الأولي
uv run skyvern quickstart - انتقل إلى
http://localhost:8080في متصفحك لبدء استخدام واجهة المستخدم يدعم سطر أوامر Skyvern (CLI) بيئات Windows وWSL وmacOS وLinux.
التوثيق
يمكن العثور على توثيق أكثر شمولاً في 📕 صفحة التوثيق. يرجى إعلامنا إذا كان هناك شيء غير واضح أو مفقود عن طريق فتح مشكلة أو التواصل معنا عبر البريد الإلكتروني أو ديسكورد.
نماذج اللغات الكبيرة المدعومة
| المزود | النماذج المدعومة |
|---|---|
| OpenAI | GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini |
| Anthropic | Claude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus) |
| Azure OpenAI | Any GPT models deployed to your Azure subscription |
| AWS Bedrock | Claude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus) |
| Gemini | Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash |
| Ollama | Run any locally hosted model via Ollama |
| OpenRouter | Access models through OpenRouter |
| متوافق مع OpenAI | Any custom API endpoint that follows OpenAI's API format (via liteLLM) |
للحصول على تكوين مفصل لنماذج اللغات الكبيرة بما في ذلك جميع مفاتيح النماذج المتاحة، ومتغيرات البيئة، وإعدادات النماذج المتعددة، راجع توثيق تكوين LLM.
المساهمة
نرحب بطلبات السحب والاقتراحات! لا تتردد في فتح طلب سحب/مشكلة أو التواصل معنا عبر البريد الإلكتروني أو ديسكورد. يرجى إلقاء نظرة على دليل المساهمة و مشكلات "مساعدة مطلوبة" للبدء!
إذا كنت ترغب في الدردشة مع مستودع skyvern للحصول على نظرة عامة عالية المستوى حول كيفية هيكلته، وكيفية البناء عليه، وكيفية حل أسئلة الاستخدام، تحقق من Code Sage.
القياس عن بعد
افتراضيًا، يجمع Skyvern إحصائيات الاستخدام الأساسية لمساعدتنا في فهم كيفية استخدام Skyvern. إذا كنت ترغب في إلغاء الاشتراك في القياس عن بعد، فيرجى تعيين متغير البيئة SKYVERN_TELEMETRY إلى false.
الترخيص
مستودع Skyvern مفتوح المصدر مدعوم عبر سحابة مُدارة. جميع المنطق الأساسي الذي يشغل Skyvern متاح في هذا المستودع مفتوح المصدر بموجب ترخيص AGPL-3.0، باستثناء تدابير مكافحة البوت المتاحة في عرضنا السحابي المُدار.
إذا كانت لديك أي أسئلة أو استفسارات حول الترخيص، فيرجى الاتصال بنا وسنكون سعداء بالمساعدة.