Macha Ko Tarkari (Nepali Fish Curry with Mustard Oil and Timur)
Macha ko Tarkari, Nepali fish curry. Firm river or sea fish gently simmered in a turmeric-ginger-tomato gravy bloomed in mustard oil with methi and timur. A Tarai and Newari classic.

In the Tarai plains and along the Bagmati river in the Kathmandu Valley, macha ko tarkari, fish curry, is a household staple. Newaris call it nya: and serve it at bhoj feasts; Tarai families make it weekly with whatever river fish came back from the market that morning. Across both traditions the technique is the same: lightly turmeric-rubbed pieces of firm fish are very gently simmered in a sharp, mustard-oil-bloomed gravy of ginger, garlic, tomato, and a generous pinch of timur, never stirred hard, never overcooked, served brothy and bright.
The two things that make this curry feel unmistakably Nepali (and not Bengali, not South Indian) are the mustard oil bloomed with methi and the lift of timur at the finish. Both are non-negotiable. Fish takes well to mustard’s bite; timur takes a curry that could be ordinary and gives it a faint, electric, pine-citrus edge that no other spice does.
Ingredients
- 600 g firm fish steaks or fillets (rohu, carp, tilapia, salmon, sea bass, or kingfish all work, about 1 inch thick), cut into 2-inch pieces
- 1 teaspoon turmeric powder (for rubbing the fish)
- 1.5 teaspoons salt (1/2 teaspoon for the fish, the rest for the curry)
- 2 tablespoons fresh lemon juice (for rubbing the fish)
- 5 tablespoons mustard oil (divided)
- 1/2 teaspoon methi (fenugreek) seeds
- 1 teaspoon cumin seeds
- 1/4 teaspoon jimbu (Himalayan herb), optional but lovely
- 1 dried red chili, broken
- 1 large red onion, finely chopped
- 1 tablespoon ginger, finely minced
- 4 cloves garlic, finely minced
- 1 fresh green chili, slit lengthwise
- 2 medium tomatoes, finely chopped (or 1 cup chopped canned tomatoes)
- 1 teaspoon ground coriander
- 1 teaspoon Kashmiri chili powder (for color, not heat)
- 1/2 teaspoon turmeric powder (for the gravy)
- 1/2 teaspoon ground timur (Nepali Sichuan pepper)
- 1.5 cups warm water (or light fish stock)
- 2 tablespoons fresh cilantro, finely chopped, for garnish
Instructions
Rub and rest the fish: Pat the fish pieces dry with paper towels. Place in a bowl and rub with the 1 teaspoon turmeric, 1/2 teaspoon of the salt, and the lemon juice. Let it rest for 15 minutes, this firms up the flesh, masks any river smell, and lays the first layer of seasoning.
Lightly fry the fish (optional but traditional): Heat 3 tablespoons of mustard oil in a wide, heavy pan over medium-high heat until just smoking, then reduce heat to medium. Carefully slide in the fish pieces in a single layer (work in batches if needed). Fry for 1–2 minutes per side, just until the surface turns pale gold and the fish releases easily from the pan, do not cook through. Lift gently with a slotted spatula onto a plate. The fish will finish cooking later in the gravy. (For very delicate fish like tilapia, you may skip this and add the fish directly into the simmering gravy at step 6.)
Bloom the mustard oil and methi: In the same pan, add the remaining 2 tablespoons of mustard oil and bring up to medium heat. Add the methi seeds, cumin seeds, jimbu (if using), and dried red chili. Let them sizzle for 10–15 seconds, the methi should turn dark golden but never black, or the curry will turn bitter.
Build the masala base: Add the chopped onion and cook over medium heat for 7–8 minutes, stirring often, until deeply golden brown. Add the minced ginger, garlic, and slit green chili and cook for another minute until fragrant. Stir in the chopped tomatoes, the ground coriander, Kashmiri chili powder, turmeric, and the remaining 1 teaspoon of salt. Cook for 5–6 minutes, mashing the tomatoes with the back of the spoon, until the mixture looks jammy and the oil starts to bead at the edges, that is the jhanne moment, when the spices have properly bloomed.
Add the water: Pour in the warm water (or fish stock), bring to a gentle simmer, and let the gravy bubble for 3–4 minutes to marry the flavors. Taste, it should be bright, faintly tomato-sour, and well-seasoned.
Add the fish gently: Slide the fried (or raw) fish pieces into the simmering gravy in a single layer. Do not stir. Spoon a little gravy over each piece. Cover and let simmer over low heat for 6–8 minutes, until the fish is just cooked through and flakes when prodded gently. Shake the pan now and then to keep things from sticking, never stir, or the fish will break apart.
Finish with timur: Sprinkle the ground timur over the curry, give the pan one gentle swirl, and remove from the heat. Cover and rest for 5 minutes, timur’s flavor blooms quickly off the heat.
Serve: Scatter with chopped cilantro and serve hot with steamed rice (the Tarai way), with Daal Bhat, or with chiura (beaten rice) for a Newari-style meal. A side of aloo achar and a wedge of lemon completes it.
Variations and notes
- Newari nya: style: Replace 1/2 cup of the water with light fish or vegetable stock and add 1 teaspoon of ground mustard seed paste at the end for a sharper, more pungent gravy. Serve with chiura.
- Tarai sour-tomato style: Skip the Kashmiri chili and increase the tomatoes to 3, the gravy comes out brighter, more sour, and more reminiscent of Mithila kitchens.
- Choice of fish: River fish like rohu and katla are most authentic but can be bony. If you are cooking outside the subcontinent, salmon, kingfish, sea bass, or even firm tilapia all hold up beautifully. Avoid very flaky fish like cod, which falls apart in the gravy.
- Why mustard oil matters: The peppery bite of mustard oil is the natural foil to the sweetness of fish. Substituting another oil makes a perfectly fine curry, but it stops being recognizably macha ko tarkari.
- Don’t overcook: Fish curry is judged by the texture of the fish. The moment it flakes, it is done. Carryover heat will finish it during the rest.