Orgo Desktop Control
by @cohenyehonatan
Provision and control Orgo cloud computers using the orgo_client Python SDK. Use when launching remote desktops, automating browsers, running bash/python rem...
clawhub install orgo-desktop-controlπ About This Skill
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:
Do NOT activate for local-only code.
High-Level Workflow
1. Instantiate client
2. Ensure workspace exists
3. Create computer
4. wait_until_ready()
5. Perform actions
6. Export results
7. Stop computer
Initialization
from orgo_client import OrgoClientclient = 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: 1. screenshot() 2. analyze state 3. click / type / drag 4. wait() 5. screenshot() 6. 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