> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroruntime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Observability Options

> Configure recording. Traces and metrics are captured for every session and shown on the Zero Runtime Dashboard.

Zero Runtime captures recording, traces, and metrics for every session. Recording is configured directly on `serve()` and on the per-session `Room` passed to `invoke()`. Traces and metrics are collected automatically and shown on the Zero Runtime Dashboard with no extra setup.

| Capability       | Where you configure it                                                                                  |
| ---------------- | ------------------------------------------------------------------------------------------------------- |
| Recording        | `serve(recording=...)` or the per-session `Room(recording=True)` / `invoke(..., recording_config=...)`. |
| Traces & metrics | Collected automatically for every session and shown on the Dashboard.                                   |

## Quick Start

Record sessions (audio + video):

<CodeGroup>
  ```python title="Python" Python theme={null}
  import zeroruntime
  from zeroruntime import Room

  AGENT_ID = "assistant"

  if __name__ == "__main__":
      zeroruntime.serve(
          Assistant,
          room=Room(recording=True, recording_video=True),
          on_ready=lambda: zeroruntime.invoke(
              AGENT_ID,
              room=Room(
                  playground=True,
                  recording=True,
              ),
          ),
      )
  ```

  ```typescript title="Node JS" Node JS theme={null}
  import * as zeroruntime from '@zeroruntime/js-sdk';
  import { Room } from '@zeroruntime/js-sdk';

  const AGENT_ID = 'assistant';

  zeroruntime.serve(Assistant, {
    room: Room({ recording: true, recording_video: true }),
    on_ready: () => zeroruntime.invoke(AGENT_ID, {
      room: Room({
        playground: true,
        recording: true,
      }),
    }),
  });
  ```
</CodeGroup>

## Recording

Audio is recorded by default; video and screen share are opt-in. Set the extra stream fields on the `Room` you pass to `serve()` or `invoke()` to set defaults for every session. See [Recording](/build/observability-and-monitoring/recording) for the full lifecycle.

| Parameter                | Type   | Default | Description                                                               |
| ------------------------ | ------ | ------- | ------------------------------------------------------------------------- |
| `recording_video`        | `bool` | `False` | Record the agent's camera video track (composite audio + video).          |
| `recording_screen_share` | `bool` | `False` | Record the screen-share track. Requires `vision=True` on the same `Room`. |

<CodeGroup>
  ```python title="Python" Python theme={null}
  import zeroruntime
  from zeroruntime import Room

  zeroruntime.serve(
      Assistant,
      room=Room(
          vision=True,
          recording=True,
          recording_video=True,
          recording_screen_share=True,
      ),
      on_ready=lambda: zeroruntime.invoke("assistant", room=Room(playground=True)),
  )
  ```

  ```typescript title="Node JS" Node JS theme={null}
  import * as zeroruntime from '@zeroruntime/js-sdk';
  import { Room } from '@zeroruntime/js-sdk';

  zeroruntime.serve(Assistant, {
    room: Room({
      vision: true,
      recording: true,
      recording_video: true,
      recording_screen_share: true,
    }),
    on_ready: () => zeroruntime.invoke('assistant', { room: Room({ playground: true }) }),
  });
  ```
</CodeGroup>

## Traces & metrics

Traces and metrics are collected for every session and shown on the Zero Runtime Dashboard automatically (no configuration needed). For programmatic, in-process access to metrics, use Pipeline Observability hooks (`@pipeline.metrics.on(...)`).

## What's Next

<CardGroup cols={2}>
  <Card title="Session Analytics" icon="chart-simple" href="/build/observability-and-monitoring/analytics/session-analytics">
    Review sessions on the Dashboard.
  </Card>

  <Card title="Trace Insights" icon="diagram-project" href="/build/observability-and-monitoring/analytics/traces">
    Drill into per-turn traces and spans.
  </Card>
</CardGroup>

## References

<Tabs>
  <Tab title="Python">
    #### Examples

    <CardGroup cols={2}>
      <Card title="Observability Hooks" icon="github" href="https://github.com/ZeroRuntimeAI/zeroruntime-python-examples/blob/main/observability/observability_hooks.py">
        Configure what is observed in a session.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Node JS">
    #### Examples

    <CardGroup cols={2}>
      <Card title="Observability Hooks" icon="github" href="https://github.com/ZeroRuntimeAI/zeroruntime-js-examples/blob/main/observability/pipeline_events.ts">
        Configure what is observed in a session.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>
