Allergen guide
Fish in recipes — how Frittu checks and excludes it
Fish is one of the most common food allergens, and it hides in a wide range of condiments and cooking stocks that do not carry the word “fish” in their name. This page explains what Frittu's system does, specifically, when fish is listed as an excluded ingredient in a user's profile — including how it handles Worcestershire sauce, Asian fish sauces, and Japanese dashi.
Fish in everyday cooking
The fish allergen covers a broad category: any finned fish, including salmon, tuna, cod, tilapia, trout, sardine, mackerel, and halibut. For most people with a fish allergy, the risk extends across the whole category — not just to certain species. The challenge in recipe generation is that fish derivatives frequently appear in condiments and stocks where you would not immediately think to look for them.
Worcestershire sauce is the most commonly encountered hidden fish source in Western cooking. It contains anchovies — fermented into the sauce during production — which produce a savoury depth without a distinctly fishy flavour. A recipe that calls for Worcestershire sauce as a marinade ingredient will not mention fish anywhere in its title or description. Frittu's keyword list flags Worcestershire sauce directly so it is caught in the post-generation check regardless of how the ingredient is named in the recipe.
Asian cooking adds another layer. Fish sauce — sold as nam pla (Thai), nuoc mam (Vietnamese), or simply “fish sauce” — functions as the salt-equivalent in many South-East Asian dishes and is used in quantities where it contributes background seasoning rather than an overt fish flavour. Japanese cooking uses dashi, a stock made primarily from katsuobushi (dried bonito flakes), as the base for miso soup, ramen, and most simmered dishes. Neither “dashi” nor “katsuobushi” contains the word “fish,” which is why both are in Frittu's keyword list.
How Frittu's allergen check works
When your profile lists fish as an excluded ingredient, Frittu applies a two-layer check to every recipe it generates.
Layer 1 — prompt-side instruction.Before sending a generation request to Claude, Frittu builds an exclusion list from your allergen profile. For fish, that list includes not just “fish” and common fish species but also the aliases most likely to appear in a recipe: Worcestershire sauce, fish sauce, nam pla, nuoc mam, nuoc cham, dashi, bonito, katsuobushi, anchovy, sardine, garum, and colatura, among others. Claude receives these as a hard exclusion instruction and is directed to build the recipe without any of them.
Layer 2 — deterministic post-generation scan. After the recipe is returned, Frittu runs a server-side function that checks every ingredient name against a coded keyword list for fish. If a recipe ingredient name matches any keyword in the list, the recipe is rejected and the generation is retried automatically before the recipe reaches you.
What this check does not cover. The check operates on ingredient names as listed in the generated recipe. It does not cover cross-contamination that could occur during preparation — shared equipment, cooking oil previously used for fish, or condiments a user adds themselves after receiving the recipe. It also does not cover ingredients purchased under an unexpected brand formulation (for example, a Worcestershire sauce variant that lists anchovies differently on its label). If you prepare food for someone with a fish allergy, standard cross-contamination controls remain your responsibility.
Hidden sources of fish in cooking
Common hidden sources of fish in cooking include the following — ingredients that are fish-derived but may appear in a recipe without the word “fish” being present.
Coverage scope. Frittu's fish keyword list covers ingredients as they appear in generated recipe text. It does not cover cross-contamination from shared cooking surfaces, condiments added by the user after receiving the recipe, or product formulations that vary by brand. Frittu does not claim to account for every possible fish source — this page describes the mechanism as implemented.
Frequently asked questions
How does Frittu's system check for fish in a generated recipe?
Frittu uses a two-layer process. First, before generating a recipe, Claude is given an exclusion list derived from the user's allergen profile. For fish, that list covers whole fish — by common species name — as well as the fermented condiments and stocks that are derived from fish but appear in recipes under other names: fish sauce and its regional equivalents, Worcestershire sauce (which contains anchovies), Japanese dashi and katsuobushi, and similar derivatives. Claude is instructed to build the recipe without any of those ingredients. After the recipe is returned, a server-side function checks every ingredient name against a coded keyword list for fish. Any match causes the recipe to be rejected and Frittu attempts to generate an alternative.
Why does Frittu check Worcestershire sauce when excluding fish?
Worcestershire sauce contains anchovies. The anchovies are fermented in the sauce during production — they contribute a background savoury depth rather than an overt fish flavour, which is why their presence is easy to miss. Worcestershire sauce is used widely in Western cooking: in burger and steak marinades, Bloody Marys, Caesar dressing, and various savoury glazes. A single teaspoon is enough for the fish keyword check to flag the recipe. Because the word "anchovy" does not always appear on a bottle of Worcestershire sauce used as a recipe ingredient, Frittu's keyword list includes "worcestershire" directly so the check catches it regardless of how the ingredient is named.
What are dashi and katsuobushi, and why are they in the fish keyword list?
Dashi is the foundational Japanese stock used in miso soup, ramen broth, soba dipping sauce, and most Japanese simmered dishes. The most common form of dashi is made by steeping katsuobushi — dried, fermented, and smoked skipjack tuna flakes — in water, sometimes combined with kombu (dried kelp). Katsuobushi is the primary component of most dashi, and both are therefore fish-derived. Because dashi appears in recipes as a stock ingredient rather than as "fish stock," it could easily be overlooked. Frittu's keyword list includes both "dashi" and "katsuobushi" (as well as "bonito," the fish from which katsuobushi is made) so they are caught by the post-generation check.
What are nam pla, nuoc mam, and nuoc cham?
Nam pla is Thai fish sauce — a liquid condiment made by fermenting small fish, typically anchovies, with salt. It is used as the salt-equivalent in Thai cooking, appearing in pad thai, curries, salad dressings, and stir-fries. The dish name rarely signals that it is present. Nuoc mam is the Vietnamese equivalent — fermented fish sauce used in the same way across Vietnamese cuisine. Nuoc cham is a Vietnamese dipping sauce made from nuoc mam diluted with lime juice, sugar, water, and chilli; it is served alongside spring rolls, bun noodle dishes, and bánh mì. All three are fish-derived condiments that can appear in a recipe without the word "fish" being present. Frittu's keyword list includes all three.
What happens when a generated recipe triggers the fish check?
The recipe is rejected before it is saved or shown to the user. Frittu retries the generation automatically. The rejection and retry happen server-side — the user sees only the final recipe that passed the check. If a generated recipe matches a fish keyword it is rejected and Frittu attempts to generate an alternative; if none passes the check, no recipe is returned for that slot.
Try Frittu with your allergen list
Set your allergens once. Every recipe Frittu generates is then checked against them before it reaches you.
Download FrittuMore on how Frittu works