The tasks that clean and audit recipes. data-maintenance runs most of them as stages in one run; the others run one job on their own. For a walk-through, see Data maintenance pipeline.
| 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. |
stages |
string list |
all stages |
Select stages: dedup, junk, names, parse, foods, units, labels, tools, taxonomy, categorize, cookbooks, yield, quality, audit. |
confidence_threshold |
integer |
70 |
Ingredient parser NLP confidence percentage. Lower accepts more NLP results and reduces AI fallback. |
max_recipes |
integer |
unset |
Limit ingredient parsing when the parse stage runs. |
no_cache |
boolean |
false |
Ignore the ingredient parser scan cache. |
reason |
string |
all categories |
Limit junk filtering to one category. |
force_all |
boolean |
false |
Normalize all names, not only unformatted names. |
provider |
string |
configured default |
Override AI provider for categorization: chatgpt, anthropic, or ollama. |
taxonomy_mode |
string |
configured default |
Override taxonomy refresh mode: merge or replace. |
use_db |
boolean |
false |
Enable Direct DB for the quality and yield stages. |
nutrition_sample |
integer |
200 |
API-mode nutrition sample size for the quality stage. Hidden when use_db=true. |
continue_on_error |
boolean |
false |
Keep running later stages if one stage fails. |
apply_cleanups |
boolean |
false |
Dangerous. Allows cleanup stages to write changes. Hidden while dry_run=true. |
Default stage order:
dedup -> junk -> names -> parse -> foods -> units -> labels -> tools -> taxonomy -> categorize -> cookbooks -> yield -> quality -> audit
| 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. |
run_dedup |
boolean |
true |
Remove imported duplicates with the same source URL. |
run_junk |
boolean |
true |
Remove records missing both meaningful ingredients and usable instructions; report ambiguous title matches for review. |
run_names |
boolean |
true |
Normalize names derived from URL slugs. |
reason |
string |
all categories |
Limit junk filtering to one category. |
force_all |
boolean |
false |
Normalize all recipe names, not only unformatted names. |
use_db |
boolean |
false |
Advanced fallback for deleting corrupted duplicate recipes when the API returns 500. Requires Direct DB settings. |
| Option |
Type |
Default |
Description |
dry_run |
boolean |
true |
Scan only and print mismatches plus SQL fix statements. |
use_db |
boolean |
false |
Apply fixes directly through Mealie’s database. Required for writing. |
| 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. |
max_recipes |
integer |
unset |
Limit parsing to at most N recipes. |
no_cache |
boolean |
false |
Ignore the scan cache and reprocess all unparsed recipes. |
confidence_threshold |
integer |
70 |
Minimum NLP confidence percentage before accepting a parse. Low-confidence lines fall back to AI parsing. |
| Option |
Type |
Default |
Description |
dry_run |
boolean |
true |
Preview changes without writing anything. |
use_db |
boolean |
false |
Write changes in one DB transaction instead of many API calls. |
| Option |
Type |
Default |
Description |
dry_run |
boolean |
true |
Preview eligible recipes. |
backup_first |
boolean |
false |
Create a Mealie backup before a live run. Hidden while dry_run=true. |
max_recipes |
integer |
unset |
Limit reimport to at most N recipes. |
workers |
integer |
2 |
Concurrent scrape workers, capped at 4. |
delay |
number |
0.5 |
Seconds between requests per worker. |
resume |
boolean |
false |
Skip recipes in the durable completion checkpoint; previews do not overwrite it. |
slugs |
string |
unset |
Comma-separated recipe slugs to reimport. Leave blank for all eligible recipes. |
When invoking python -m cookdex.recipe_reimporter directly, writes require --apply; DRY_RUN=true still overrides that flag.
Reimport normally uses the Mealie API. If Direct DB is configured, it can repair a slug mismatch fallback when Mealie rejects an update with a 403.
| Option |
Type |
Default |
Description |
scope_quality |
boolean |
true |
Score recipe completeness for categories, tags, tools, ingredients, cook time, yield, and nutrition. |
scope_taxonomy |
boolean |
true |
Scan taxonomy for unused entries, duplicate names, and recipes missing categories or tags. |
use_db |
boolean |
false |
Fetch all recipe data in one query for faster and exact nutrition coverage. |
nutrition_sample |
integer |
200 |
API-mode nutrition sample size. Hidden when use_db=true. |
health-check is read-only and does not expose a dry_run option.