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

# realtime

> Show where the Gateway's realtime server is, and stream realtime Gateway events as they arrive.

The Gateway publishes [realtime events](/docs/reference/events) on a private WebSocket channel. `realtime:show` shows where that channel is. `realtime:tail` connects to it and prints each event as it arrives. Realtime needs an active `websocket` role, as [Realtime events with Reverb](/docs/solutions/realtime-reverb) describes.

## Commands

| Command | Result |
| - | - |
| [`realtime:show`](#orbit-realtimeshow) | Show the Gateway's Reverb connection. |
| [`realtime:tail`](#orbit-realtimetail) | Stream realtime Gateway events as they arrive. |

Both commands accept `--json`.

## orbit realtime:show

Ask the active Gateway where its Reverb server is and which key and channel a client uses.

```bash theme={"dark"}
orbit realtime:show [--json]
```

Human output shows `Status` (`configured` or `not configured`), `URL`, `Channel`, and `Key`. The key is public. The Reverb app secret never leaves the Gateway. `URL` and `Key` show `—` when no Node holds an active `websocket` role. JSON returns `{ "url", "key", "channel", "request_id" }`, with `url` and `key` null in that case. `channel` is always `orbit`.

## orbit realtime:tail

Connect to the `orbit` channel and print every event until you stop the command.

```bash theme={"dark"}
orbit realtime:tail [--types=FILTER,...] [--json]
```

| Option | Meaning |
| - | - |
| `--types=FILTER,...` | Comma-separated type filters. Each filter is an exact type, such as `process.status`, or a family followed by `.*`, such as `node.*`. Without the option, every type prints. |
| `--json` | Print each event's full envelope as one JSON line. |

```bash theme={"dark"}
orbit realtime:tail
orbit realtime:tail --types=node.*,process.status
orbit realtime:tail --json
```

The command asks the Gateway for the connection, as `realtime:show` does, and signs its subscription through the Gateway. Human output prints one line per event: `<at>  <type>  <summary>`, where the summary lists the data fields as `key=value` pairs. JSON output prints the `{ type, id, at, data }` envelope, one object per line. Press Ctrl-C to stop.

| Error code | Meaning |
| - | - |
| `realtime.not_configured` | No `websocket` role is active. Poll the commands you need instead. |
| `input.noninteractive_required` | The command runs without a terminal and without `--json`. |
| `input.invalid` | A `--types` filter is not valid. |

When the socket drops, the command reconnects after 1, 2, 4, 8, and 16 seconds, and then every 30 seconds. It keeps trying, so it survives a Gateway restart or a short network loss.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.