Skip to content
Zaffaron

Khorak Makaroni ba Mahi (خوراک ماکارونی با ماهی) — Persian-Style Fish Pasta

Persian-inspired pasta salad-style khorak with flaky trout or salmon, peas, tomatoes, and herbs, finished with a bright orange-zest and tarragon dressing. Served warm or chilled for a refreshing, aromatic main.

By Zaffaron Kitchen· Published March 14, 2026 Verified Recipe
Dairy-Free Nut-Free Halal
Contains: eggs, gluten, fish
55 min total Prep 35m · Cook 20m 4 servings 640 cal ~$4.75/serving
↓ Jump to Recipe
Khorak Makaroni ba Mahi — Persian-Style Fish Pasta - authentic persian recipe

Printable Recipe Card

Servings: 4 · Total: 55 min · Difficulty: medium

Ingredients (quick list)

  • 320 g Dried shaped pasta (fusilli or farfalle) (choose a shape that holds dressing)
  • 12 g Kosher salt (for salting pasta water (about 1 tablespoon))
  • 150 g Frozen green peas (thawed; or add in last minute of boiling)
  • 3 Large eggs (for hard-boiling)
  • 400 g Skinless trout fillet (or skinless salmon fillet; pin bones removed)
  • 30 ml Extra virgin olive oil (for roasting fish)
  • 1 g Black pepper (freshly ground (about 1/2 teaspoon))
  • 240 g Ripe tomatoes (seeded and diced small (about 2 medium))
  • 70 g Shallots (finely minced (about 2 medium))
  • 20 g Fresh chives (finely sliced)
  • 8 g Fresh tarragon leaves (finely chopped; stems discarded)
  • 4 g Orange zest (finely grated (about 2 teaspoons), from 1 orange)

+ 7 more in the full ingredients section below.

Steps (summary)

  1. Hard-boil the eggs: place eggs in a saucepan and cover with cold water by 2.5 cm. Bring to a full boil over high heat, cover, t…
  2. Roast the fish: heat oven to 220°C. Place trout or salmon on a lined tray, brush with 30 ml olive oil, and season with 1 g blac…
  3. Cook pasta: bring 4 liters water to a rolling boil and add 12 g kosher salt. Add pasta and cook until al dente per package timi…
  4. Make the orange-tarragon dressing: in a bowl, whisk 60 ml olive oil with orange zest, orange juice, lemon juice, mustard, honey…
  5. Assemble: in a large mixing bowl, combine warm pasta and peas with shallots, diced tomatoes, chives, and chopped tarragon. Pour…
  6. Finish gently: add flaked fish and fold with a wide spatula to keep pieces intact. Add remaining dressing as needed for a gloss…

Cultural Background

Khorak-style dishes are commonly served as flexible mains in Iranian home cooking, often designed to be practical for gatherings and to taste good at room temperature. This pasta-based version reflects modern Iranian kitchens where global pantry staples are paired with familiar herb-and-citrus flavor patterns.

bright citrussavorylightly sweetherbaceousgently tangyal dente pastaflaky fishjuicy tomatoestender peascreamy eggorange zesttarragonolive oilroasted fish🌶 low

Equipment

Large pot (6–8 liters) with lidColanderSheet panParchment paper or foilMixing bowlsWhiskMicroplane or fine graterChef's knife and cutting boardInstant-read thermometer (optional)

💡 Tips

  • For the cleanest citrus aroma, zest the orange directly over the dressing bowl so the oils fall in.
  • If your tomatoes are very juicy, seed them well to prevent a watery sauce; add them just before serving if chilling.
  • For a more Persian-leaning profile, add 1/4 teaspoon ground coriander to the dressing and increase turmeric slightly.
  • Keep fish pieces large; over-mixing turns the pasta cloudy and can make the fish taste stronger.
  • If serving cold, reserve 1–2 tablespoons dressing to refresh the pasta right before plating.

⚠️ Common Mistakes

  • ❌ Overcooking the fish until dry

    💡 Why: Lean fish like trout quickly loses moisture, and the pasta will not compensate for dryness.

    ✅ Fix: Roast only until just opaque and flaky (52–55°C internal), then rest 5 minutes and flake gently.

  • ❌ Skipping emulsification of the dressing

    💡 Why: Oil and citrus separate, leading to uneven flavor and greasy bites.

    ✅ Fix: Whisk mustard with juices first, then stream in olive oil while whisking 30–45 seconds until glossy.

  • ❌ Adding tomatoes too early when chilling

    💡 Why: Tomatoes release water and dilute the dressing, making the salad watery.

    ✅ Fix: Seed tomatoes well and fold them in right before serving, or drain diced tomatoes 5 minutes in a sieve.

  • ❌ Rinsing pasta too long under water

    💡 Why: Excess rinsing removes surface starch needed for the dressing to cling.

    ✅ Fix: Rinse only 10 seconds to cool slightly, then toss with dressing while still warm.

🧊 How to Store

Refrigerate in an airtight container for up to 2 days. Store eggs separately if possible for best texture. If the pasta dries out, loosen with 1–2 teaspoons olive oil and a squeeze of orange or lemon juice before serving. Do not freeze; herbs and tomatoes become watery.

📅 Make Ahead

Cook pasta, roast fish, and boil eggs up to 1 day ahead. Store separately, covered, in the refrigerator. Mix the dressing up to 2 days ahead and whisk again before using. Assemble 30–60 minutes before serving for best herb aroma and fish texture.

🍽️ Pairs Well With

  • Crisp cucumber and radish platter with lemon
  • Mixed greens with a simple olive oil–lemon dressing
  • Warm flatbread or crusty bread
  • Pickled vegetables

Regional Variations

  • Caspian coast (northern Iran)Often made with locally available fish and more fresh herbs; a little extra citrus (orange or sour orange) is common for a sharper finish.
  • Tehran-style modern home cookingMore likely to use pantry pasta shapes and a mustard-emulsified dressing; peas and eggs are added to make it a complete one-bowl meal for lunches and picnics.
weeknight dinner picnic spring gatherings summer lunch meal prep
#citrusy#herb-forward#room-temperature#meal-prep-friendly#persian-inspired#mediterranean-influenced

Ingredients

  • 320 gDried shaped pasta (fusilli or farfalle) (choose a shape that holds dressing)
  • 12 gKosher salt (for salting pasta water (about 1 tablespoon))
  • 150 gFrozen green peas (thawed; or add in last minute of boiling)
  • 3Large eggs (for hard-boiling)
  • 400 gSkinless trout fillet (or skinless salmon fillet; pin bones removed)
  • 30 mlExtra virgin olive oil (for roasting fish)
  • 1 gBlack pepper (freshly ground (about 1/2 teaspoon))
  • 240 gRipe tomatoes (seeded and diced small (about 2 medium))
  • 70 gShallots (finely minced (about 2 medium))
  • 20 gFresh chives (finely sliced)
  • 8 gFresh tarragon leaves (finely chopped; stems discarded)
  • 4 gOrange zest (finely grated (about 2 teaspoons), from 1 orange)
  • 60 mlFresh orange juice (strained (about 1/4 cup))
  • 15 mlFresh lemon juice (about 1 tablespoon)
  • 10 gDijon mustard (about 2 teaspoons, helps emulsify)
  • 8 gHoney (about 1 teaspoon; balances citrus)
  • 1 gGround turmeric (about 1/2 teaspoon)
  • 1 gGround cumin (about 1/2 teaspoon)
  • 4 gFine sea salt (about 3/4 teaspoon, adjust to taste)

🔄 Substitutions

  • Trout fillet→ Salmon fillet
  • Fresh tarragon→ Fresh dill
  • Shallots→ Red onion

Instructions

  1. 1

    Hard-boil the eggs: place eggs in a saucepan and cover with cold water by 2.5 cm. Bring to a full boil over high heat, cover, turn off heat, and rest 10 minutes. Transfer to ice water 5 minutes, peel, then slice into wedges or chop medium.

  2. 2

    Roast the fish: heat oven to 220°C. Place trout or salmon on a lined tray, brush with 30 ml olive oil, and season with 1 g black pepper. Roast 10–12 minutes until just opaque and flaky (internal 52–55°C). Cool 5 minutes, then flake into large pieces.

  3. 3

    Cook pasta: bring 4 liters water to a rolling boil and add 12 g kosher salt. Add pasta and cook until al dente per package timing, usually 9–11 minutes. In the final 60 seconds, add peas to the pot to heat through. Drain well and rinse briefly under cool water for 10 seconds.

  4. 4

    Make the orange-tarragon dressing: in a bowl, whisk 60 ml olive oil with orange zest, orange juice, lemon juice, mustard, honey, turmeric, cumin, 4 g fine salt, and 1 g black pepper. Whisk 30–45 seconds until glossy and lightly thickened; taste and adjust salt or citrus.

  5. 5

    Assemble: in a large mixing bowl, combine warm pasta and peas with shallots, diced tomatoes, chives, and chopped tarragon. Pour in about two-thirds of the dressing and toss 30 seconds until evenly coated. Let stand 5 minutes so the shallots soften and flavors bloom.

  6. 6

    Finish gently: add flaked fish and fold with a wide spatula to keep pieces intact. Add remaining dressing as needed for a glossy, lightly sauced texture. Top with egg wedges. Serve at room temperature after 10 minutes, or chill 30–60 minutes for a refreshing cold khorak.

🪪 Recipe Passport

Origin: Persian Cuisine
Researched by: Zaffaron Kitchen
Published: March 14, 2026

Cultural Background

Khorak-style dishes are commonly served as flexible mains in Iranian home cooking, often designed to be practical for gatherings and to taste good at room temperature. This pasta-based version reflects modern Iranian kitchens where global pantry staples are paired with familiar herb-and-citrus flavor patterns.

Regional Variations

Caspian coast (northern Iran): Often made with locally available fish and more fresh herbs; a little extra citrus (orange or sour orange) is common for a sharper finish.
Tehran-style modern home cooking: More likely to use pantry pasta shapes and a mustard-emulsified dressing; peas and eggs are added to make it a complete one-bowl meal for lunches and picnics.

Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.

Share:

Nutrition per serving

640
Calories
36g
Protein
25g
Fat
68g
Carbs
6g
Fiber
720mg
Sodium

Pairs well with

If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.

Does your family make this differently?

Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.

You Might Also Like

Reviews

—
Rated 0.0 out of 5 stars
0 reviews

Cooked this recipe?

Tap the stars to rate it — that's all it takes. A few words are welcome but optional.

Please sign in to rate this recipe.
Rated 0.0 out of 5 stars

No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.