Skip to content

💻 local dev setup

If you use codespaces or devcontainers, you don't need to set up a local development environment. But otherwise, follow these steps to set up some useful utilities.

🐧 Linux/WSL instructions

uv

To manage package dependencies and virtual environments.

curl -LsSf https://astral.sh/uv/install.sh | sh

Direnv

To load python virtual environments automatically and manage environment variables.

# Enter project
cd <project-folder>

# Install direnv
sudo apt update && sudo apt install direnv

# Add direnv to your shell
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc  # if you use bash
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc  # if you use zsh
eval "$(direnv hook bash)"  # add to current shell

# Add uv support to direnv
mkdir -p ~/.config/direnv/
cp .devcontainer/direnvrc ~/.config/direnv/direnvrc

When you enter the project folder, direnv will ask you to allow the .envrc file to be loaded. Allow it by running direnv allow.

Pre-commit

To run code formatting and linting before committing. In your projects, you should enable pre-commit hooks by running:

uv tool install pre-commit --with pre-commit-uv  # local user install
pre-commit install --install-hooks  # enable pre-commit hooks inside project

Commitizen

To help with conventional commits.

uv tool install commitizen --with cz-conventional-gitmoji

Copier

To create new repositories from cookie-doh.

uv tool install copier