libre recipe recommendation app
build: add test coverage command
style: remove and add whitespace [ruff]
build: add command for formatting code



You can also use your local clone with git send-email.


builds.sr.ht status PyPI - Version License: AGPL v3

Minimal, libre recipe recommendation app.

The goal is simple: enter in ingredients you have and get back tasty recipes.


  • JSON API for adding recipes with an authenticated user.
  • Offer CLI for managing users and app state.
  • Expose configuration options through environment variables.


  • Web interface for managing recipes.
  • Filtering of recipes based on ingredient input.
  • Sample web scraper for uploading recipes.


Install package:

pip install mychef

Initialize application:

mychef init

Add a user:

mychef users add

Launch application server:

mychef run


You can configure parts of the application in the shell environment. Here's an example .env:

# Logging

# Database

# Security


The easiest way to develop locally with mychef is to use hatch. With hatch, you will have access to important helper scripts for running locally, linting, type-checks, testing, etc.


Lint and check types with:

hatch run check

Format code with:

hatch run format

Run test suite:

hatch run test

#Database Management

To upgrade the local database to latest schema, run:

hatch run db:upgrade

Now that the tables are created, you can add fixtures:

hatch run db:fixtures

If you add or update a table, you can generate a migration script by running:

hatch run db:migration

If the migration script wasn't generated, check to see if you imported the model to env.py.

#Local Server

Run the application server locally with:

hatch run dev

The server should reload on changes to the source code.


mychef is distributed under the terms of the AGPLv3 license.