Looking for the raw HTTP API? Check out the API Reference for direct REST endpoints.
Installation
Install the SDK
pip install orgo python-dotenv
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
workspaces.py
workspaces.ts
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" )
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:
RAM CPU Best for 4 GB 2 cores Standard workflows (default) 8 GB 4 cores Heavy automation 16 GB 8 cores Development 32 GB 8 cores Large-scale processing 64 GB 16 cores Enterprise 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
Use workspaces to organize computers
dev = Computer( workspace = "development" )
test = Computer( workspace = "testing" )
prod = Computer( workspace = "production" )
try :
computer.prompt( "Do task" )
finally :
computer.destroy()
Take screenshots for debugging
screenshot = computer.screenshot()
screenshot.save( "debug.png" )
Track progress with callbacks
def on_progress ( event , data ):
print ( f " { event } : { data } " )
computer.prompt( "Task" , callback = on_progress)
Next Steps