Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
153 changes: 70 additions & 83 deletions README.ar.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,4 @@
<p align="center">
<a href="https://opencode.ai">
<picture>
<source srcset="packages/console/app/src/asset/logo-ornate-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="packages/console/app/src/asset/logo-ornate-light.svg" media="(prefers-color-scheme: light)">
<img src="packages/console/app/src/asset/logo-ornate-light.svg" alt="شعار OpenCode">
</picture>
</a>
</p>
<p align="center">وكيل برمجة بالذكاء الاصطناعي مفتوح المصدر.</p>
<p align="center">
<a href="https://opencode.ai/discord"><img alt="Discord" src="https://img.shields.io/discord/1391832426048651334?style=flat-square&label=discord" /></a>
<a href="https://www.npmjs.com/package/opencode-ai"><img alt="npm" src="https://img.shields.io/npm/v/opencode-ai?style=flat-square" /></a>
<a href="https://github.com/anomalyco/opencode/actions/workflows/publish.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/anomalyco/opencode/publish.yml?style=flat-square&branch=dev" /></a>
</p>
# Rolandcode

<p align="center">
<a href="README.md">English</a> |
Expand All @@ -39,103 +25,104 @@
<a href="README.vi.md">Tiếng Việt</a>
</p>

[![OpenCode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)
شعبة نظيفة من [OpenCode](https://github.com/anomalyco/opencode) تمت إزالة جميع بيانات التتبع (Telemetry) وسلوك "الاتصال الخلفي" (Phone-home) منها.

---
تسوق OpenCode نفسها على أنها "تضع الخصوصية أولاً" و"مفتوحة المصدر"، لكنها تنقل البيانات بصمت إلى خدمات طرف ثالث متعددة — تحليلات الاستخدام (PostHog)، قياس الأداء (Honeycomb)، مشاركة الجلسات (opncd.ai)، ووكالة الأوامر (prompt proxying) (opencode.ai/zen)، وتوجيه استعلامات البحث (mcp.exa.ai)، وجلب قوائم النماذج التي تسرب عناوين IP (models.dev). أنكر الحفاظون على المشروع في البداية وجود قياس للأداء ([#459](https://github.com/sst/opencode/issues/459))، ثم اعترفوا به. يبلغ المستخدمون أن تعطيل قياس الأداء في ملف التكوين لا يوقف اتصالات الخروج بالكامل ([#5554](https://github.com/sst/opencode/issues/554)).

### التثبيت
لا يحاول Rolandcode إقناع OpenCode بالتغيير. إنه ببساطة يزيل بيانات التتبع الخاصة بهم وينشر نسخًا نظيفة.

```bash
# YOLO
curl -fsSL https://opencode.ai/install | bash

# مديري الحزم
npm i -g opencode-ai@latest # او bun/pnpm/yarn
scoop install opencode # Windows
choco install opencode # Windows
brew install anomalyco/tap/opencode # macOS و Linux (موصى به، دائما محدث)
brew install opencode # macOS و Linux (صيغة brew الرسمية، تحديث اقل)
sudo pacman -S opencode # Arch Linux (Stable)
paru -S opencode-bin # Arch Linux (Latest from AUR)
mise use -g opencode # اي نظام
nix run nixpkgs#opencode # او github:anomalyco/opencode لاحدث فرع dev
```
الاسم مستمد من شعر روبرت براونينغ "جاء رولاند الطفل إلى البرج المظلم" (Childe Roland to the Dark Tower Came) — يصل رولاند إلى البرج على الرغم من كل ما يحاول إيقافه.

---

## ما تم إزالته

> [!TIP]
> احذف الاصدارات الاقدم من 0.1.x قبل التثبيت.
| Endpoint | ما أرسله |
|----------|-------------|
| `us.i.posthog.com` | تحليلات الاستخدام |
| `api.honeycomb.io` | بيانات التتبع، عنوان IP، الموقع |
| `api.opencode.ai` | محتوى الجلسة، الأوامر (Prompts) |
| `opncd.ai` | بيانات مشاركة الجلسة |
| `opencode.ai/zen/v1` | أوامر تم توجيهها عبر بوابة OpenCode |
| `mcp.exa.ai` | استعلامات البحث |
| `models.dev` | جلب قوائم النماذج (يسرب IP) |
| `app.opencode.ai` | وكيل التطبيق الشامل (Catch-all) |

### تطبيق سطح المكتب (BETA)
يتم تضمين كتالوج النماذج (Model Catalog) في وقت البناء من نسخة محلية — بدون اتصال خلفي في وقت التشغيل.

يتوفر OpenCode ايضا كتطبيق سطح مكتب. قم بالتنزيل مباشرة من [صفحة الاصدارات](https://github.com/anomalyco/opencode/releases) او من [opencode.ai/download](https://opencode.ai/download).
## التثبيت

| المنصة | التنزيل |
| --------------------- | ------------------------------------- |
| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` |
| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` |
| Windows | `opencode-desktop-windows-x64.exe` |
| Linux | `.deb` او `.rpm` او AppImage |
قم بتنزيل ملف تنفيذي من [صفحة الإصدارات](https://github.com/TODO/rolandcode/releases)، أو قم بالبناء من المصدر:

```bash
# macOS (Homebrew)
brew install --cask opencode-desktop
# Windows (Scoop)
scoop bucket add extras; scoop install extras/opencode-desktop
git clone https://github.com/TODO/rolandcode.git
cd rolandcode/packages/opencode

# تنزيل نسخة من كتالوج النماذج
curl -fsSL -o models-api.json https://models.dev/api.json

# البناء
MODELS_DEV_API_JSON=./models-api.json bun run build --single
```

#### مجلد التثبيت
الملف التنفيذي موجود في `dist/opencode-linux-x64/bin/rolandcode` (أو ما يعادله لمنصتك).

يحترم سكربت التثبيت ترتيب الاولوية التالي لمسار التثبيت:
## التحقق

1. `$OPENCODE_INSTALL_DIR` - مجلد تثبيت مخصص
2. `$XDG_BIN_DIR` - مسار متوافق مع مواصفات XDG Base Directory
3. `$HOME/bin` - مجلد الثنائيات القياسي للمستخدم (ان وجد او امكن انشاؤه)
4. `$HOME/.opencode/bin` - المسار الافتراضي الاحتياطي
يمكن التحقق من نظافة كل نسخة:

```bash
# امثلة
OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash
bash scripts/verify-clean.sh
```

### Agents
هذا الأمر يفحص شجرة المصدر بالكامل بحثًا عن جميع نطاقات التتبع المعروفة وحزم SDK. إذا بقي أي مرجع، تفشل النسخة. grep لا يكذب.

يتضمن OpenCode وكيليْن (Agents) مدمجين يمكنك التبديل بينهما باستخدام زر `Tab`.
## كيف يعمل

- **build** - الافتراضي، وكيل بصلاحيات كاملة لاعمال التطوير
- **plan** - وكيل للقراءة فقط للتحليل واستكشاف الكود
- يرفض تعديل الملفات افتراضيا
- يطلب الاذن قبل تشغيل اوامر bash
- مثالي لاستكشاف قواعد كود غير مألوفة او لتخطيط التغييرات
يحتفظ Rolandcode بمجموعة صغيرة من التصحيحات (Patches) فوق OpenCode الأصلي. كل تسليم إزالة (Strip Commit) يزيل مخاوف التتبع واحدة تلو الأخرى:

بالاضافة الى ذلك يوجد وكيل فرعي **general** للبحث المعقد والمهام متعددة الخطوات.
يستخدم داخليا ويمكن استدعاؤه بكتابة `@general` في الرسائل.
- `strip-posthog` — تحليلات PostHog
- `strip-honeycomb` — قياس أداء Honeycomb
- `strip-exa` — توجيه بحث mcp.exa.ai
- `strip-opencode-api` — نقاط نهاية api.opencode.ai و opncd.ai
- `strip-zen-gateway` — توجيه وكيل Zen
- `strip-app-proxy` — وكيل app.opencode.ai الشامل
- `strip-share-sync` — مشاركة الجلسة التلقائية
- `strip-models-dev` — جلب قوائم النماذج في وقت التشغيل

تعرف على المزيد حول [agents](https://opencode.ai/docs/agents).
التسليمات الصغيرة والمعزولة تعيد أساسها (Rebase) بشكل نظيف عند تحرك المصدر الأصلي.

### التوثيق
## الاختبار

لمزيد من المعلومات حول كيفية ضبط OpenCode، [**راجع التوثيق**](https://opencode.ai/docs).

### المساهمة
```bash
# المجموعة الكاملة (تشغيل اختبارات الأذونات في Docker عند التشغيل كمسؤول)
bash scripts/test.sh

اذا كنت مهتما بالمساهمة في OpenCode، يرجى قراءة [contributing docs](./CONTRIBUTING.md) قبل ارسال pull request.
# فقط المجموعة الرئيسية
cd packages/opencode && bun test --timeout 30000

### البناء فوق OpenCode
# فقط اختبارات الأذونات (يجب أن يكون غير مسؤول، أو استخدام Docker)
docker run --rm -v $(pwd):/app:ro -w /app/packages/opencode -u 1000:1000 --tmpfs /tmp:exec oven/bun:1.3.10 \
bun test test/tool/write.test.ts test/config/tui.test.ts --timeout 30000
```

اذا كنت تعمل على مشروع مرتبط بـ OpenCode ويستخدم "opencode" كجزء من اسمه (مثل "opencode-dashboard" او "opencode-mobile")، يرجى اضافة ملاحظة في README توضح انه ليس مبنيا بواسطة فريق OpenCode ولا يرتبط بنا بأي شكل.
### مشاكل الاختبار المعروفة

### FAQ
| الاختبار | الحالة | السبب |
|------|--------|-----|
| `session.llm.stream` (2 من 10) | غير مستقر (Flaky) | تسرب حالة خادم HTTP الوهمي (Mock) بين الاختبارات المتوازية. يمر 10/10 عند التشغيل في عزلة (`bun test test/session/llm.test.ts`). عيب في عزل الاختبارات في المصدر الأصلي — وليس عيبًا في الكود. |
| `tool.write > يرمي خطأ عندما يمنع نظام التشغيل الوصول للكتابة` | يفشل كمسؤول (Root) | المسؤول يتجاوز `chmod 0o444`. يمر في Docker كغير مسؤول. `scripts/test.sh` يتعامل مع هذا تلقائيًا. |
| `tui config > يستمر التحميل عندما لا يمكن إزالة المصدر القديم` | يفشل كمسؤول | نفس مشكلة المسؤول مقابل chmod. يمر في Docker كغير مسؤول. |
| `fsmonitor` (2 اختبارات) | متخطى | ويندوز فقط (`process.platform === "win32"`). |
| `worktree-remove` (1 اختبار) | متخطى | ويندوز فقط. |
| `تعديل واستعادة أسماء الملفات Unicode` | متخطى | تم تخطيه صراحة في المصدر الأصلي — عيب معروف لم يتم إصلاحه. |

#### ما الفرق عن Claude Code؟
## المصدر الأصلي (Upstream)

هو مشابه جدا لـ Claude Code من حيث القدرات. هذه هي الفروقات الاساسية:
هذه شعبة من [anomalyco/opencode](https://github.com/anomalyco/opencode) (ترخيص MIT). كل الكود الأصلي ملكهم. يتم حفظ تاريخ التسليم الكامل للمصدر الأصلي — يمكنك رؤية بالضبط ما تم تغييره ولماذا.

- 100% مفتوح المصدر
- غير مقترن بمزود معين. نوصي بالنماذج التي نوفرها عبر [OpenCode Zen](https://opencode.ai/zen)؛ لكن يمكن استخدام OpenCode مع Claude او OpenAI او Google او حتى نماذج محلية. مع تطور النماذج ستتقلص الفجوات وستنخفض الاسعار، لذا من المهم ان يكون مستقلا عن المزود.
- دعم LSP جاهز للاستخدام
- تركيز على TUI. تم بناء OpenCode بواسطة مستخدمي neovim ومنشئي [terminal.shop](https://terminal.shop)؛ وسندفع حدود ما هو ممكن داخل الطرفية.
- معمارية عميل/خادم. على سبيل المثال، يمكن تشغيل OpenCode على جهازك بينما تقوده عن بعد من تطبيق جوال. هذا يعني ان واجهة TUI هي واحدة فقط من العملاء الممكنين.
OpenCode هو وكيل برمجة ذكاء اصطناعي قادر مع واجهة نصية رائعة (TUI)، ودعم LSP، ومرونة متعددة المزودين. نستخدمه لأنه برنامج جيد. نزيل بيانات التتبع لأن مطالبات الخصوصية لا تتطابق مع السلوك.

---
## الترخيص

**انضم الى مجتمعنا** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)
MIT — نفس المصدر الأصلي. راجع [LICENSE](LICENSE).
Loading