CLOUSD
Mở tài khoản
Tìm hiểuBenchmarkAgent đạt điểm thế nào trên điện thoại ClousdBlogSắp cóHướng dẫn, phân tích chuyên sâu và ghi chép thực tếSo sánhSắp cóClousd đặt cạnh các lựa chọn khác
Xây dựngTích hợpSắp cóMCP, Claude Code, Codex, Cursor, n8nGitHubSDK, MCP server và ví dụ
Đọc tài liệu

Tích hợp

Python SDK

Giao tác vụ cho điện thoại và viết script điều khiển bằng Python chỉ trong vài dòng.

Cài đặt

Terminal
pip install clousd
export CLOUSD_API_KEY=cl_live_…

Một tác vụ

Python
from clousd import Clousd

c = Clousd()                                   # key from CLOUSD_API_KEY
run = c.run("Open Settings and tell me the Android version", device="c3f9a41d2", wait=True)
print(run.status, run.answer)                  # completed  Android 15

# the same task on several phones at once
run = c.run("Open the app and tell me what the first screen shows", devices=["c3f9a41d2", "c81d07e5a"], wait=True)
for r in run.children:
    print(r.device, r.status, r.answer)

Theo dõi và trả lời

Python
login = c.credentials("com.example.shop")[0]  # names only; the values never leave Clousd
run = c.run("Sign in and tell me how many orders there are", device="c3f9a41d2", credentials=[login], mode="ask",
            output_schema={"type": "object", "properties": {"orders": {"type": "integer"}}})
for ev in run.events():                        # live: status, plan, step, card, answer, end
    if ev["event"] == "step":
        print(ev["data"]["n"], ev["data"]["tool"], ev["data"]["result"])
    if ev["event"] == "card":
        run.reply(allow=True)                  # or run.reply("the first one")
print(run.refresh().structured_output)         # {"orders": 3}
Tác vụĐăng nhập, lịch chạy, webhook
c.run(task, device=… / devices=[…]), device.run(task)c.credentials(), c.add_credential(package, name, fields)
run.wait(), run.events(), run.trajectory()c.schedules(), c.add_schedule(task, devices, at, days, tz, every="hour", trigger="api", more=[…]), c.run_schedule(id)
run.reply(), run.message(), run.cancel(), c.runs()c.webhooks(), c.add_webhook(url, events)

Từng bước

Python
phone = c.device("c3f9a41d2")
phone.open_app("com.android.chrome")           # act
phone.tap_text("Search")
phone.type("weather in Berlin")
phone.key("enter")
phone.wait_text("Berlin", timeout=30)          # check
png = phone.screenshot(width=540)              # look
NhìnThao tác
screenshot(), screen_text(), find_text()tap(), swipe(), scroll(), type(), key()
observe(), size(), installed()open_app(), open_url(), tap_text(), wait_text()
notifications(), crashes(), health()start(), stop(), restart(), reset()

Các thao tác dài trên thiết bị trả về một Job và mặc định sẽ chờ; truyền wait=False nếu muốn tự hỏi trạng thái. Lỗi ném ra ClousdError kèm mã HTTP và thông báo. Client tự chờ và thử lại khi gặp 429. Từ terminal: clousd run "…" --device … hiển thị trực tiếp từng bước.

Mã nguồn và ví dụ: clousd-sdk trên GitHub.