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

# Live inspect

> Inspect live data flowing through your Turbo pipelines in real-time

## Overview

Live Inspect provides an interactive terminal user interface (TUI) for monitoring and debugging your pipelines. View live data samples as they flow through each topology node (sources, transforms, and sinks) with features like multi-tab navigation, search, and scrolling.

<Tip>
  Use Live Inspect when debugging pipeline logic, verifying transform outputs,
  or understanding data flow through complex pipelines.
</Tip>

## Basic usage

Inspect live data from a running pipeline:

```bash theme={null}
goldsky turbo inspect my-pipeline
```

Or use a pipeline configuration file:

```bash theme={null}
goldsky turbo inspect my-pipeline.yaml
```

This opens an interactive TUI that displays live data organized by topology node, with real-time updates as new records arrive.

## Command options

<ParamField path="NAME_OR_FILE" type="string" required>
  Pipeline name or path to YAML configuration file
</ParamField>

<ParamField path="-n, --topology-node-keys" type="string">
  Comma-separated list of topology node keys to filter. Only shows data from the
  specified nodes. Example: `-n source1,transform1`
</ParamField>

<ParamField path="-b, --buffer-size" type="integer" default="10000">
  Maximum number of records to keep in the TUI buffer. Older records are removed when this limit is reached.
</ParamField>

<ParamField path="-p, --print" type="boolean" default="false">
  Print records to stdout instead of opening the TUI. Useful for piping data to other tools or redirecting to files.
</ParamField>

## TUI interface

The inspect command opens an interactive terminal interface with the following features:

### Multi-tab navigation

Data is organized into tabs by topology node. The **All** tab shows records from all nodes, while individual tabs show records from specific sources, transforms, or sinks. Tabs appear dynamically as data arrives from each node.

| Key                      | Action                |
| ------------------------ | --------------------- |
| `Tab`, `→`, or `l`       | Next tab              |
| `Shift+Tab`, `←`, or `h` | Previous tab          |
| `1-9`                    | Jump to tab by number |

### Scrolling

Navigate through records using keyboard or mouse:

| Key            | Action               |
| -------------- | -------------------- |
| `j` or `↓`     | Scroll down one line |
| `k` or `↑`     | Scroll up one line   |
| `g` or `Home`  | Jump to top          |
| `G` or `End`   | Jump to bottom       |
| `Page Up/Down` | Scroll by page       |
| Mouse wheel    | Scroll up/down       |

<Tip>
  Hold `Shift` while using the mouse to select and copy text from the TUI.
</Tip>

### Search

Search across all visible records with highlighted matches:

| Key     | Action                                               |
| ------- | ---------------------------------------------------- |
| `/`     | Start search                                         |
| `Enter` | Execute search                                       |
| `n`     | Jump to next match                                   |
| `N`     | Jump to previous match                               |
| `Esc`   | Cancel search input, or clear an active search query |

### Pipeline definition

Press `d` to toggle the pipeline definition view. On the **All** tab, this shows the complete pipeline YAML. On individual node tabs, it shows only that node's configuration.

### Additional shortcuts

| Key                                             | Action                         |
| ----------------------------------------------- | ------------------------------ |
| `w`                                             | Open pipeline in web dashboard |
| `e`                                             | Open pipeline in web editor    |
| `q`, `Ctrl+C`, or `Esc` (when no active search) | Quit                           |

## Filtering topology nodes

By default, Live Inspect shows data from all nodes in your pipeline. Filter to specific nodes using the `-n` flag:

```bash theme={null}
# Inspect only a specific source
goldsky turbo inspect my-pipeline -n polygon_transfers

# Inspect multiple nodes
goldsky turbo inspect my-pipeline -n filtered_transfers,enriched_events
```

<Tip>
  Use filtering to focus on specific parts of your pipeline when debugging
  complex data flows.
</Tip>

## Auto-reconnection

The TUI automatically reconnects when:

* The pipeline is updated, paused, or resumed
* The connection is temporarily lost
* The pipeline is stopped and restarted

While waiting to reconnect, the TUI displays a "Reconnecting..." status and preserves previously received data. The status bar shows the time since the last record was received.

<Info>
  The TUI has a 30-minute connection timeout. If the pipeline remains unreachable for 30 minutes, the TUI automatically closes with a message suggesting you check the pipeline status.
</Info>

## Buffer management

The TUI maintains a buffer of recent records for scrolling and searching. By default, it keeps the last 10,000 records. Adjust this with the `-b` flag:

```bash theme={null}
# Keep more records for longer history
goldsky turbo inspect my-pipeline -b 50000

# Use less memory with a smaller buffer
goldsky turbo inspect my-pipeline -b 1000
```

When the buffer is full, older records are removed as new ones arrive.

## Print mode

Use the `--print` flag to stream records directly to stdout instead of opening the TUI. This is useful for:

* Piping data to other tools like `jq` for filtering or transformation
* Redirecting output to files for later analysis
* Integrating with shell scripts or automation workflows

```bash theme={null}
# Stream records to stdout
goldsky turbo inspect my-pipeline --print

# Filter JSON output with jq
goldsky turbo inspect my-pipeline -p | jq '.data.value'

# Save records to a file
goldsky turbo inspect my-pipeline -p > records.json

# Filter specific fields and save
goldsky turbo inspect my-pipeline -p | jq -c '{block: .block_number, hash: .tx_hash}' >> filtered.jsonl
```

In print mode:

* Records are pretty-printed as JSON to stdout
* Status messages (like "Streaming live data...") are sent to stderr
* Press `Ctrl+C` to stop streaming
* Each record is separated by a line of dashes for readability

<Tip>
  Combine `--print` with `-n` to filter to specific topology nodes before piping to other tools.
</Tip>

## Example

Inspect a pipeline and filter to a specific transform:

```bash theme={null}
goldsky turbo inspect erc20-filtered-transfers -n filtered_transfers
```

The TUI displays:

* Pipeline name and status in the header
* Tabs for each topology node receiving data
* Live records with JSON pretty-printing
* Status bar with last record time and keyboard shortcuts

## Use cases

<AccordionGroup>
  <Accordion title="Debugging transform logic">
    Use Live Inspect to verify that your SQL transforms are filtering and transforming data correctly. Switch between tabs to compare input and output of each transform.
  </Accordion>

  <Accordion title="Verifying data sources">
    Quickly verify that your sources are producing data in the expected format. Use search to find specific records or patterns.
  </Accordion>

  <Accordion title="Monitoring deployments">
    After deploying with `goldsky turbo apply -i`, the TUI opens automatically so you can verify data is flowing correctly.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="No data appearing">
    If you don't see any data:

    * Verify your pipeline is running: `goldsky turbo list`
    * Check that data is flowing: `goldsky turbo logs my-pipeline`
    * The TUI shows "Waiting for records..." until data arrives
    * If the pipeline is starting, the TUI will auto-reconnect when it becomes active
  </Accordion>

  <Accordion title="Pipeline not found">
    If you see "Pipeline not found", verify the pipeline name with `goldsky turbo list` or check that your YAML file path is correct.
  </Accordion>
</AccordionGroup>
