{"library":"plato-sdk-v2","title":"Plato Python SDK (v2)","description":"The Plato Python SDK (v2) provides a powerful interface for browser automation and task execution, enabling developers to efficiently create and manage browser environments and execute tasks. It is currently at version 2.62.4 and is under active development, with frequent updates indicated by recent changelogs.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install plato-sdk-v2"],"cli":{"name":"plato","version":"2.87.8"}},"imports":["from plato.v2 import AsyncPlato, Env"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import asyncio\nimport os\nfrom plato.v2 import AsyncPlato, Env\n\nasync def main():\n    # Ensure PLATO_API_KEY environment variable is set\n    # export PLATO_API_KEY=\"your_api_key_here\"\n    if not os.environ.get(\"PLATO_API_KEY\"):\n        print(\"Error: PLATO_API_KEY environment variable not set.\")\n        print(\"Please generate your API key from the Plato dashboard and set it.\")\n        return\n\n    # Initialize the client\n    plato = AsyncPlato()\n\n    # Create a session with an example environment (e.g., 'espocrm' simulator)\n    session = await plato.sessions.create(\n        envs=[Env.simulator(\"espocrm\")]\n    )\n\n    try:\n        # Reset the environment to its initial state\n        await session.reset()\n\n        # Get the public URL to access the application (if applicable)\n        urls = await session.get_public_url()\n        print(f\"Access your environment at: {urls}\")\n\n        # Execute a command within the environment\n        result = await session.execute(\"whoami\")\n        print(f\"Running as: {result}\")\n\n        # Get the current state of the environment\n        state = await session.get_state()\n        print(f\"State: {state}\")\n\n    except Exception as e:\n        print(f\"An error occurred: {e}\")\n    finally:\n        # Always clean up and close the session\n        await session.close()\n        await plato.close()\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n","lang":"python","description":"This quickstart demonstrates how to initialize the `AsyncPlato` client, create and manage a session with a simulated environment, execute commands, retrieve state, and ensure proper cleanup. It relies on the `PLATO_API_KEY` environment variable for authentication.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"2.87.8","pypi_latest":"2.87.8","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":80,"avg_install_s":29.2,"avg_import_s":5.56,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":5.24,"mem_mb":46.1,"disk_size":"345.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":33.8,"import_time_s":4.13,"mem_mb":46.1,"disk_size":"332M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":6.61,"mem_mb":47.6,"disk_size":"376.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":32,"import_time_s":5.92,"mem_mb":47.6,"disk_size":"364M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":5.91,"mem_mb":46.8,"disk_size":"361.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":26,"import_time_s":6.04,"mem_mb":46.8,"disk_size":"349M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":5.17,"mem_mb":48.4,"disk_size":"361.7M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"plato-sdk-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":24.9,"import_time_s":5.42,"mem_mb":48.4,"disk_size":"349M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"plato-sdk-v2","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"plato-sdk-v2","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}