Computer Control API
Bedien geregistreerde computers op afstand — commando's in de wachtrij, schermafbeeldingen, scripts uitvoeren op externe machines.
Computer Control API
De Computer Control API stelt u in staat geregistreerde computers op afstand te
bedienen. Een kleine agent (screen-remote-agent) draait op de doelmachine, pollt
naar commando's, voert ze uit en stuurt de resultaten terug. Dit maakt door LLM
aangestuurde GUI-automatisering mogelijk.
Architectuur
┌─────────────┐ queue cmd ┌──────────┐ poll ┌─────────────────┐
│ LLM Agent │ ───────────▶ │ Synapse │ ◀───── │ screen-remote │
│ (user-side) │ │ Server │ ──────▶│ (on target PC) │
└─────────────┘ └──────────┘ result └─────────────────┘
▲
│
┌─────────────┐
│ Human UI │
│ (browser) │
└─────────────┘Gebruikersgerichte eindpunten (Mind Key of JWT)
GET /computers/list
Toon alle geregistreerde computers.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/listGET /computers/:id
Haal details op van één computer.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001POST /computers/install-code
Genereer een installatiecode voor het registreren van een nieuwe computer.
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"}'Respons: { "install_code": "ic_xyz789", "expires_at": "..." }
POST /computers/:id/commands
Plaats een commando in de wachtrij voor uitvoering door de externe agent.
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": {}
}'Respons: { "command_id": "cmd_001", "status": "queued" }
GET /computers/:id/command (via query)
Plaats een commando via GET (voor eenvoudige gevallen).
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
"https://synapse.schaefer.zone/computers/comp_001/command?type=screenshot"GET /computers/:id/commands
Toon recente commando's voor een computer.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
"https://synapse.schaefer.zone/computers/comp_001/commands?limit=50"GET /computers/:id/commands/:cid
Haal status + resultaat van een specifiek commando op.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/commands/cmd_001GET /computers/:id/screenshot
Eenmalig: plaats een screenshot-commando in de wachtrij en wacht tot 30s op het resultaat.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/screenshot > screenshot.pngPOST /computers/:id/disable
Schakel een computer uit (trekt het token in, behoudt het record voor controle).
curl -X POST -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/disableDELETE /computers/:id
Verwijder een computer permanent.
curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001Agent-gerichte eindpunten (Computer Token)
Deze eindpunten worden gebruikt door de screen-remote-agent die draait op de
doelmachine. Ze gebruiken een Computer Token (geretourneerd door /computers/register),
geen Mind Key.
POST /computers/register
Wissel een installatiecode in en ontvang een Computer Token.
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"
}'Respons: { "computer_id": "comp_001", "computer_token": "ct_..." }
GET /computers/me/poll
Long-poll voor nieuwe commando's. De agent roept dit aan in een lus.
curl -H "Authorization: Bearer ct_YOUR_COMPUTER_TOKEN" \
"https://synapse.schaefer.zone/computers/me/poll?wait=30"Retourneert onmiddellijk als er commando's klaarstaan, of na wait seconden als dat niet zo is.
POST /computers/me/commands/:cid/result
Stuur het resultaat van het uitvoeren van een commando.
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..." }
}'Commando-typen
| Type | Payload | Beschrijving |
|---|---|---|
screenshot |
{} |
Maak schermafbeelding als PNG (base64) |
click |
{x, y} |
Klik op coördinaten |
move |
{x, y} |
Verplaats muis naar coördinaten |
type |
{text} |
Typ tekst op cursorpositie |
key |
{keys: ["Ctrl","c"]} |
Druk toetsencombinatie in |
scroll |
{deltaX, deltaY} |
Scroll-wiel |
drag |
{fromX, fromY, toX, toY} |
Slepen en neerzetten |
Veelvoorkomend patroon: door LLM aangestuurde GUI-automatisering
# 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 doneVolgende stappen
- Browser Proxy — aparte service voor browserautomatisering
- Self-Hosted Agents Guide