Skip to main content

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

PyPI version Python versions License: MIT

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"],
    }],
)

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")

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

  1. Constructor argument: ComputerAgentsClient(api_key="ca_...")
  2. 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, and runtimes
client.databases Managed database surfaces
client.skills Custom ACP skills
client.files File management in computer workspaces
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

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

computer_agents-2.5.0.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

computer_agents-2.5.0-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

Details for the file computer_agents-2.5.0.tar.gz.

File metadata

  • Download URL: computer_agents-2.5.0.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for computer_agents-2.5.0.tar.gz
Algorithm Hash digest
SHA256 1069d997403831850907a6fc62f5c17952a103be41b85ac96e6e6e698ec4bd43
MD5 b50b88e0a2ac68bd6ac897b1eb3fd623
BLAKE2b-256 5f1bb509a97d2734a4d8ed493539126028cb96f16c5f86c0b2c811cb42fb5242

See more details on using hashes here.

File details

Details for the file computer_agents-2.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for computer_agents-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94c0c4f70e99ee19319cf5d17f6dcbffdb555631b0e4e4427f563c81a34806b4
MD5 b64c8f95f3779ddd0f22732151bdb23a
BLAKE2b-256 9dcc867de852c36e5a0bb7119eb41dda9e17775be87a2229ee5a82f0cb6b3124

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page