- name
- orgo-desktop-control
- description
- Provision and control Orgo cloud computers using the orgo_client Python SDK. Use when launching remote desktops, automating browsers, running bash/python remotely, interacting with UI, managing files, or controlling streaming.
- compatibility
- Requires internet access and ORGO_API_KEY.
- metadata
- author
- custom
- version
- 1.0.0
Orgo Desktop Control Skill (Python SDK)
This skill uses orgo_client.py to create and control Orgo cloud computers safely.
Always use the SDK — do NOT manually construct HTTP requests.
When to Use This Skill
Activate when user requests:
- Launch a remote desktop
- Automate browser or UI
- Click, drag, type, scroll
- Execute bash or Python remotely
- Take screenshots
- Upload/export files
- Start/stop/restart environments
- Stream desktop output
- Access VNC credentials
- Build a computer-use agent
Do NOT activate for local-only code.
High-Level Workflow
- Instantiate client
- Ensure workspace exists
- Create computer
wait_until_ready()- Perform actions
- Export results
- Stop computer
Initialization
from orgo_client import OrgoClient
client = OrgoClient(api_key=os.environ["ORGO_API_KEY"])Workspace Management
Create:
ws = client.create_workspace("browser-agent")List:
client.list_workspaces()Delete (requires force):
client.delete_workspace(ws.id, force=True)Never delete without explicit user confirmation.
Computer Lifecycle
Create:
computer = client.create_computer(
workspace_id=ws.id,
name="agent-1",
ram=4,
cpu=2,
wait_until_ready=True
)Manual wait:
computer.start()
computer.stop()
computer.restart()Start / Stop / Restart:
computer.start()
computer.stop()
computer.restart()Delete (irreversible):
computer.delete(force=True)Always stop computers when idle.
UI Interaction
Click:
computer.click(100, 200)Right-click:
computer.right_click(100, 200)Double-click:
computer.double_click(100, 200)Drag:
computer.drag(100, 200, 400, 500)Scroll:
computer.scroll("down", amount=3)Type:
computer.type("Hello world")Key:
computer.key("Enter")
computer.key("ctrl+c")Wait:
computer.wait(2.0)Screenshots
img_b64 = computer.screenshot()Save to file:
computer.save_screenshot("screen.png")Execution
Bash:
result = computer.run_bash("ls -la")
print(result.output)Python:
result = computer.run_python("print('hi')")Errors raise OrgoError subclasses automatically.
Streaming
Start:
computer.stream_start("my-rtmp-connection")Status:
computer.stream_status()Stop:
computer.stream_stop()VNC
password = computer.vnc_password()Files
Upload:
client.upload_file("local.txt", ws.id, computer_id=computer.id)Export from VM:
file_record, url = computer.export_file("Desktop/output.txt")List:
computer.list_files(ws.id)Delete:
client.delete_file(file_id)Error Handling
All errors raise typed exceptions:
- OrgoAuthError
- OrgoForbiddenError
- OrgoNotFoundError
- OrgoBadRequestError
- OrgoServerError
- OrgoTimeoutError
- OrgoConfirmationError
Always handle destructive confirmations explicitly.
Recommended Automation Loop
For UI tasks:
- screenshot()
- analyze state
- click / type / drag
- wait()
- screenshot()
- repeat
Never assume UI state.
Efficiency Rules
- Use minimal RAM/CPU
- Stop instead of delete if continuing later
- Use wait_until_ready() instead of manual polling
- Avoid unnecessary screenshots
- Prefer run_bash over UI when possible