Назад към всички

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 remotely, interacting with UI, managing files, or controlling streaming.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameorgo-desktop-control
descriptionProvision 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.
compatibilityRequires internet access and ORGO_API_KEY.
metadata[object Object]

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

  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 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:

  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

End of Skill