# Bilgisayar Kontrol API'si Computer Control API, kayıtlı bilgisayarları uzaktan kontrol etmenizi sağlar. Hedef makinede küçük bir ajan (`screen-remote-agent`) çalışır, komutlar için poll yapar, bunları yürütür ve sonuçları geri gönderir. Bu, LLM odaklı GUI otomasyonunu mümkün kılar. ## Mimari ``` ┌─────────────┐ queue cmd ┌──────────┐ poll ┌─────────────────┐ │ LLM Agent │ ───────────▶ │ Synapse │ ◀───── │ screen-remote │ │ (user-side) │ │ Server │ ──────▶│ (on target PC) │ └─────────────┘ └──────────┘ result └─────────────────┘ ▲ │ ┌─────────────┐ │ Human UI │ │ (browser) │ └─────────────┘ ``` ## Kullanıcıya Yönelik Uç Noktalar (Mind Key veya JWT) ### GET /computers/list Tüm kayıtlı bilgisayarları listele. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/computers/list ``` ### GET /computers/:id Tek bir bilgisayarın detaylarını alın. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/computers/comp_001 ``` ### POST /computers/install-code Yeni bir bilgisayar kaydetmek için bir install code oluşturun. ```bash curl -X POST https://synapse.schaefer.zone/computers/install-code \ -H "Authorization: Bearer YOUR_MIND_KEY" \ -H "Content-Type: application/json" \ -d '{"computer_name": "office-mac"}' ``` Yanıt: `{ "install_code": "ic_xyz789", "expires_at": "..." }` ### POST /computers/:id/commands Uzak ajanın yürütmesi için bir komut kuyruğa al. ```bash curl -X POST https://synapse.schaefer.zone/computers/comp_001/commands \ -H "Authorization: Bearer YOUR_MIND_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "screenshot", "payload": {} }' ``` Yanıt: `{ "command_id": "cmd_001", "status": "queued" }` ### GET /computers/:id/command (via query) GET ile komut kuyruğa al (basit durumlar için). ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ "https://synapse.schaefer.zone/computers/comp_001/command?type=screenshot" ``` ### GET /computers/:id/commands Bir bilgisayar için son komutları listele. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ "https://synapse.schaefer.zone/computers/comp_001/commands?limit=50" ``` ### GET /computers/:id/commands/:cid Belirli bir komutun durumu + sonucunu alın. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/computers/comp_001/commands/cmd_001 ``` ### GET /computers/:id/screenshot Tek seferlik: bir screenshot komutu kuyruğa al ve sonuç için en fazla 30s bekle. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/computers/comp_001/screenshot > screenshot.png ``` ### POST /computers/:id/disable Bir bilgisayarı devre dışı bırak (token'ını iptal eder, denetim için kaydı tutar). ```bash curl -X POST -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/computers/comp_001/disable ``` ### DELETE /computers/:id Bir bilgisayarı kalıcı olarak sil. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/computers/comp_001 ``` ## Ajana Yönelik Uç Noktalar (Computer Token) Bu uç noktalar hedef makinede çalışan `screen-remote-agent` tarafından kullanılır. Bir Mind Key değil, bir Computer Token (`/computers/register` tarafından döndürülür) kullanırlar. ### POST /computers/register Bir install code'u kullan ve bir Computer Token al. ```bash curl -X POST https://synapse.schaefer.zone/computers/register \ -H "Content-Type: application/json" \ -d '{ "code": "ic_xyz789", "computer_name": "office-mac", "platform": "darwin", "platform_release": "14.5.0", "python": "3.12.4" }' ``` Yanıt: `{ "computer_id": "comp_001", "computer_token": "ct_..." }` > [!CRITICAL] > `computer_token`'ı kaydedin — yalnızca bir kez gösterilir ve tüm ajan tarafı uç noktalar için gereklidir. ### GET /computers/me/poll Yeni komutlar için long-poll. Ajan bunu bir döngüde çağırır. ```bash curl -H "Authorization: Bearer ct_YOUR_COMPUTER_TOKEN" \ "https://synapse.schaefer.zone/computers/me/poll?wait=30" ``` Bekleyen komutlar varsa hemen döner, yoksa `wait` saniye sonra döner. ### POST /computers/me/commands/:cid/result Bir komutun yürütülmesinin sonucunu gönder. ```bash curl -X POST https://synapse.schaefer.zone/computers/me/commands/cmd_001/result \ -H "Authorization: Bearer ct_YOUR_COMPUTER_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "status": "done", "result": { "screenshot_b64": "iVBORw0KG..." } }' ``` ## Komut Tipleri | Tip | Payload | Açıklama | |------|---------|-------------| | `screenshot` | `{}` | Ekranı PNG olarak yakala (base64) | | `click` | `{x, y}` | Koordinatlarda tıkla | | `move` | `{x, y}` | Fareyi koordinatlara taşı | | `type` | `{text}` | İmleç konumunda metin yaz | | `key` | `{keys: ["Ctrl","c"]}` | Tuş kombinasyonuna bas | | `scroll` | `{deltaX, deltaY}` | Tekerleği kaydır | | `drag` | `{fromX, fromY, toX, toY}` | Sürükle ve bırak | ## Yaygın Desen: LLM Odaklı GUI Otomasyonu ```python # LLM agent workflow 1. List computers: GET /computers/list 2. Take screenshot: GET /computers/:id/screenshot 3. Analyze screenshot (vision model) 4. Queue click: POST /computers/:id/commands {type:"click", payload:{x,y}} 5. Wait for result: GET /computers/:id/commands/:cid 6. Take new screenshot to verify 7. Repeat until task done ``` ## Sonraki Adımlar - [Browser Proxy](/docs/api/browser) — tarayıcı otomasyonu için ayrı hizmet - [Self-Hosted Agents Rehberi](/docs/guides/self-hosted-agents)