Chiang Mai has a Muslim khao soi tradition centred on the Chin Haw community around the Ban Haw mosque, where shops serve chicken and beef versions; pork versions are common elsewhere in the city.
Flat egg noodles are dunked in a rich, curry-spiced coconut broth and topped with a tangle of the same noodles deep-fried until crisp, alongside pickled mustard greens, shallots and a wedge of lime. Vendors ladle it fresh from steaming pots set up right on the sidewalk, and diners stir in their own dose of chili paste to taste.
Why it's made this way: Its origins are debated: many credit Chin Haw caravan traders from Yunnan, while others link it to Burmese ohn no khao swe. Either way, Chiang Mai adopted it as the city's defining noodle dish.
What is Khao Soi?
Khao soi is a curry noodle soup from northern Thailand, closely associated with Chiang Mai. Soft egg noodles sit in a rich, curry-spiced coconut broth with chicken or beef, topped with a tangle of crisp-fried noodles. It is served with pickled mustard greens, sliced shallots, lime and chilli oil on the side so that each diner can season their own bowl.
Its origins are debated. Many credit Chin Haw (Yunnanese Muslim) caravan traders, while others link it to Burmese ohn no khao swe. Whatever the route, it is now one of northern Thailand's best-known dishes. Chiang Mai has a Chin Haw Muslim khao soi tradition with chicken and beef versions, and pork versions are common elsewhere in the city.
How to make chicken khao soi with homemade curry paste
Serves 4 · prep 40 min · cook 45 min
Ingredients
For the curry paste: 5 dried long red chillies, 4 shallots, 5 garlic cloves, 3 cm fresh ginger, 3 cm fresh turmeric (or 1 teaspoon ground), 1 teaspoon coriander seeds, 1 teaspoon cumin seeds, seeds from 2 green cardamom pods, 1 teaspoon shrimp paste (optional), 1 teaspoon salt
600 g boneless skinless chicken thighs, cut into 4 cm pieces
2 x 400 ml tins full-fat coconut milk, not shaken
500 ml chicken stock
2 tablespoons fish sauce, 1 tablespoon palm sugar (or brown sugar) and 1 tablespoon light soy sauce
500 g fresh flat egg noodles: 400 g to boil and 100 g to fry
About 600 ml vegetable oil for frying the crispy noodles, plus 1 tablespoon for the paste
To serve: 4 tablespoons pickled mustard greens, rinsed and chopped (shop-bought, from an Asian grocer), 1 shallot, finely sliced, lime wedges
Chilli oil: 2 tablespoons chilli flakes, 4 tablespoons vegetable oil, a pinch of salt
Method
Make the paste: soak the dried chillies in hot water for 15 minutes, drain and snip off the stalks (shake out the seeds for a milder paste). Toast the coriander, cumin and cardamom seeds in a dry pan for about a minute until fragrant. Blend or pound them with the chillies, shallots, garlic, ginger, turmeric, shrimp paste and salt, adding 1–2 tablespoons of water, to a thick smooth paste.
Spoon about 100 ml of the thick cream from the top of one coconut milk tin into a large pot over medium heat. Add 1 tablespoon oil and the paste and fry for 5 minutes, stirring, until it smells toasted and the oil starts to separate.
Add the chicken and stir for 2 minutes to coat it. Pour in the rest of the coconut milk and the stock, bring to a gentle simmer and cook for 25 minutes, until the chicken is tender and at least 74 °C (165 °F) in the middle. Stir in the fish sauce, palm sugar and soy sauce, then taste and adjust for salt and sweetness.
Make the chilli oil: put the flakes and salt in a heatproof bowl. Heat the 4 tablespoons oil until it just shimmers, then pour it over the flakes. Stir and leave to cool.
Make the crispy noodles: pour 600 ml oil into a deep heavy pot (at least 2 litres, so it is no more than half full) and heat to 180 °C (350 °F) on a thermometer. Fry the 100 g of noodles in 2 batches for 30–60 seconds each, lowering them in gently because the oil will bubble up. Lift out when golden and drain on kitchen paper. Let the oil cool completely before moving or disposing of it.
Boil the remaining 400 g noodles for 2–3 minutes (or as the packet says), then drain and divide among four bowls.
Ladle the hot curry and chicken over the noodles. Top each with a handful of crispy noodles and serve with the mustard greens, shallot, lime and chilli oil on the side.
Tips
Fry the paste in coconut cream until the oil separates. This is where most of the depth comes from.
Keep the coconut milk at a gentle simmer, not a hard boil, so it does not split into grease.
Add the crispy noodles at the last moment, or they go soft in the broth.
Shortcut: if you cannot make the paste, fry 3 tablespoons of shop-bought red curry paste with 2 teaspoons mild curry powder and ½ teaspoon ground turmeric in step 2 instead. It is not the same as a true khao soi paste, but it gives a decent bowl in a hurry.
Regional versions
Beef: use 600 g beef shin instead of chicken and simmer it gently for about 2–2½ hours until tender, topping up with water as needed, then serve as above.
Pork versions are common in Chiang Mai, and a vegetarian version works with tofu, vegetable stock and extra soy sauce in place of the fish sauce.
Instead of frying your own crispy noodles, some cooks use shop-bought fried egg noodles from an Asian grocer.
Questions
What does khao soi taste like?
Rich, mildly spicy and slightly sweet, with coconut and warm spices like turmeric and coriander, balanced by sour pickled greens and lime, and with a crunchy noodle topping.
Is Lao khao soi the same dish?
No. Lao khao soi from Luang Prabang is a different dish: a clear broth with wide rice noodles and a tomato and minced pork sauce, with no curry or coconut milk.
Why is khao soi served with pickled mustard greens and shallots?
Their sourness and sharp crunch cut through the rich coconut broth. Diners add them, plus lime and chilli oil, to taste.
Can I make it ahead?
Yes. The curry keeps in the fridge for 2 days and reheats well. Boil the noodles and fry the crispy topping fresh.
Roughly what's in it
550kcal
24gprotein
55gcarbs
28gfat
Estimated per typical street-vendor portion — not lab-tested.