Indonesian Cuisine
Pepes Ikan
Sundanese spiced fish steamed in banana leaf parcels
Pepes is not a single dish but a cooking method. The word, Sundanese in origin, describes the act of wrapping something in banana leaves with a spice paste and cooking it gently, usually by steaming followed by a brief stint over coals. The technique appears across the Indonesian archipelago applied to fish, chicken, tofu, mushrooms, and tempeh, but pepes ikan remains the most widely known version. In West Java, where the method originates, it is everyday food. At roadside warungs and family tables alike, you will find banana leaf parcels stacked beside mounds of steamed rice and sambal, the leaves charred at the edges and fragrant with lemongrass and kemangi.
What distinguishes pepes from other banana leaf preparations found throughout Southeast Asia is the bumbu, the spice paste ground fresh for each batch. Shallots, garlic, candlenuts, fresh turmeric, and galangal are pounded together until they form a rough, deeply aromatic paste that gets rubbed over and into the scored flesh of the fish. Kemangi (Indonesian lemon basil), salam leaves, and lemongrass are tucked around the fish before the parcel is folded shut. The banana leaf does more than hold everything together. During steaming, it traps moisture and releases a faintly sweet, grassy fragrance that permeates the fish and spice paste. The optional grilling step that follows chars the exterior of the leaf and adds a whisper of smoke.
If you have made pla nueng manao or cha ca la vong, you already know how steaming preserves the delicacy of fresh fish. Pepes ikan takes that principle and layers it with the bold, earthy spicing that is central to Sundanese cooking. It is a quiet, satisfying dish that asks for little more than steamed rice and a sharp sambal alongside.
At a Glance
Yield
Serves 4
Prep
45 minutes
Cook
35 minutes
Total
1 hour 20 minutes
Difficulty
Medium
Ingredients
- 2¾ ozshallots (about 6 medium), peeled and roughly chopped
- 4 clovesgarlic, peeled
- 3candlenuts (kemiri), lightly toasted (see substitutions)
- ⅓ cupfresh turmeric root, peeled and roughly chopped (about a 5 cm piece)
- ¾ ozfresh galangal, peeled and sliced (about a 3 cm piece)
- 1 tspfine sea salt
- 1/2 tspground white pepper
- ½ fl oztamarind water (1 tablespoon, made by soaking a marble-sized piece of tamarind pulp in 30 ml warm water and straining)
- 4 wholemackerel (about 200 to 250 g each), scaled, gutted, and gills removed, or 600 g firm white fish fillets
- —Juice of 1 lime
- 1/2 tspfine sea salt
- 2 stalkslemongrass, tough outer layers removed, bottom halves bruised and cut into 5 cm pieces
- 4salam leaves (Indonesian bay leaves), or regular bay leaves
- 8to 12 bird's eye chilies, left whole or halved lengthwise
- 3 cupkemangi leaves (Indonesian lemon basil), stems removed (see substitutions)
- 8 piecesbanana leaf, each roughly 25 by 30 cm, briefly passed over a gas flame or scalded with boiling water until pliable
- —Toothpicks or kitchen twine for securing
- —Steamed jasmine or long-grain rice
- —Sambal terasi or sambal ulek
Method
- 1
Rub the fish inside and out with the lime juice and salt. Set aside for 10 minutes while you prepare the spice paste. The acid from the lime will help neutralise any strong fishy smell and firm the surface of the flesh slightly.
- 2
Place the shallots, garlic, candlenuts, turmeric, and galangal into a mortar or food processor. Grind or pulse until you have a rough, slightly chunky paste. You are not looking for a perfectly smooth puree here. A bit of texture means the bumbu clings to the fish rather than sliding off. Stir in the salt, white pepper, and tamarind water.
- 3
Pat the fish dry with a clean cloth or paper towel. Score each fish with 3 diagonal cuts on both sides, slicing about halfway to the bone. Rub the spice paste generously over and into each fish, pressing it into the scored cuts and the belly cavity. Use about 2 tablespoons of paste per fish.
- 4
Lay 2 banana leaf pieces in a cross pattern on your work surface, shiny side up. Place a small bed of kemangi leaves in the centre, then a piece of lemongrass, a salam leaf, and 2 to 3 chilies. Set one prepared fish on top. Tuck a few more kemangi leaves and chilies along the sides and over the fish.
- 5
Fold the banana leaf over the fish lengthwise first, then fold the ends underneath to form a neat rectangular parcel. Secure the seams with toothpicks or tie with kitchen twine. The parcel should be snug but not so tight that it crushes the fish. Repeat with the remaining fish.
- 6
Bring water to a rolling boil in a steamer. Arrange the parcels in the steamer basket in a single layer, seam side up, leaving a small gap between each to allow steam to circulate. Cover tightly and steam over high heat for 25 minutes. The fish is done when the flesh at the thickest point is opaque and flakes easily when you open one parcel to check. For thicker fish or larger fillets, allow up to 30 minutes.
- 7
If you want the traditional charred finish, heat a grill, grill pan, or dry cast iron skillet over medium-high heat. Place the steamed parcels directly on the grill surface and cook for 2 to 3 minutes on each side, until the banana leaf is blistered and lightly charred in spots and you can smell a faint smokiness. This step is optional but adds a layer of flavour and a more striking presentation.
- 8
Serve the parcels whole at the table and let each person open their own. The moment the leaf unfolds releases a rush of steam fragrant with turmeric, lemongrass, and basil. Serve alongside steamed rice and sambal.
Key Ingredient Benefits
Mackerel (Scomber scombrus or Indian mackerel, Rastrelliger kanagurta) is the most common fish used for pepes ikan in Indonesia. Its moderately firm flesh holds together during steaming, and its rich, slightly oily character stands up to the bold spice paste without being overwhelmed. Mackerel is one of the best dietary sources of omega-3 fatty acids (EPA and DHA), which have been extensively studied for their roles in cardiovascular health and inflammation modulation. It is also rich in vitamin B12, selenium, and niacin. Any firm, medium-oily fish will work. See substitutions below.
Fresh turmeric (Curcuma longa) is used throughout Indonesian cooking and is foundational to the golden colour and earthy warmth of the bumbu. Curcumin, its most studied compound, has shown anti-inflammatory and antioxidant activity in laboratory settings, though its low bioavailability means that dietary consumption likely contributes modest rather than dramatic effects. In the context of this recipe, the turmeric is combined with fat from the candlenuts, which may improve absorption somewhat. In Sundanese traditional practice, turmeric is considered a warming spice that supports digestion and is frequently paired with fish.
Candlenuts (Aleurites moluccanus), called kemiri in Indonesian, are a staple thickener in bumbu across the archipelago. They are always cooked, never eaten raw, as raw candlenuts contain mild toxins that are neutralized by heat. Rich in monounsaturated fats, they give spice pastes a creamy, cohesive texture. Their flavour is mild and slightly nutty. Macadamia nuts or raw cashews are the closest substitutes.
Kemangi (Ocimum x citriodorum), Indonesian lemon basil, is distinct from Thai basil and Italian basil. It has smaller, more delicate leaves with a pronounced citrus and slightly peppery aroma. In Javanese and Sundanese herbalism, kemangi is considered a digestive aid and is eaten raw as a condiment with many dishes. It wilts quickly and is at its best when it encounters heat only briefly, which is why it is tucked into the parcel rather than cooked into the paste.
Salam leaves (Syzygium polyanthum), sometimes misleadingly translated as Indonesian bay leaves, are botanically unrelated to Mediterranean bay laurel. They have a mild, subtly astringent flavour with faint notes of cinnamon and are used whole in braises, curries, and steamed preparations throughout Indonesia. If unavailable, regular bay leaves approximate the astringent quality, though the flavour profile is different.
Why This Works
Banana leaves are not just a vessel. They function as a cooking environment. When sealed around fish and heated, the leaves create a self-contained pocket of steam that circulates the aromatics of the bumbu, the lemongrass, and the kemangi continuously around the protein. The fish cooks gently in its own moisture and in the moisture released by the herbs and spice paste, which prevents it from drying out while simultaneously infusing every surface with flavour. The waxy interior of the leaf also contributes a subtle, grassy sweetness that you would not get from aluminium foil, though foil will work in a pinch.
Scoring the fish before applying the spice paste is essential. The cuts allow the bumbu to penetrate past the skin and into the flesh, so the seasoning is not only on the surface but also threaded through the thickest part of the fillet. Without scoring, you end up with well-seasoned skin and bland meat at the centre.
Candlenuts serve as a thickener and emulsifier in the spice paste. Their high oil content binds the ground aromatics together and gives the paste a creamy body that adheres to the fish rather than pooling at the bottom of the parcel. Toasting them lightly before grinding activates their oils and rounds out their slightly bitter raw flavour.
The brief grilling at the end introduces Maillard browning on the banana leaf surface and creates a thin layer of drier, more concentrated spice paste at the edges of the parcel. This contrast, between the moist, gently steamed fish at the centre and the slightly caramelized edges, is what distinguishes a carefully made pepes from one that has only been steamed.
Substitutions & Variations
Fish options: Whole mackerel is traditional, but sea bass, snapper, trout, tilapia, or barramundi all work well. For fillets, use thick-cut pieces (at least 2 cm) to prevent overcooking, and reduce steaming time to 15 to 18 minutes. A whole ikan bakar-style snapper can also be prepared this way for a larger gathering.
Candlenuts unavailable: Use raw macadamia nuts (same quantity) or raw cashews. Both approximate the fat content and thickening effect. Blanched almonds are a more distant but acceptable substitute.
Kemangi unavailable: Thai basil is the closest widely available substitute, though it lacks the citrus note. Italian basil mixed with a few torn lemon balm or lemon verbena leaves gets closer to the lemon basil character. In a pinch, use Thai basil alone.
Banana leaves unavailable: Aluminium foil works functionally but does not contribute the grassy sweetness. Parchment paper is another option. If using foil, consider adding an extra kemangi leaf or two inside the parcel to compensate for the missing leaf fragrance.
Salam leaves unavailable: Regular bay leaves are the standard substitute. Use the same quantity. The flavour will be slightly different, leaning more Mediterranean, but the dish will still be very good.
Tofu or tempeh version: Replace the fish with 400 g firm tofu (pressed and sliced into 2 cm slabs) or 400 g tempeh (sliced similarly). Rub with the bumbu, wrap, and steam for 20 minutes. This is a common Sundanese variation and makes the dish fully plant-based.
Spice level adjustments: For a milder pepes, reduce the bird's eye chilies to 4 or use larger, gentler red chilies (such as Fresno or cayenne). For more heat, halve the chilies lengthwise to expose the seeds and membranes directly to the fish.
Grilled only (pepes bakar): Some cooks skip the steaming step entirely and cook the parcels directly over low charcoal for 30 to 40 minutes, turning occasionally. The result is smokier and slightly drier, with more char flavour. Keep the heat low to avoid burning the banana leaves before the fish cooks through.
Serving Suggestions
Pepes ikan is a natural centrepiece for a Sundanese-style rice meal. Set the parcels on a platter in the middle of the table alongside a bowl of steamed rice, a dish of sambal terasi, and a plate of raw vegetables (lalapan) such as cucumber, cabbage wedges, and long beans. The combination of fragrant steamed fish, pungent sambal, and crisp raw vegetables is a fundamental pattern in Sundanese eating.
For a more elaborate spread, serve pepes ikan alongside nasi uduk, the coconut milk rice of Jakarta and West Java, which provides a rich, subtly sweet base that complements the spiced fish beautifully. A bowl of sayur asem (sour vegetable soup) or a simple clear broth rounds out the meal.
If you are building a fish-focused dinner that travels across Southeast Asian traditions, pair pepes ikan with pla nueng manao for a contrast between Indonesian spice-paste richness and Thai lime-forward brightness, or with turmeric fried fish to compare how turmeric behaves in a steamed versus fried preparation. Cha ca la vong, with its dill and turmeric, offers yet another approach to aromatic fish from the region.
Keep the side dishes simple. The banana leaf parcel is the event at the table, and it needs room to be appreciated.
Storage & Reheating
Pepes ikan keeps well in its banana leaf wrapping in a sealed container in the refrigerator for up to 2 days. The spice paste flavours actually deepen slightly as they sit. To reheat, re-steam the parcels (still wrapped) for 8 to 10 minutes until heated through, or place them in a 180 C (350 F) oven for 10 to 12 minutes. If you grilled the parcels initially, a second brief pass over a hot grill pan will refresh the charred aroma.
Avoid microwaving if possible, as it can make the fish rubbery and causes the banana leaf to wilt excessively. If you must microwave, add a splash of water to the parcel, cover loosely, and heat in 30-second intervals.
The uncooked spice paste (bumbu) can be made ahead and stored in the refrigerator for up to 3 days or frozen for up to 1 month. This makes weeknight pepes entirely practical. Simply rub the paste on fresh fish, wrap, and steam. The assembled but uncooked parcels can also be refrigerated for up to 8 hours before steaming, which makes this a good dish for entertaining.
Do not freeze the cooked parcels, as the fish texture suffers during thawing and the kemangi turns dark and loses its fragrance.
Nutrition Facts
Calories: 340kcal (17%)|Total Carbohydrates: 3g (1%)|Protein: 29g (58%)|Total Fat: 21g (27%)|Saturated Fat: 5g (25%)|Cholesterol: 100mg (33%)|Sodium: 620mg (27%)|Dietary Fiber: 1g (4%)|Total Sugars: 1g
You Might Also Like
Ratings & Comments
Ratings & Comments
Ratings
Share your thoughts on this recipe.
Sign in to rate and comment

