HomeBrowseUpload
← Back to registry
// Skill profile

Orgo Desktop Control Skill (Python SDK)

name: orgo-desktop-control

by cohenyehonatan · published 2026-03-22

数据处理API集成
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:cohenyehonatan/cohenyehonatan-orgo-desktop-control
View on GitHub
// Full documentation

---

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

    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

    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band