Skip to main content
Looking for the raw HTTP API? Check out the API Reference for direct REST endpoints.

Installation

1

Install the SDK

pip install orgo python-dotenv
2

Get your API key

  1. Create an account at orgo.ai
  2. Get your API key from orgo.ai/workspaces
  3. Create a .env file in your project:
.env
ORGO_API_KEY=sk_live_...
3

Launch a computer-use agent

from orgo import Computer
from dotenv import load_dotenv

load_dotenv()

# Create a computer
computer = Computer()

# Control it with natural language
computer.prompt("Open Firefox and search for AI news")

Organize with Workspaces

from orgo import Computer

# Create computer in a specific workspace
computer = Computer(workspace="production")

# Create multiple computers in the same workspace
agents = []
for i in range(3):
    agent = Computer(workspace="agents")
    agents.append(agent)

Manual Control

Mouse & Keyboard

# Mouse actions
computer.left_click(100, 200)
computer.right_click(300, 400)
computer.double_click(500, 300)
computer.scroll(direction="down", amount=3)

# Keyboard input
computer.type("Hello world")
computer.key("Enter")
computer.key("ctrl+c")

# Take screenshot
screenshot = computer.screenshot()  # Returns PIL Image
screenshot.save("screenshot.png")

# Or get base64
base64_image = computer.screenshot_base64()

Execute Code

# Run bash commands
output = computer.bash("ls -la")
print(output)

# Execute Python code
result = computer.exec("print('Hello from Python')")
print(result)

# Wait between actions
computer.wait(2.0)  # Wait 2 seconds
These methods give you full control to implement your own custom computer-use agent. See the API reference for all available methods.

AI Control

By default, prompt() uses Orgo’s hosted AI agent:
computer.prompt("Create a report on AI trends and save it as report.pdf")
You can also use your own Anthropic API key:
computer.prompt(
    "Create a report on AI trends and save it as report.pdf",
    provider="anthropic",
    api_key="sk-ant-..."
)

Advanced Options

computer.prompt(
    "Research the latest AI developments and create a summary",
    provider="anthropic",
    api_key="sk-ant-...",
    model="claude-sonnet-4-5-20250929",
    thinking_enabled=True,
    thinking_budget=2048,
    max_iterations=50,
    verbose=True,
    callback=lambda event, data: print(f"{event}: {data}")
)

Complete Example

from orgo import Computer
from dotenv import load_dotenv

load_dotenv()

# Create computer with custom specs
computer = Computer(
    workspace="research",
    name="research-agent",
    ram=8,
    cpu=4
)

try:
    # Track progress
    def on_progress(event_type, event_data):
        if event_type == "text":
            print(f"Agent: {event_data}")
        elif event_type == "tool_use":
            print(f"Action: {event_data.get('action')}")

    # Run task
    messages = computer.prompt(
        "Search for recent AI papers, summarize the top 3, and create a document",
        callback=on_progress
    )

    print("Task complete!")

    # Take screenshot
    screenshot = computer.screenshot()
    screenshot.save("result.png")

finally:
    computer.destroy()

Templates

Pre-configure computers with installed software:
from orgo import Template, Computer

# Create a template with pre-installed packages
template = Template("data-science")
template.run("pip install numpy pandas matplotlib jupyter")
template.build()

# Launch computers from the template
computer = Computer(template="data-science")
See the Templates guide for more details on creating and using templates.

Computer Specs

computer = Computer(
    workspace="ml-training",
    name="ml-trainer",
    ram=32,
    cpu=8,
    os="linux",
    gpu="a100-80gb"  # Coming soon
)
Defaults: linux, 4GB RAM, 2 CPU cores, no GPU Valid RAM/CPU pairs:
RAMCPUBest for
4 GB2 coresStandard workflows (default)
8 GB4 coresHeavy automation
16 GB8 coresDevelopment
32 GB8 coresLarge-scale processing
64 GB16 coresEnterprise workloads

Computer Lifecycle

# Check status
status = computer.status()
print(f"Status: {status['status']}")

# Restart computer
computer.restart()

# Connect to existing computer
existing = Computer(computer_id="comp_xyz789")

# Get computer URL
print(f"View at: {computer.url}")

# Delete when done
computer.destroy()
Computers automatically stop during inactivity to save resources. They restart automatically when you send commands.

Quiet Mode

Disable console output for production:
# Disable all console output
computer = Computer(workspace="production", verbose=False)

# Or for specific prompt calls
computer.prompt("Do something", verbose=False)

Environment Variables

ORGO_API_KEY=sk_live_...

# Optional - only needed if using provider="anthropic"
ANTHROPIC_API_KEY=sk-ant-...

Tips

dev = Computer(workspace="development")
test = Computer(workspace="testing")
prod = Computer(workspace="production")
try:
    computer.prompt("Do task")
finally:
    computer.destroy()
screenshot = computer.screenshot()
screenshot.save("debug.png")
def on_progress(event, data):
    print(f"{event}: {data}")

computer.prompt("Task", callback=on_progress)

Next Steps