Skip to main content

Command Palette

Search for a command to run...

CLI

Headless CLI Kullanımı

Kod analizi, üretimi ve yeniden düzenleme görevleri için Cursor CLI'ı betiklerde ve otomasyon iş akışlarında kullanın.

Nasıl çalışır

Etkileşimsiz betikler ve otomasyon için yazdırma modunu (-p, --print) kullanın.

Betiklerde dosyaları değiştirme

Betiklerde dosyaları değiştirmek için --print seçeneğini --force (veya --yolo) ile birlikte kullanın:

# Yazdırma modunda dosya değişikliklerine izin verinagent -p --force "Refactor this code to use modern ES6+ syntax"# --force olmadan değişiklikler yalnızca önerilir, uygulanmazagent -p "Add JSDoc comments to this file"  # Dosyaları değiştirmez# Gerçek dosya değişiklikleriyle toplu işlemefind src/ -name "*.js" | while read file; do  agent -p --force "Add comprehensive JSDoc comments to $file"done

Kurulum

Kurulumla ilgili tüm ayrıntılar için Kurulum ve Kimlik doğrulama bölümlerine bakın.

# Cursor CLI'ı yükleyin (macOS, Linux, WSL)curl https://cursor.com/install -fsS | bash# Cursor CLI'ı yükleyin (Windows PowerShell)irm 'https://cursor.com/install?win32=true' | iex# Betikler için API anahtarını ayarlayınexport CURSOR_API_KEY=your_api_key_hereagent -p "Analyze this code"

Örnek betikler

Farklı betik ihtiyaçları için farklı çıktı biçimleri kullanın. Ayrıntılar için Çıktı biçimi sayfasına bkz.

Kod tabanında arama

--print, varsayılan olarak yalnızca nihai yanıtı içeren temiz çıktılar için text formatını kullanır:

#!/bin/bash# Basit kod tabanı sorusu - varsayılan olarak metin biçimini kullanıragent -p "What does this codebase do?"

Otomatik kod incelemesi

Yapılandırılmış analiz için --output-format json kullanın:

#!/bin/bash# simple-code-review.sh - Temel kod inceleme betiğiecho "Starting code review..."# Son değişiklikleri inceleagent -p --force --output-format text \  "Review the recent code changes and provide feedback on:  - Code quality and readability  - Potential bugs or issues  - Security considerations  - Best practices compliance  Provide specific suggestions for improvement and write to review.txt"if [ $? -eq 0 ]; then  echo "✅ Code review completed successfully"else  echo "❌ Code review failed"  exit 1fi

Gerçek zamanlı ilerleme takibi

Mesaj düzeyinde ilerlemeyi takip etmek için --output-format stream-json kullanın veya deltaları artımlı olarak akıtmak için --stream-partial-output ekleyin:

#!/bin/bash# stream-progress.sh - Gerçek zamanlı ilerleme takibiecho "🚀 Starting stream processing..."# Gerçek zamanlı ilerlemeyi takip edinaccumulated_text=""tool_count=0start_time=$(date +%s)agent -p --force --output-format stream-json --stream-partial-output \  "Analyze this project structure and create a summary report in analysis.txt" | \  while IFS= read -r line; do        type=$(echo "$line" | jq -r '.type // empty')    subtype=$(echo "$line" | jq -r '.subtype // empty')        case "$type" in      "system")        if [ "$subtype" = "init" ]; then          model=$(echo "$line" | jq -r '.model // "unknown"')          echo "🤖 Using model: $model"        fi        ;;              "assistant")        # Yalnızca akış deltalarını işleyin (timestamp_ms var, model_call_id yok).        # Araç çağrılarından önce ve turun sonunda arabelleğe alınan boşaltmaları atlayın.        has_ts=$(echo "$line" | jq 'has("timestamp_ms")')        has_mc=$(echo "$line" | jq 'has("model_call_id")')        if [ "$has_ts" = "true" ] && [ "$has_mc" = "false" ]; then          content=$(echo "$line" | jq -r '.message.content[0].text // empty')          accumulated_text="$accumulated_text$content"          printf "\r📝 Generating: %d chars" ${#accumulated_text}        fi        ;;      "tool_call")        if [ "$subtype" = "started" ]; then          tool_count=$((tool_count + 1))          # Araç bilgilerini alın          if echo "$line" | jq -e '.tool_call.writeToolCall' > /dev/null 2>&1; then            path=$(echo "$line" | jq -r '.tool_call.writeToolCall.args.path // "unknown"')            echo -e "\n🔧 Tool #$tool_count: Creating $path"          elif echo "$line" | jq -e '.tool_call.readToolCall' > /dev/null 2>&1; then            path=$(echo "$line" | jq -r '.tool_call.readToolCall.args.path // "unknown"')            echo -e "\n📖 Tool #$tool_count: Reading $path"          fi        elif [ "$subtype" = "completed" ]; then          # Araç sonuçlarını alın ve gösterin          if echo "$line" | jq -e '.tool_call.writeToolCall.result.success' > /dev/null 2>&1; then            lines=$(echo "$line" | jq -r '.tool_call.writeToolCall.result.success.linesCreated // 0')            size=$(echo "$line" | jq -r '.tool_call.writeToolCall.result.success.fileSize // 0')            echo "   ✅ Created $lines lines ($size bytes)"          elif echo "$line" | jq -e '.tool_call.readToolCall.result.success' > /dev/null 2>&1; then            lines=$(echo "$line" | jq -r '.tool_call.readToolCall.result.success.totalLines // 0')            echo "   ✅ Read $lines lines"          fi        fi        ;;      "result")        duration=$(echo "$line" | jq -r '.duration_ms // 0')        end_time=$(date +%s)        total_time=$((end_time - start_time))        echo -e "\n\n🎯 Completed in ${duration}ms (${total_time}s total)"        echo "📊 Final stats: $tool_count tools, ${#accumulated_text} chars generated"        ;;    esac  done

İmajlarla çalışma

İmajları, medya dosyalarını veya diğer ikili verileri agente göndermek için istemlerinize dosya yolları ekleyin. Agent, imajlar, videolar ve diğer formatlar dahil tüm dosyaları araç çağırma aracılığıyla okuyabilir.

İstemlere dosya yolları ekleme

İstem metninizde dosya yollarını belirtmeniz yeterlidir. Agent, gerektiğinde dosyaları otomatik olarak okur:

# Bir imajı analiz etagent -p "Analyze this image and describe what you see: ./screenshot.png"# Birden fazla medya dosyasını işleagent -p "Compare these two images and identify differences: ./before.png ./after.png"# Dosya yollarını metin talimatlarıyla birlikte kullanagent -p "Review the code in src/app.ts and the design mockup in designs/homepage.png. Suggest improvements to match the design."

Nasıl çalışır

İsteminize dosya yolları eklediğinizde:

  1. Agent, dosya yolu referanslarını içeren isteminizi alır
  2. Agent, dosyaları otomatik olarak okumak için araç çağırmayı kullanır
  3. Görseller otomatik olarak işlenir
  4. Dosyalara göreli veya mutlak yollarla başvurabilirsiniz

Örnek: İmaj analiz betiği

#!/bin/bash# analyze-image.sh - İmajları arayüzsüz CLI ile analiz etmeIMAGE_PATH="./screenshots/ui-mockup.png"agent -p --output-format json \  "Analyze this image and provide a detailed description: $IMAGE_PATH" | \  jq -r '.result'

Örnek: Medyayı toplu işleme

#!/bin/bash# process-media.sh - Birden fazla medya dosyasını işlerfor image in images/*.png; do  echo "Processing $image..."  agent -p --output-format text \    "Describe what's in this image: $image" > "${image%.png}.description.txt"done