Server-side execution of Claude computer use agents via WebSocket.
Executes Anthropic Claude computer use on Orgo VMs. See docs.orgo.ai for setup.
{
"type": "start",
"config": {
"computer_id": "uuid-of-your-computer",
"instruction": "Open Firefox and search for AI news"
}
}
| Field | Description | Default |
|---|---|---|
| computer_id | Orgo computer UUID | required |
| instruction | Task for the agent | required |
| model | Claude model | claude-sonnet-4-5-20250929 |
| display_width | Screen width | 1024 |
| display_height | Screen height | 768 |
| thinking_enabled | Extended thinking | true |
| thinking_budget | Thinking tokens | 1024 |
| max_tokens | Response tokens | 4096 |
| max_iterations | Max agent loops | 100 |
| system_prompt | Custom instructions | null |
| Event | Description | Data |
|---|---|---|
| status | Status update | string |
| thinking | Claude reasoning | string |
| text | Claude response | string |
| tool_use | Action requested | {action, params} |
| tool_result | Action complete | {action, ...} |
| screenshot | Screenshot taken | {size} |
| error | Error | string |
| result | Final result | {success, iterations} |
import asyncio, json, websockets
async def run():
uri = "wss://agent.orgo.ai/ws/prompt?token=YOUR_KEY"
async with websockets.connect(uri) as ws:
await ws.send(json.dumps({
"type": "start",
"config": {
"computer_id": "your-computer-uuid",
"instruction": "Open Firefox"
}
}))
async for msg in ws:
event = json.loads(msg)
print(f"[{event['type']}]", event.get('data'))
if event['type'] in ['result', 'error']: break
asyncio.run(run())
const ws = new WebSocket(`wss://agent.orgo.ai/ws/prompt?token=${KEY}`)
ws.onopen = () => ws.send(JSON.stringify({
type: "start",
config: { computer_id: "uuid", instruction: "Open Firefox" }
}))
ws.onmessage = e => {
const {type, data} = JSON.parse(e.data)
console.log(`[${type}]`, data)
if (type === 'result' || type === 'error') ws.close()
}