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

# Installation

> Install Prefab and pin to a stable version.

## Install Prefab

We recommend using [uv](https://docs.astral.sh/uv/getting-started/installation/) to install and manage Prefab.

```bash theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
uv add prefab-ui
```

Or with pip:

```bash theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
pip install prefab-ui
```

Prefab requires Python 3.10+.

### Verify Installation

```bash theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
prefab version
```

## Versioning Policy

Prefab is pre-1.0 software under very active development. The API surface is evolving quickly — components get added, renamed, and reworked as the project discovers what patterns work best for building agent-native UIs.

### What This Means in Practice

**Minor versions (0.x.0) may include breaking changes.** Prefab follows semantic versioning with the standard pre-1.0 caveat: while the major version is `0`, any minor version bump can change the public API. A bump from `0.15.0` to `0.16.0` might rename components, change default behaviors, or restructure modules.

**Patch versions (0.0.x) are safe updates.** Patch releases contain only bug fixes without breaking changes.

### Pin Your Version

For any use beyond experimentation, pin to an exact version:

```
prefab-ui==0.15.0  # Good
prefab-ui>=0.15.0  # Bad — may install breaking changes
```

Or pin to a minor range if you want patch fixes:

```
prefab-ui>=0.15,<0.16  # OK — gets patches, not breaking changes
```

### Breaking Change Philosophy

Prefab is young, and that means being willing to fix API mistakes early rather than carrying them forever. Each breaking change is a deliberate decision to keep the framework simple and consistent rather than accumulating design debt.

When breaking changes occur:

* They only happen in minor versions (e.g., 0.15.x to 0.16.0)
* Release notes explain what changed and how to migrate
* Changes must substantially benefit users to justify disruption

### Public API

The public API — what's covered by compatibility guarantees within a minor version — consists of:

* All classes exported from `prefab_ui.components` and `prefab_ui.actions`
* `PrefabApp` and related app-level utilities
* The `prefab` CLI commands
* The JSON wire protocol schema

Everything else (internal modules, private methods, renderer internals) may change without notice.

Pin your dependencies and check release notes before upgrading.
