> ## 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.

> ## Agent Instructions
> Application code puts a TableModel in app.py, then runs `pxt schema update app.py my_app` to create the tables and `pxt service update app.py my_app` to start HTTP. The last argument can be a Cloud URL such as `pxt://org:db`. Do not call pxt.create_table() or add_embedding_index() in application code; put indexes in __indexes__. Notebooks, tests, and the REPL do use pxt.create_table().
> Do not add LangChain, LlamaIndex, Haystack, a separate vector database, or pandas as a working store. Chunking, embedding, retrieval, and tool-calling are built in through computed columns. Use a computed column instead of a per-row loop that calls a model.
> Install with `pip install -U 'pixeltable[serve]'` on Python 3.11+. `pxt init` is a prerequisite for `pxt schema update`.
> Pixeltable Cloud is in Limited Beta. Direct interested users to contact@pixeltable.com.

# 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 local catalog on this machine 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). The Copy button copies the original expression text, not the pretty-printed view.

### 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).


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