Skip to main content

Overview

The DeveloperClient streams structured logs into the room Developer Console and lets you subscribe to developer log events from other participants. Use it to debug agents, tools, and services during a live session. Key concepts:
  • Typed logs: Each log has a type string and a data payload.
  • Subscriptions: Call enable() to start receiving developer log events.
  • Fire-and-forget helpers: Some SDKs include convenience methods for quick logging.
Permissions: Developer log forwarding is controlled by the developer scope. See API Scopes.

Events

  • log
    Triggered when a developer log event is received. Handlers receive the log type and data.
def on_log(type: str, data: dict):
    print(f"[{type}] {data}")

room.developer.on("log", on_log)
await room.developer.enable()

API Methods

log

  • Description: Emit a developer log event.
  • Parameters:
    • type: A log category string (for example, "info" or "error").
    • data: A JSON-serializable payload with any extra fields.
  • Returns: None
await room.developer.log(type="info", data={"message": "Hello from DeveloperClient!"})

log_nowait

  • Description: Fire-and-forget log emission without awaiting a response.
  • Availability: Python and .NET SDKs.
  • Parameters:
    • type: A log category string.
    • data: A JSON-serializable payload.
  • Returns: None
room.developer.log_nowait(type="info", data={"message": "Log without await"})

info / warning / error

  • Description: Convenience helpers for emitting structured logs with common severity labels.
  • Availability: Python and Dart SDKs.
  • Parameters:
    • message: Human-readable text.
    • extra (optional): Additional fields to include with the log.
  • Returns: None
room.developer.info("Background sync started", extra={"phase": "init"})
room.developer.warning("Retrying sync", extra={"attempt": 2})
room.developer.error("Sync failed", extra={"reason": "timeout"})

enable

  • Description: Start receiving developer log events for the room.
  • Parameters: None.
  • Returns: None
await room.developer.enable()

disable

  • Description: Stop receiving developer log events for the room.
  • Parameters: None.
  • Returns: None
await room.developer.disable()