Tags, categories, labels, tools and cookbooks. You draft, validate and publish taxonomy changes in Recipe Organization; taxonomy-refresh and cookbook-sync then sync them to Mealie, and tag-categorize assigns them to recipes. Duplicate tags and categories are merged by cleanup-duplicates.
| Option |
Type |
Default |
Description |
dry_run |
boolean |
true |
Preview changes without writing anything. |
backup_first |
boolean |
false |
Create a Mealie backup before a live run. Hidden while dry_run=true. |
method |
string |
both |
both runs rules first then AI, rules uses rules only, ai skips rules. |
recat |
boolean |
false |
Re-process every recipe, including recipes that already have organization data. Hidden for rules. |
provider |
string |
configured default |
Override AI provider for this run. Hidden for rules. |
use_db |
boolean |
false |
Enable Direct DB matching for rules, including ingredient and tool matching. Hidden for ai. |
missing_targets |
string |
skip |
skip missing taxonomy targets or create them automatically. Hidden for ai. |
| Option |
Type |
Default |
Description |
dry_run |
boolean |
true |
Preview changes without writing anything. |
sync_labels |
boolean |
true |
Sync labels along with categories and tags. |
sync_tools |
boolean |
true |
Sync tools and merge duplicates from taxonomy config. |
mode |
string |
merge |
merge keeps existing entries; replace preserves entries still named in the source and removes unwanted entries after successful creation. |
cleanup_apply |
boolean |
false |
Dangerous. Permanently delete unused categories/tags. Hidden while dry_run=true. |
| Option |
Type |
Default |
Description |
dry_run |
boolean |
true |
Preview changes without writing anything. |
Each cookbook’s queryFilterString is a list of clauses joined with AND. CookDex accepts these clauses:
| Filter |
Fields |
Operators |
Example |
| Categories |
recipeCategory.name, recipe_category.id |
IN, NOT IN, CONTAINS ALL |
recipeCategory.name IN ["Dinner"] |
| Tags |
tags.name, tags.id |
IN, NOT IN, CONTAINS ALL |
tags.name NOT IN ["Dessert"] |
| Tools |
tools.name, tools.id |
IN, NOT IN, CONTAINS ALL |
tools.name IN ["Air Fryer"] |
| Foods |
recipeIngredient.food.name, recipeIngredient.food.id |
IN, NOT IN, CONTAINS ALL |
recipeIngredient.food.name IN ["Chicken"] |
| Food labels |
recipeIngredient.food.label.name, recipe_ingredient.food.label_id |
IN, NOT IN, CONTAINS ALL |
recipeIngredient.food.label.name IN ["Seafood"] |
| Rating |
rating |
=, <>, >, >=, <, <= |
rating >= 4 |
- Cookbook sync resolves category, tag, tool, and food-label names to Mealie ids before writing. If a name can’t be found, the filter is sent unchanged.
rating is the recipe’s average rating across all users, from 0 to 5. Unrated recipes never match a rating clause, including rating < 3.
- Rating filters need Mealie v3.25 or later, and food-label filters need v3.28 or later. When an older Mealie rejects one of these filters, the sync log says which version the filter needs.
Example: rating >= 4 AND recipeIngredient.food.label.name IN ["Seafood"].