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.6.0.tar.gz (32.7 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.6.0-py3-none-any.whl (38.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: computer_agents-2.6.0.tar.gz
  • Upload date:
  • Size: 32.7 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.6.0.tar.gz
Algorithm Hash digest
SHA256 c10b54411aa0a39a468ed4ee80b75bead489f697e8c8091e97a96dda6b3f2efa
MD5 d26ad1270201d06c687c5262493efcfb
BLAKE2b-256 b5e8d0d7045e1d77803ab01317e9d0ccaaff2e1b9b1fd00c4419e213672305ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for computer_agents-2.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08000aa3109482a84eb36dc2d0f31d7d7f4b1541f2690f8c353024a64e28fde5
MD5 e3dc52e0f64df091d302a89bfb11b518
BLAKE2b-256 4eb813c2a7057e8c0b589494a29e7ce7cb2e42e1f0718742ede5b75da234d1b5

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