Codex: وضع Codex غير التفاعلي وعبر المنصات

آخر تحديث: 2026-08-31

الوضع غير التفاعلي يجعل Codex مناسبًا للبرامج النصية والأتمتة، بينما يتطلب Windows و Worktrees إعدادًا خاصًا.

📋 المتطلبات المسبقة: فهم عمليات Codex CLI الأساسية

1. ما ستتعلمه


2. الوضع غير التفاعلي

(1) طرق التشغيل

BASH
# Pass task directly, exits after execution
codex "Fix all lint errors"

# Quiet mode, less output
codex --quiet "Generate API documentation" > api-docs.md

# JSON output, suitable for programmatic parsing
codex --json "List all TODOs" > todos.json

# Fully automated
codex --full-auto --approval-policy approve "Run all tests and fix failures"

(2) إدخال الأنابيب

BASH
# Read from stdin
echo "Explain this code" | codex --quiet

# Read from file
cat error.log | codex --quiet "Analyze the error root cause"

# Combine with git
git diff main | codex --quiet "Review the changes"

(3) رموز الخروج

رمز الخروج الوصف
0 المهمة اكتملت بنجاح
1 المهمة فشلت
2 خطأ في المعلمات
130 قاطع المستخدم (Ctrl+C)

▶ مثال 1: نص الأتمتة لأليس

BASH
#!/bin/bash
# auto-fix.sh - Daily auto-fix script

# Pull latest code
git pull origin main

# Fix lint
codex --full-auto --quiet "Fix all lint errors"

# Generate missing tests
codex --full-auto --quiet "Generate unit tests for source files without tests"

# Run tests
npm test
if [ $? -eq 0 ]; then
  git add -A
  git commit -m "chore: daily auto-fix"
  git push origin main
  echo "✅ Auto-fix completed and pushed"
else
  echo "❌ Tests failed, skipping push"
fi

3. بيئة Windows

(1) طرق التثبيت

POWERSHELL
# Option 1: npm (requires Node.js)
npm install -g @openai/codex

# Option 2: WSL (recommended)
wsl
# Install as Linux within WSL

(2) إعداد PowerShell

POWERSHELL
# Set API Key
$env:OPENAI_API_KEY = "sk-your-key"

# Permanent configuration
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-your-key", "User")

# Set Base URL (DeepSeek)
$env:OPENAI_BASE_URL = "https://api.deepseek.com"

(3) مشاكل شائعة

المشكلة الحل
فواصل مسار مختلفة استخدم path.join() أو شرطات مائلة أمامية
مشاكل الترميز عيّن $OutputEncoding = [System.Text.Encoding]::UTF8
صلاحيات مقيدة شغّل PowerShell كمسؤول
الأمر غير موجود تحقق من متغير بيئة PATH

(4) WSL موصى به

BASH
# Install and use Codex within WSL
sudo npm install -g @openai/codex
export OPENAI_API_KEY="sk-xxx"
codex

4. تكامل Git Worktrees

(1) ما هي Worktrees

Git Worktrees تتيح لك سحب فروع متعددة من نفس المستودع إلى أدلة مختلفة في نفس الوقت، مثالية للتطوير المتوازي.

BASH
# Create worktree
git worktree add ../feature-auth feature/auth
git worktree add ../feature-payment feature/payment

(2) Codex + Worktrees

كل Worktree يمكنه تشغيل نسخة Codex مستقلة:

BASH
# Terminal 1: Work on auth feature
cd ../feature-auth
codex "Implement JWT authentication"

# Terminal 2: Work on payment feature
cd ../feature-payment
codex "Add Stripe payment"

▶ مثال 2: التطوير المتوازي لبوب

BASH
# Bob uses Worktrees for parallel development
git worktree add ../fix-bug-123 fix/bug-123
git worktree add ../new-feature new/feature-x

# Terminal 1
cd ../fix-bug-123
codex --full-auto "Fix Issue #123"

# Terminal 2
cd ../new-feature
codex "Implement feature X"

# Two tasks execute in parallel without interference

(3) تنظيف Worktrees

BASH
# List all worktrees
git worktree list

# Remove worktree
git worktree remove ../feature-auth

# Prune stale worktrees
git worktree prune

5. اعتبارات عبر المنصات

الاعتبار macOS/Linux Windows
فاصل المسار / \ (يُوصى بـ /)
نهايات السطور LF CRLF
متغيرات البيئة export KEY=value $env:KEY = "value"
Shell bash/zsh PowerShell/WSL
الأذونات chmod حوار الخصائص

❓ أسئلة شائعة

س هل يمكن للوضع غير التفاعلي استخدام Computer Use؟
ج لا. Computer Use يتطلب واجهة رسومية وتأكيدًا تفاعليًا، وهو غير مدعوم في الوضع غير التفاعلي.
س Windows أصلي أم WSL — أيهما أفضل؟
ج WSL أفضل. Codex CLI لديه أفضل توافق على Linux؛ WSL يوفر تجربة Linux أصلية.
س هل ستتعارض نسخ Codex في Worktrees؟
ج لا. كل Worktree هو دليل مستقل، نسخ Codex لا تتداخل. لكن لا تعدّل نفس الملف على نفس الفرع في نسختين.
س كيف يتعامل الوضع غير التفاعلي مع طلبات التأكيد؟
ج يتطلب --approval-policy approve أو --full-auto. وإلا سيتوقف. عمليات القراءة فقط يجب تستخدم deny؛ التعديلات تحتاج approve.
س ماذا عن مشاكل الترميز على Windows؟
ج عيّن ترميز PowerShell إلى UTF-8: [Console]::OutputEncoding = [System.Text.Encoding]::UTF8.

📖 ملخص


📝 تمارين

  1. أساسي (⭐): استخدم الوضع غير التفاعلي لمراجعة كود، أخرِج النتائج إلى ملف.
  2. متوسط (⭐⭐): اكتب نص أتمتة باستخدام الوضع غير التفاعلي لإصلاح lint + اختبار + التزام.
  3. متقدم (⭐⭐⭐): إعداد بيئة تطوير متوازية بـ Git Worktrees، نسختان من Codex تعملان على فروع مختلفة في نفس الوقت.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%