Quick Recipe Version (TL;DR)
Quick Ingredients
- All-purpose flour 1 cup plus 2 tbsp (136 g), divided
- Whole milk 3 cups (720 ml), divided
- Large eggs 3
- Water 1/2 cup (120 ml)
- Unsalted butter 5 tbsp (70 g), melted and divided
- Thinly sliced ham 8 oz (225 g)
- Gruyère cheese 1 1/2 cups (150 g), coarsely grated
- Fresh chives 2 tbsp, snipped
- Kosher salt; white or black pepper; pinch nutmeg
- 1 tsp Dijon mustard (optional)
- Neutral oil or soft butter for the pan
Do This
- 1) Whisk 1 cup flour, eggs, 1 1/2 cups milk, water, 1/2 tsp salt; whisk in 3 tbsp melted butter. Rest 30 minutes.
- 2) Make béchamel: melt 2 tbsp butter, whisk in 2 tbsp flour 1 minute; slowly add 1 1/2 cups warm milk; simmer to thicken 4–6 minutes. Season with 1/2 tsp salt, 1/4 tsp pepper, pinch nutmeg, and Dijon.
- 3) Heat a 10-inch nonstick pan over medium; lightly oil. Pour 1/4 cup batter, swirl thin. Cook 45–60 seconds; flip 15–30 seconds. Repeat for 8 crêpes.
- 4) Fill each with 2 tbsp béchamel, ham, and 2–3 tbsp Gruyère. Fold in half, then into a triangle.
- 5) Crisp in a lightly buttered skillet over medium heat 1–2 minutes per side until edges are lacy and cheese melts.
- 6) Garnish with chives and pepper; keep finished crêpes warm in a 200°F oven as you work.
Why You’ll Love This Recipe
- Classic French flavors: nutty Gruyère, savory ham, and a silky béchamel tucked into tender crêpes.
- Restaurant polish, home-cook friendly: simple steps, forgiving batter, and make-ahead options.
- Beautiful texture contrast: soft centers with lightly crisp, lacy edges.
- Perfect for brunch, a cozy dinner, or a special-occasion starter.
Grocery List
- Produce: Fresh chives
- Dairy: Whole milk, unsalted butter, Gruyère cheese, large eggs
- Pantry: All-purpose flour, thinly sliced ham, kosher salt, pepper (white or black), ground nutmeg, Dijon mustard (optional), neutral oil
Full Ingredients
Crêpe Batter
- All-purpose flour 1 cup (120 g)
- Large eggs 3
- Whole milk 1 1/2 cups (360 ml), cool
- Water 1/2 cup (120 ml)
- Unsalted butter 3 tbsp (42 g), melted and slightly cooled
- Kosher salt 1/2 tsp
Silky Béchamel
- Unsalted butter 2 tbsp (28 g)
- All-purpose flour 2 tbsp (16 g)
- Whole milk 1 1/2 cups (360 ml), warmed
- Kosher salt 1/2 tsp, or to taste
- White pepper 1/4 tsp (or black pepper to taste)
- Pinch ground nutmeg
- Optional: Dijon mustard 1 tsp
Filling and Assembly
- Thinly sliced ham 8 oz (225 g)
- Gruyère cheese 1 1/2 cups (150 g), coarsely grated
- Fresh chives 2 tbsp, finely snipped, plus extra for serving
- Neutral oil or soft butter for the pan

Step-by-Step Instructions
Step 1: Whisk a silky crêpe batter
In a mixing bowl, whisk the flour and salt. Add eggs, 1 1/2 cups milk, and water; whisk until smooth. Stream in 3 tbsp melted butter and whisk again. For ultra-smooth results, blend for 10–15 seconds or strain through a fine sieve. The batter should be thin and pourable.
Step 2: Rest the batter and prep the béchamel
Let the batter rest 30 minutes at room temperature (this relaxes gluten for tender crêpes). Meanwhile, warm 1 1/2 cups milk for the béchamel and grate the Gruyère. Preheat the oven to 200°F if you plan to hold finished crêpes warm.
Step 3: Cook the crêpes
Heat a 10-inch nonstick skillet or crêpe pan over medium heat for 2 minutes. Lightly brush with oil and wipe so only a thin film remains. Pour in 1/4 cup (60 ml) batter, immediately swirling to coat in a thin, even layer. Cook 45–60 seconds until the underside is lightly golden and edges lift. Flip with a thin spatula; cook 15–30 seconds more. Slide onto a plate and repeat to make 8 crêpes, lightly oiling the pan as needed. Keep them stacked and tented, or hold in a 200°F oven.
Step 4: Make the silky béchamel
In a saucepan over medium heat, melt 2 tbsp butter. Whisk in 2 tbsp flour and cook 1 minute to remove the raw taste. Gradually whisk in the warm milk, a few splashes at a time, whisking smooth after each addition. Simmer gently, whisking, until thick enough to coat a spoon, 4–6 minutes. Season with 1/2 tsp salt, 1/4 tsp white pepper, and a pinch of nutmeg. Stir in Dijon if using. Keep warm on low; press parchment or plastic wrap directly on the surface to prevent a skin.
Step 5: Fill and fold into triangles
Lay a crêpe on your work surface. Spoon about 2 tbsp béchamel over the lower half. Top with 1–2 slices ham (about 1 oz) and 2–3 tbsp Gruyère. Fold the crêpe in half, then in half again to form a triangle. Repeat with the remaining crêpes.
Step 6: Crisp the edges and melt the cheese
Heat a large skillet over medium heat. Add a thin smear of butter (about 1 tsp) and place 2–3 filled crêpes in the pan without crowding. Cook 1–2 minutes per side until the edges are lightly crisp and lacy and the cheese is melted. Adjust heat as needed to prevent scorching. Transfer to a sheet pan and keep warm in the 200°F oven while you finish the rest.
Step 7: Finish with chives and serve
Plate the crêpes, add a small spoonful of béchamel on top if you like, and shower with snipped chives and a crack of pepper. Serve immediately while the edges are still crisp.
Pro Tips
- For tender crêpes, do not skip the 30-minute batter rest; it dramatically improves texture.
- Use a thin, flexible spatula and keep the pan just lightly greased so the batter can grip and spread evenly.
- Warm milk makes a smoother béchamel and reduces lumps; whisk constantly as you add it.
- Keep béchamel velvety by covering its surface to prevent a skin while you cook.
- The first crêpe is often a tester; adjust heat so it cooks in about 1 minute per side without browning too dark.
Variations
- Mornay Upgrade: Whisk 1/2 cup (50 g) grated Gruyère into the finished béchamel for an ultra-cheesy sauce.
- Forestière: Add 1 cup sautéed mushrooms and a few thyme leaves to the filling with the ham and Gruyère.
- Croque-Madame Style: Top each plated crêpe with a sunny-side-up egg and an extra spoon of béchamel.
Storage & Make-Ahead
Batter can be refrigerated up to 48 hours; thin with 1–2 tbsp milk if it thickens. Cooked crêpes keep 3 days in the fridge (stack with parchment) or 2 months in the freezer (well wrapped); thaw and warm in a dry skillet. Béchamel keeps 3 days refrigerated; rewarm gently with a splash of milk. Assembled, uncrisped crêpes can be refrigerated up to 24 hours; crisp to serve. Leftover filled crêpes reheat best in a covered skillet over medium-low heat 3–4 minutes per side.
Nutrition (per serving)
Approximate per serving (2 filled crêpes): 650 calories; 32 g fat (19 g saturated); 33 g carbohydrates; 3 g fiber; 29 g protein; 1150 mg sodium.

