🍽️Tom Kha Gai
🇹🇭 Lunch · Thailand

Tom Kha Gai

Tom Kha Gai is the jewel of Thai cuisine — a creamy and aromatic coconut milk soup with chicken, galangal (Thai ginger), lemongrass, kaffir lime leaves, and mushrooms. Unlike Tom Yam (spicy and sour), Tom Kha is velvety, rich, mildly spicy, and brightened by the citrus aromas of lime. Galangal is the defining ingredient — the more floral, citric, and peppery cousin of ginger, which cannot be substituted without losing the dish's essence. Tom Kha Gai is served with white jasmine rice throughout Thailand.

Total time40m
Active time30m
Servings4
DifficultyEasy
Cost$
❤️

Rich in protein

Filling and nutritious

❄️

Can be frozen

Great for meal prep

🍲

One-pot

Minimal washing up

Traditional recipe

Authentic taste

Ingredients 4 servings

  • 500 g boneless skinless chicken thighs (more flavour than breast in this delicate broth), thinly sliced across the grain into 5 mm strips
  • 400 ml unsweetened full-fat coconut milk (the cream layer separated, see step 2)
  • 600 ml unsalted chicken stock (low-sodium homemade or store-bought)
  • 1 hand of fresh galangal (kha) — ~50 g, peeled and cut into 5 mm coin slices; do NOT substitute ginger, the flavour is completely different
  • 3 stalks fresh lemongrass (takrai) — outer leaves removed, lower 10 cm bruised with the back of a knife and cut into 5 cm sections
  • 6 fresh kaffir lime leaves (bai makrut), de-veined and torn (NOT chopped — they release oils when torn)
  • 4 small Thai bird's eye chilies (prik kee noo) — lightly bruised whole, not sliced if you want gentle heat (sliced for hot)
  • 4 garlic cloves, lightly bruised
  • 2 small shallots (~80 g), thinly sliced
  • 200 g straw mushrooms (canned, drained), halved — or fresh oyster/shiitake/button mushrooms as substitute
  • 4 tbsp Thai fish sauce (nam pla) — Squid or Tiparos brand for best flavour
  • 1 tbsp palm sugar (or light brown sugar)
  • 60 ml fresh lime juice (from 2 limes) — added at the END, never boiled
  • 2 tbsp Thai chili paste in soybean oil (nam prik pao) — adds the signature smoky depth (optional but traditional)
  • 1 small bunch fresh cilantro (coriander) leaves, roughly chopped, to garnish
  • 4 spring onions, thinly sliced on the diagonal, to garnish
  • To serve: 320 g cooked jasmine rice (80 g dry per serving) + 1 lime cut into wedges

How to make it

  1. 1PREP THE AROMATICS: peel and slice 50 g galangal into 5 mm coins; remove the tough outer leaves from 3 lemongrass stalks and bruise the lower 10 cm with the back of a heavy knife to release the oils — then cut into 5 cm pieces; tear (don't chop) 6 kaffir lime leaves to release their oils; lightly bruise 4 chilies + 4 garlic cloves with the side of the knife; these aromatics are the soul of the broth — never use ground substitutes.
  2. 2SEPARATE THE COCONUT MILK: open a 400 ml can of coconut milk without shaking; the thick cream usually sits on top — spoon off about 100 ml of the thick cream and set aside (this is your hua kati, the cream); the rest is the thinner milk (hang kati).
  3. 3BLOOM THE CREAM: in a medium pot over medium heat, simmer the 100 ml coconut cream 3–4 minutes until it splits and the oil starts to separate visibly — this concentrates the coconut flavor and is the traditional Thai opening move; (If your coconut milk doesn't separate cleanly, skip this step and just start with everything in the pot.).
  4. 4INFUSE THE AROMATICS: add the galangal slices, lemongrass pieces, torn lime leaves, bruised chilies, garlic, and 80 g sliced shallots to the hot coconut cream; stir 1 minute until intensely aromatic; the kitchen should smell distinctly of Thai — bright citrus, peppery galangal, and sweet coconut.
  5. 5BUILD THE BROTH: pour in the remaining 300 ml coconut milk + 600 ml chicken stock + 2 tbsp nam prik pao (if using); bring to a gentle simmer (NEVER a hard boil — coconut milk separates ugly if boiled hard); simmer 8 minutes uncovered, so the aromatics infuse fully and the broth tastes deep and rounded.
  6. 6ADD THE CHICKEN: drop the 500 g sliced chicken into the simmering broth, stirring gently to separate the pieces; simmer 4–5 minutes until the chicken is just cooked through and white — overcooking turns it tough; add 200 g halved straw mushrooms and simmer 2 minutes more.
  7. 7SEASON: turn off the heat; stir in 4 tbsp fish sauce + 1 tbsp palm sugar; taste — the broth should be savoury, slightly sweet, mildly hot, and full of citrus aroma; add a splash more fish sauce or sugar if needed; off heat is critical here.
  8. 8LIME AT THE LAST MOMENT: stir in 60 ml fresh lime juice ONLY just before serving — boiling the lime juice turns it bitter and dull; ladle into deep bowls; top with fresh cilantro + sliced spring onions + a few extra slices of bruised chili for those who like more heat; serve hot with steamed jasmine rice on the side and lime wedges; tell guests: the galangal, lemongrass, and lime leaves are aromatics, not edible — fish them to the side of the bowl.

Nutritional info

per serving (~400 ml)

Calories 615 kcal
Protein 40 g
Carbs 51 g
Fat 23 g
Fiber 3 g

Estimated nutritional values.

Pairs perfectly with

🍚 Thai jasmine rice
🌿 Fresh Thai basil and coriander
🌶️ Birds-eye chillies in fish sauce
🍋 Lime wedges
🥗

Plan your meals for the entire week

Generate a personalized plan with varied recipes and automatic shopping list.

Generate my plan now →
Thailand