---
title: "Installing"
description: "Install Flower to use on the command-line and in Python projects."
order: 0
---

Before installing Flower, you need to have
[Python](https://www.python.org/downloads/) and
[uv](https://docs.astral.sh/uv/) installed.

To check that these programs are installed, run the following commands
in your Terminal:

``` {.bash filename="Terminal"}
python3 --version
uv --version
```

If Python and uv are installed, these commands will show you the
versions installed on your system. If you get an error, you need to
install them before continuing.

## Install globally

Installing Flower globally allows you to use it via the command line
from any location on your machine. You can install it globally with uv:

``` {.bash filename="Terminal"}
uv tool install "seedcase_flower @ git+https://github.com/seedcase-project/seedcase-flower"
```

You can now run Flower from any location on your computer by typing
`seedcase-flower` in the Terminal.

If you want to include shell auto-completions for Flower, you can
install them by running:

<!-- TODO: Confirm this installs it correctly after we officially publish -->

```{.bash filename="Terminal"}
seedcase-flower --install-completion
```

::: callout-note
Completions only work for bash, fish, and zsh shells.
:::

## Install in a Python project

If you only want to use Flower in within Python projects rather than
globally, it's generally recommended to install it in a project's
virtual environment to keep the project's dependencies isolated from the
system-wide Python setup and avoid conflicts. We use (and recommend)
[uv](https://docs.astral.sh/uv/).

We assume you've already created a Python project that has a
`pyproject.toml` file. If not, review uv's guide on making
[projects](https://docs.astral.sh/uv/guides/projects/).

While in the Terminal and in the project's directory, add Flower to your
project's virtual environment by running:

``` {.bash filename="Terminal"}
uv add "seedcase_flower @ git+https://github.com/seedcase-project/seedcase-flower"
```

<!-- TODO: Change to `uv add seedcase_flower` when we've released it on PyPI -->

You can check that Flower has been installed correctly by running this
command:

``` {.bash filename="Terminal"}
uv pip show seedcase_flower
```

If Flower has been installed successfully, the output will show details
about Flower, and you're now ready to start using Flower to format your
metadata.
