Official Python SDK for the Computer Agents Agentic Compute Platform API. Build with threads, computers, agents, resources, and databases.
Project description
Computer Agents Python SDK
The official Python SDK for the Computer Agents Cloud API. Build against the Agentic Compute Platform with threads, computers, resources, databases, skills, and agents.
Installation
pip install computer-agents
Quick Start
from computer_agents import ComputerAgentsClient
client = ComputerAgentsClient(api_key="ca_your_api_key")
# Execute a task
result = client.run(
"Create a REST API with Flask",
computer_id="env_xxx",
on_event=lambda e: print(e["type"]),
)
print(result.content)
print(f"Thread ID: {result.thread_id}")
Multi-Turn Conversations
# Create a thread for persistent conversation
thread = client.threads.create(environment_id="env_xxx")
# First message
result = client.threads.send_message(
thread["id"],
content="Create a Python web server",
on_event=lambda e: print(e),
)
# Follow-up (continues same session)
result2 = client.threads.send_message(
thread["id"],
content="Add authentication to the server",
)
Computers
# Create a custom computer
computer = client.computers.create(
name="data-science",
internet_access=True,
runtimes={"python": "3.12"},
)
# Install packages
client.computers.install_packages(computer["id"], "python", ["pandas", "numpy"])
# Add MCP servers
client.computers.update(
computer["id"],
mcp_servers=[{
"type": "stdio",
"name": "filesystem",
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "/workspace"],
}],
)
Supported Models
| Model | ID | Use Case |
|---|---|---|
| Claude 4.7 Opus | claude-opus-4-7 |
Latest Anthropic flagship, hardest coding and reasoning tasks |
| Claude 4.6 Opus | claude-opus-4-6 |
Most capable, complex tasks |
| Claude 4.5 Sonnet | claude-sonnet-4-5 |
Balanced Claude option |
| Claude 4.5 Haiku | claude-haiku-4-5 |
Fast, efficient |
| GPT-5.5 Pro | gpt-5.5-pro |
Highest-accuracy OpenAI model for the hardest professional and agentic work |
| GPT-5.5 | gpt-5.5 |
OpenAI frontier model for coding, professional work, and long-context agents |
| GPT-5.4 | gpt-5.4 |
OpenAI flagship for advanced coding and planning |
| GPT-5.4 mini | gpt-5.4-mini |
Fast OpenAI coding, subagents, and computer use |
| GPT-5.4 nano | gpt-5.4-nano |
Lightweight OpenAI model for simple, high-volume workflows |
| Gemini 3 Flash | gemini-3-flash |
Low-latency general workflows |
| Gemini 3.1 Flash | gemini-3-1-flash |
Alias tier that currently routes through the Gemini 3 Flash runtime |
| Gemini 3.1 Pro | gemini-3-1-pro |
Broader reasoning and research tasks |
| DeepSeek V4 Pro | deepseek-v4-pro |
DeepSeek flagship for agentic coding and long-context reasoning |
| DeepSeek V4 Flash | deepseek-v4-flash |
Fast, efficient DeepSeek model for agent execution |
| Kimi K2.6 | kimi-k2.6 |
Moonshot flagship via Cloudflare Workers AI for long-horizon coding and tool use |
Built-in system agents default to DeepSeek V4 Pro, while the Developer system agent defaults to Kimi K2.6.
Thread Feedback and Permissions
summary = client.threads.set_feedback(thread["id"], "up")
client.threads.report_issue(
thread["id"],
report_type="bug",
message="The thread missed the requested test run.",
)
requests = client.threads.list_permission_requests(thread["id"])
if requests:
client.threads.approve_permission_request(thread["id"], requests[0]["requestId"])
Tasks
task = client.tasks.create(
"Add login audit logs",
project_id="proj_xxx",
status="todo",
priority="high",
)
client.tasks.create_comment(
task["id"],
body="Include success and failure cases.",
)
started = client.tasks.start_thread(
task["id"],
environment_id="env_xxx",
)
result = client.tasks.run_thread(
task["id"],
environment_id="env_xxx",
message="Implement the ticket and summarize changed files.",
)
Computer Change History
history = client.computers.list_changes(
computer["id"],
limit=25,
project_id="proj_123",
operation=["created", "modified"],
)
latest = history["data"][0]
latest_file = latest["files"][0]
diff = client.computers.get_change_diff(
computer["id"],
latest["id"],
path=latest_file["path"],
)
file_state = client.computers.get_change_file(
computer["id"],
latest["id"],
path=latest_file["path"],
)
fork = client.computers.fork_from_change(
computer["id"],
latest["id"],
name="history-branch",
)
Agents
# Create a custom agent
agent = client.agents.create(
name="Code Reviewer",
model="claude-sonnet-4-5",
instructions="You are a thorough code reviewer.",
enabled_skills=["web_search"],
)
# Use the agent
thread = client.threads.create(
computer_id="env_xxx",
agent_id=agent["id"],
)
Files
# Upload a file
client.files.upload_file(
"env_xxx",
filename="app.py",
content='print("hello")',
path="src",
)
# Download a file
content = client.files.get_file("env_xxx", "src/app.py")
# Download a folder as a zip archive
zip_bytes = client.files.download_directory("env_xxx", "src")
# List files
files = client.files.list_files("env_xxx")
Git Operations
diff = client.git.diff("env_xxx")
client.git.commit("env_xxx", message="Update feature")
client.git.push("env_xxx")
Schedules
schedule = client.schedules.create(
name="Daily Report",
agent_id="agent_xxx",
agent_name="Reporter",
task="Generate daily report",
schedule_type="recurring",
cron_expression="0 9 * * *",
)
Resources
resource = client.resources.create(
name="crm-web",
kind="web_app",
auth_mode="public",
)
client.resources.deploy(resource["id"])
analytics = client.resources.get_analytics(resource["id"])
Databases
database = client.databases.create(name="crm-data")
client.databases.create_collection(database["id"], name="leads")
client.databases.create_document(
database["id"],
"leads",
data={"company": "Acme", "stage": "new"},
)
Skills
skills = client.skills.list()
print([skill["name"] for skill in skills])
Configuration
The API key can be provided via:
- Constructor argument:
ComputerAgentsClient(api_key="ca_...") - Environment variable:
COMPUTER_AGENTS_API_KEY
# Custom base URL and timeout
client = ComputerAgentsClient(
api_key="ca_...",
base_url="https://custom-api.example.com",
timeout=120.0,
debug=True,
)
Context Manager
with ComputerAgentsClient(api_key="ca_...") as client:
result = client.run("Hello world", computer_id="env_xxx")
print(result.content)
# Client is automatically closed
API Resources
| Resource | Description |
|---|---|
client.threads |
Conversation management with SSE streaming |
client.environments / client.computers |
Computer configuration and lifecycle |
client.agents |
Agent configuration (model, instructions, skills) |
client.resources |
Web apps, functions, auth modules, runtimes, and secret vaults |
client.web_apps / client.functions / client.auth / client.runtimes / client.secrets |
Product-shaped server resource managers |
client.databases |
Managed database surfaces |
client.skills |
Custom ACP skills |
client.files |
File management in computer workspaces |
client.tasks |
Planning tasks, comments, releases, sprints, and task-linked threads |
client.schedules |
Scheduled task management |
client.triggers |
Event-driven triggers |
client.orchestrations |
Agent-to-agent orchestration |
client.budget |
Budget and usage tracking |
client.billing |
Billing records and statistics |
client.git |
Git operations on computer workspaces |
client.notifications |
In-app notifications and push token registration |
Requirements
- Python >= 3.9
- httpx >= 0.25.0
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
MIT - see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file computer_agents-2.6.2.tar.gz.
File metadata
- Download URL: computer_agents-2.6.2.tar.gz
- Upload date:
- Size: 40.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ded285bdc9b94ff62a3cf0d6c4bb617972010299a4dabf8a9544e32b52b1b79
|
|
| MD5 |
40eed310893219c8884d7d90fad958e4
|
|
| BLAKE2b-256 |
6325d4edc5d7d536a86fc20e498d61b867a9fab0523d3e4d1e040d020a499c7b
|
File details
Details for the file computer_agents-2.6.2-py3-none-any.whl.
File metadata
- Download URL: computer_agents-2.6.2-py3-none-any.whl
- Upload date:
- Size: 46.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d13f7beddbced21a9d159e794cd55790a7fa0d310d7c42de89933eb3fd181200
|
|
| MD5 |
9d7bfa4b354f98f030d12ec3a4565ffa
|
|
| BLAKE2b-256 |
e3c64e40e098e0f1bbcca926367419640e36deef2e315a0b9776ba268e2331ae
|