Bilgisayar Kontrol API'si
Kayıtlı bilgisayarların uzaktan kontrolü — komut kuyruğa alma, ekran görüntüsü alma, uzak makinelerde betik çalıştırma.
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.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/listGET /computers/:id
Tek bir bilgisayarın detaylarını alın.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001POST /computers/install-code
Yeni bir bilgisayar kaydetmek için bir install code oluşturun.
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.
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).
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.
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.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/commands/cmd_001GET /computers/:id/screenshot
Tek seferlik: bir screenshot komutu kuyruğa al ve sonuç için en fazla 30s bekle.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/screenshot > screenshot.pngPOST /computers/:id/disable
Bir bilgisayarı devre dışı bırak (token'ını iptal eder, denetim için kaydı tutar).
curl -X POST -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/disableDELETE /computers/:id
Bir bilgisayarı kalıcı olarak sil.
curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001Ajana 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.
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_..." }
GET /computers/me/poll
Yeni komutlar için long-poll. Ajan bunu bir döngüde çağırır.
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.
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
# 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 doneSonraki Adımlar
- Browser Proxy — tarayıcı otomasyonu için ayrı hizmet
- Self-Hosted Agents Rehberi