Orgo Desktop Control
Provision and control Orgo cloud computers using the orgo_client Python SDK. Use when launching remote desktops, automating browsers, running bash/python rem...
Description
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
End of Skill
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!