Skip to content

Create a project

Pyzed installs the pyzed command. It creates a complete project with uv, a tool that installs Python packages and keeps each project in its own environment (the pip and python tabs install uv for you):

Windows, macOS and Linux
uvx --from pyzed-ui pyzed new my-app # uvx runs pyzed without installing it
cd my-app
uv run pyzed design # open the main form in the visual designer
uv run pyzed run # run the app

This generates a standard uv project:

my-app/
├── pyproject.toml # dependencies (pyzed-ui; ruff and ty for development) + [tool.pyzed]
├── uv.lock
├── .venv/
├── .git/
├── src/my_app/ # backend
└── ui/ # forms (.pzform) and their event handlers (.py)

The UI folder keeps the interface apart from the rest of the code, and its handlers can import the backend, any module of the project and every dependency. Already have a project made with uv init? Run pyzed init inside it. See Projects with uv for the layout, dependency commands and the designer’s Project tab, and Build and distribute to package the app for each platform.

To start from code instead of the designer, --script creates one main.py without uv:

Windows, macOS and Linux
uvx --from pyzed-ui pyzed new my-app --script
cd my-app
uv run --with pyzed-ui main.py

The template already includes:

  • A ui.workspace with a title bar, left panel and status bar.
  • Navigation between pages with ui.list_item.
  • A command palette that opens with Ctrl+Shift+P and closes with Esc.
  • A button to switch between light and dark themes.

Pyzed includes the ~2000 Lucide icons. To search for names:

Windows, macOS and Linux
uv run pyzed icons folder
# folder, folder-open, folder-git, folder-plus, ...

Use them with pz.icon("folder") or with the icon= parameter of components.

python -m pyzed is equivalent to the pyzed command:

Windows, macOS and Linux
uv run python -m pyzed new another-app