Codex: وضع Codex غير التفاعلي وعبر المنصات
آخر تحديث: 2026-08-31
الوضع غير التفاعلي يجعل Codex مناسبًا للبرامج النصية والأتمتة، بينما يتطلب Windows و Worktrees إعدادًا خاصًا.
📋 المتطلبات المسبقة: فهم عمليات Codex CLI الأساسية
1. ما ستتعلمه
- الوضع غير التفاعلي بالتفصيل
- إعداد بيئة Windows
- تكامل Git Worktrees
- اعتبارات عبر المنصات
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.📖 ملخص
- الوضع غير التفاعلي: مناسب لتكامل البرامج النصية والأتمتة
- Windows: WSL موصى به، PowerShell يحتاج إعداد ترميز
- Git Worktrees: تطوير متوازي متعدد الفروع، كل Worktree يشغل Codex مستقل
- عبر المنصات: انتبه لفروق المسارات ونهايات السطور ومتغيرات البيئة
📝 تمارين
- أساسي (⭐): استخدم الوضع غير التفاعلي لمراجعة كود، أخرِج النتائج إلى ملف.
- متوسط (⭐⭐): اكتب نص أتمتة باستخدام الوضع غير التفاعلي لإصلاح lint + اختبار + التزام.
- متقدم (⭐⭐⭐): إعداد بيئة تطوير متوازية بـ Git Worktrees، نسختان من Codex تعملان على فروع مختلفة في نفس الوقت.