OpenCode
2 دقيقة للقراءة

OpenCode: الميزات

نظرة عامة

بعد إتقان الأساسيات، OpenCode CLI يوفر مجموعة من الميزات المتقدمة التي تساعدك على العمل بشكل أكثر كفاءة وإنتاجية.


الميزات المتقدمة

1. القوالب المخصصة (Custom Templates)

إنشاء قوالب خاصة بك لمشاريع متكررة:

# إنشاء قالب جديد
opencode templates create \
  --name "saas-starter" \
  --description "SaaS Starter Kit with Next.js"

# تعريف القالب
opencode templates edit saas-starter

محتوى القالب (.opencode-template):

name: saas-starter
description: SaaS Starter Kit
tech_stack:
  - Next.js 14
  - TypeScript
  - Tailwind CSS
  - Supabase
  - Stripe

features:
  - authentication
  - subscriptions
  - admin_dashboard
  - user_settings

structure:
  - src/app/
  - src/components/
  - src/lib/
  - src/hooks/
  - tests/

استخدام القالب:

opencode project create --template saas-starter "My SaaS"

2. القواعد المخصصة (Custom Rules)

إنشاء قواعد 编码 خاصة بفريقك:

# إنشاء ملف القواعد
cat > .opencode-rules << 'EOF'
project:
  name: "My Project"
  type: "Next.js 14 + TypeScript"

coding_style:
  - "استخدم TypeScript strict mode"
  - "فضّل Functional Components على Class Components"
  - "استخدم Tailwind CSS للأنماط"
  - "اكتب اختبارات لجميع utilities"

naming_conventions:
  components: "PascalCase"
  files: "kebab-case"
  variables: "camelCase"
  constants: "UPPER_SNAKE_CASE"

ai_preferences:
  model: "claude-3-sonnet"
  temperature: 0.2
  max_tokens: 4000

ignore:
  - "node_modules/**"
  - ".next/**"
  - "dist/**"
  - "*.test.ts"
EOF

OpenCode سيتبع هذه القواعد تلقائياً!


3. الاختصارات المخصصة (Custom Aliases)

إنشاء اختصارات للأوامر المتكررة:

# في ~/.bashrc أو ~/.zshrc

# اختصارات OpenCode
alias og='opencode generate'
alias or='opencode review'
alias ot='opencode test'
alias oe='opencode explain'
alias od='opencode debug'

# وظائف مخصصة
opencode-build() {
  opencode build "$@" && \
  opencode test src/modified && \
  opencode review src/modified
}

opencode-fix() {
  openerate debug --file "$1" --error "$2" && \
  opencode fix --file "$1" && \
  opencode test "$1"
}

استخدام:

og "React component for user card"
or src/components
ot src/services
oe src/utils/api.ts
od src/api.ts "TypeError"

4. التكامل مع Git

OpenCode يتكامل بسلاسة مع Git:

# عرض التغييرات في Git
opencode git diff

# إنشاء commit message
opencode git commit

# مراجعة PR
opencode git review-pr

# اقتراح merge strategy
opencode git suggest-merge

Auto-commit بعد كل مهمة:

opencode config set git.autoCommit true
openerate config set git.commitMessagePattern "opencode: {task}"

5. السياق الذكي (Smart Context)

OpenCode يستخدم سياقاً ذكياً لفهم مشروعك:

# يقرأ:
# - قاعدة الكود الخاصة بك
# - Git history
# - Package dependencies
# - ملف .opencode-rules
# - حالة المحرر النشطة

# يستخدم السياق للإجابة بدقة
opencode ask "لماذا يعيد هذا المكون Rendering؟"
# OpenCode سيفهم:
# - المكون المحدد
# - dependencies
# - recent changes
# - patterns في المشروع

6. الأتمتة (Automation)

أتمتة المهام المتكررة:

# سكربت أتمتة كامل
#!/bin/bash

# auto-opencode.sh

echo "🚀 بدء سير العمل الآلي..."

# 1. سحب التغييرات الأخيرة
git pull

# 2. فحص الأخطاء
ERRORS=$(npm run lint 2>&1 | grep "error")
if [ -n "$ERRORS" ]; then
  echo "🐛 إصلاح الأخطاء..."
  opencode fix --auto
fi

# 3. إصلاح TypeScript
echo "🔧 فحص TypeScript..."
tsc --noEmit | opencode fix --stdin

# 4. تشغيل الاختبارات
echo "🧪 تشغيل الاختبارات..."
npm test

# 5. مراجعة التغييرات
echo "🔍 مراجعة التغييرات..."
opencode review $(git diff --name-only)

# 6. commit
echo "💾 حفظ التغييرات..."
opencode git commit

echo "✅ اكتمل!"

7. التكامل مع أدوات CI/CD

# .github/workflows/opencode-review.yml
name: OpenCode Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Install OpenCode
        run: npm install -g @ohmyopencode/cli

      - name: Review PR
        run: |
          opencode review ${{ github.event.pull_request.diff_url }} \
            --output pr-review.md

      - name: Comment on PR
        uses: actions/github-script@v6
        with:
          script: |
            const fs = require('fs');
            const review = fs.readFileSync('pr-review.md', 'utf8');
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: review
            });

8. تحليل الأداء

# تحليل أداء الكود
opencode analyze --performance src/

# اقتراحات التحسين
opencode suggest --optimize src/

# تحليل الذاكرة
opencode analyze --memory src/

# تحليل الحجم (bundle size)
opencode analyze --bundle

9. إدارة الأسرار (Secrets Management)

# إضافة سر
opencode secrets set API_KEY "sk-..."

# استخدام السر في الكود
opencode generate "API client using $API_KEY"

# سر不会被إرسال إلى السحابة!
# OpenCode يستبدل المتغير محلياً فقط

# حذف سر
opencode secrets delete API_KEY

# عرض جميع الأسرار
opencode secrets list

10. التعلم من أمثلتك

# أضف أمثلتك الخاصة
opencode examples add \
  --name "my-auth-pattern" \
  --file examples/auth-pattern.ts

# استخدم الأمثلة في التوليد
opencode generate \
  --example my-auth-pattern \
  "صفحة تسجيل دخول"

# OpenCode سيحاكي نمطك!

نصائح محترفة

1. استخدم temperature بحكمة

# للمهام الدقيقة (قواعد، regex)
opencode config set temperature 0.0

# للمهام الإبداعية (تسميات، تصميم)
opencode config set temperature 0.7

# للمهام المعتدلة
opencode config set temperature 0.3

2. استخدم نماذج مختلفة لوكلاء مختلفين

# Planner Agent - يحتاج فهم عميق
opencode config set agent.planner claude-3-opus

# Coder Agent - يحتاج توليد سريع
opencode config set agent.coder gpt-3.5-turbo

# Reviewer Agent - يحتاج دقة
opencode config set agent.reviewer claude-3-sonnet

# Tester Agent - يمكن أن يكون أسرع
opencode config set agent.tester gpt-3.5-turbo

3. استخدم max tokens بحذر

# للمهام الصغيرة
opencode ask "سؤال بسيط" --max-tokens 500

# للمهام الكبيرة
opencode build "مشروع كامل" --max-tokens 4000

# لا تتجاوز حد النموذج!

4. استخدم streaming للإخراج السريع

# تفعيل streaming
opencode config set streaming true

# الآن سترى النتائج مباشرة!
opencode generate "كود طويل"

استكشاف الأخطاء المتقدم

مشكلة: "Context too large"

الحل:

# قلل السياق
opencode ask "سؤال" --context-files 5

# أو استخدم context-specific
opencode ask "سؤال" --context-only src/components

مشكلة: "Slow response"

الحل:

# استخدم نموذج أسرع
opencode config set model gpt-3.5-turbo

# أو قلل max tokens
opencode config set max-tokens 2000

# أو استخدم caching
opencode config set cache.enabled true

مشكلة: "Poor quality"

الحل:

# استخدم نموذج أقوى
opencode config set model claude-3-opus

# زد temperature للإبداع
opencode config set temperature 0.5

# أضف المزيد من السياق
openerate explain src/ --recursive

الخلاصة

الميزات المتقدمة في OpenCode:

قوالب مخصصة - سرّع المشاريع المتكررة ✅ قواعد فريق - حافظ على الاتساق ✅ اختصارات - وفر الوقت ✅ تكامل Git - سير عمل سلس ✅ سياق ذكي - فهم عميق ✅ أتمتة - كفاءة قصوى ✅ CI/CD - جودة مستمرة ✅ تحليل - تحسين مستمر ✅ أسرار - أمان محلي ✅ تعلم - يتحسن مع الاستخدام

ابدأ بالاستكشاف:

npm install -g @ohmyopencode/cli
opencode init
opencode chat