> ## 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 declares a TableModel in app.py, then runs `pxt schema update app.py <target>` to create the tables and `pxt service update` to serve routes. Do not call pxt.create_table() or add_embedding_index() in application code; declare 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.

# Starter kit

> uvx pixeltable-new copies a starter app. pxt schema update creates its tables. pxt service update starts the endpoints.

The [Pixeltable Starter Kit](https://github.com/pixeltable/pixeltable-starter-kit) is two apps.
`uvx pixeltable-new` copies one into a new directory.

First create the tables (`pxt schema update`), then start the endpoints (`pxt service update`), then try the app by inserting rows, calling `/ask`, or opening the dashboard.
A first run: [Quickstart](/overview/quick-start).

```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
uvx pixeltable-new myapp
cd myapp
uv sync
pxt schema update app.py agent
pxt service update app.py agent
```

`agent` is the catalog Pixeltable creates, not a folder on disk. For the video app, run `uvx pixeltable-new myapp --video` and use `videointel` as that catalog.
The scaffold includes `pixeltable.toml`. If you copied files by hand, run `pxt init` first.

Routes live on a `FastAPIRouter` in the same file as the `TableModel` classes.
If you already have a FastAPI app, mount the kit's router with `app.include_router(...)`. [HTTP serving](/howto/deployment/serving).
To skip endpoints, see [Self-hosting](/howto/deployment/overview) for the insert-and-export path.

## Apps

<Columns cols={2}>
  <Card title="Chat agent" icon="comments">
    The default app is the chat agent. You can insert documents without an API key; `/ask` needs `ANTHROPIC_API_KEY`.

    ```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
    uvx pixeltable-new myapp
    pxt schema update app.py agent
    ```
  </Card>

  <Card title="Video search" icon="film">
    Extracts video frames at 1 FPS, indexes them with CLIP, and accepts image uploads.

    ```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
    uvx pixeltable-new myapp --video
    pxt schema update app.py videointel
    ```
  </Card>
</Columns>

To run the same starter app on Pixeltable Cloud, create the hosted database, then create tables and start services against that `pxt://` URI:

```bash theme={"theme":{"light":"light-plus","dark":"dark-plus"}}
pxt db update pxt://org:mydb
pxt schema update app.py pxt://org:mydb
pxt service update app.py pxt://org:mydb
```

[Deploy to Pixeltable Cloud](/howto/deployment/cloud). `pxt service run` starts a service in your terminal and cannot target Cloud; use `pxt service update` for hosted endpoints.

<CardGroup cols={2}>
  <Card title="AI Skills" icon="robot" href="/resources/ai-skills">
    Teach an agent to write `TableModel` in `app.py`.
  </Card>

  <Card title="Clone the kit" icon="github" href="https://github.com/pixeltable/pixeltable-starter-kit">
    `chat-agent/` and `video-search/` in one repo.
  </Card>
</CardGroup>
