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

# Dashboard (local UI)

> Browse tables, inspect pipelines, preview media, and debug computed columns from a local web UI served by the pxt daemon.

The Pixeltable dashboard is a local web UI for exploring your data. It's served by the pxt daemon at [http://localhost:22089](http://localhost:22089).

No extra install is needed. The dashboard ships inside the `pixeltable` package and uses the same daemon that backs the [`pxt` CLI](/platform/cli).

## Opening the dashboard

Run `pxt dashboard` from a terminal:

```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
pxt dashboard
```

This auto-spawns the daemon if it isn't already running, prints the URL, and opens it in your default browser. The daemon survives across shells and stays warm; subsequent invocations just hand off the URL.

<Info>
  The dashboard binds to `127.0.0.1` only and is not accessible from other machines on the network. For remote access to tables and queries, see [HTTP Serving](/howto/deployment/serving).
</Info>

## What you can do

The dashboard is a **read-only inspector**. You browse and debug your data visually; all mutations (inserts, schema changes, etc.) happen through the Python SDK or [CLI](/platform/cli).

### Browse the catalog

The left sidebar has a sticky **Local / Cloud** catalog switcher. You browse **one active catalog** at a time: the in-process local home by default, or a hosted database you attach with a `pxt://org:db` URI. The tree under the switcher shows that catalog’s directories, tables, views, snapshots, and replicas. Each entry shows its kind (icon next to the name), version (`vN` when present), and error marks when relevant. Click a table to open it, or a directory for a summary and child list.

Large catalogs get a **Filter…** field under the switcher to narrow the tree by name. That is separate from global search: **Cmd/Ctrl + K** (search icon in the sidebar header) finds directories, tables, and columns across attached catalogs.

### Inspect table data

The main table view has three tabs:

* **Data** - paginated rows with typed columns, sortable by indexed columns, with configurable page sizes. Cells render inline previews for images, video, audio, and documents.
* **Lineage** - shows the table's position in the pipeline: its base table, derived views, and column-level dependency graphs.
* **History** - version list with change types (inserts, updates, deletes) and timestamps.

Above the data grid, a collapsible **COLUMNS** panel lists every column with its type, whether it is computed, stored vs. unstored, and any embedding indexes. Collapse it to a compact chip summary of the schema; expand for the full table. Click a computed expression to open a readable view (with a Raw toggle); Copy keeps the original string.

### Filter and search rows

A filter panel lets you narrow down the current page:

* **Free-text search** across all columns (debounced)
* **Faceted filters**: text contains, numeric ranges, datetime ranges, boolean/enum checklists
* **Errors-only mode**: server-side filter that shows only rows with computation errors, useful for debugging failed computed columns

### Preview media

Images and videos render inline in the data grid. Click any media cell to open a **lightbox** with keyboard navigation (arrow keys for prev/next). For image-heavy tables, a **gallery view** displays thumbnails in a grid with a detail overlay per row.

### Explore the pipeline

The **Lineage** page (lineage icon in the sidebar header, next to Search) shows a full-instance pipeline graph built with React Flow. Every table and view appears as a node, with edges showing relationships (base table, iterator, query dependencies).

Click any node to open a detail drawer with:

* Row count and version info
* Column breakdown (insertable, computed, stored)
* Embedding index definitions
* Computed column expressions with dependency graphs
* Version history

A **Find table** search on the canvas lets you jump to any node and fit it into view.

### Export data

Download the current table as **CSV** (up to 100,000 rows) from the table view.

### Copy SDK snippets

The table view includes a **Copy** button that generates the Python SDK code for opening the current table, making it easy to switch from visual inspection to scripted work.

## Configuration

| Setting     | Default | Environment variable | Description                                |
| ----------- | ------- | -------------------- | ------------------------------------------ |
| Daemon port | `22089` | `PXT_PORT`           | Port the daemon (and dashboard) listens on |

Set the port before invoking any `pxt` command:

```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
PXT_PORT=3000 pxt dashboard
```

## Keyboard shortcuts

| Shortcut         | Action                            |
| ---------------- | --------------------------------- |
| **Cmd/Ctrl + K** | Open global search                |
| **Cmd/Ctrl + F** | Focus in-table row filter         |
| **Esc**          | Close search, modals, or lightbox |
| **Arrow keys**   | Navigate media in lightbox        |

## Troubleshooting

**Port already in use**: If another process occupies port 22089, set a different port via `PXT_PORT=3000`. The daemon refuses to start on a bound port and the CLI surfaces the bind error.

**Daemon not responding**: Check `pxt daemon status` for a quick health report. If the daemon is stuck, `pxt daemon stop` then `pxt daemon start` cycles it.

**Static files missing**: The React app ships as pre-built static files inside the `pixeltable` package. If you installed from source, ensure the dashboard was built (`npm run build` in the `dashboard/` directory).
