
Tom kha soup is Thai coconut milk broth infused with galangal, lemongrass and makrut lime leaves, then finished with shrimp or chicken, mushrooms, fish sauce and fresh lime. It's rich but bright, and sour, salty, sweet and hot should all land at once. From chopping to bowls it takes about 40 minutes.
Why galangal leads the flavor in tom kha
Kha means galangal, so the name tells you what the soup should taste of. Galangal looks like ginger with a paler, tougher skin, but its flavor is sharper and more piney, almost citrusy, with less of ginger's sweet heat. Slice it thin and let it steep in the coconut milk with the lemongrass and lime leaves for 8 to 10 minutes before anything else goes in.
Ginger works as a stand-in; use the same amount. The soup will still be good, just warmer and less perfumed. The other aromatics have their own substitutes:
- Makrut lime leaves: the zest of 1 lime, removed in wide strips, gives some of the perfume. There's no exact match.
- Fresh lemongrass: frozen lemongrass or lemongrass paste in a tube (about 1 tablespoon per stalk).
- Palm sugar: light brown sugar, measured the same.
- Bird's eye chiles: 1 serrano, or a pinch of red pepper flakes.
Asian grocery stores sell galangal, lemongrass and lime leaves fresh or frozen. All three freeze well for months, so it's worth buying extra.
Tom kha vs tom yum
Both are classic Thai soups built on lemongrass, makrut lime leaves, lime and chile, and people often mix them up. Tom kha puts galangal in front, in a broth made rich with coconut milk. Tom yum is usually hot and sour first, with a thinner broth.
| Tom kha | Tom yum | |
|---|---|---|
| Broth | Coconut milk, creamy | Clear stock, or creamy with evaporated milk |
| Lead flavor | Galangal and coconut | Lemongrass, lime and chile |
| Heat | Gentle to medium | Medium to hot |
| Common protein | Chicken (tom kha gai) or shrimp | Shrimp (tom yum goong) |
This recipe is the milder, creamier of the two. If you want it closer to tom yum, add a tablespoon of Thai chili paste (nam prik pao) with the mushrooms and an extra tablespoon of lime juice at the end.
Which protein: shrimp, chicken or tofu?
Shrimp is the version written here, known in Thailand as tom kha goong. Chicken, tom kha gai, is the one most restaurants serve. Either goes in near the end, after the broth has taken on the aromatics.
- Shrimp: 3 to 4 minutes in simmering broth, until pink, opaque and curled into a loose C. A tight O means they've gone rubbery. The USDA safe temperature chart lists 145°F for shellfish.
- Chicken: slice boneless breast or thigh thinly and simmer 5 to 6 minutes, until it reaches 165°F.
- Tofu: 14 ounces (400 g) pressed and cubed, with vegetable stock and light soy sauce in place of fish sauce, for a vegetarian bowl.

Seared scallops are another good swap. Cook them separately in a very hot pan, as in these pan seared scallops, and set them in the bowls just before ladling the soup around them so the crust stays crisp.
When should the fish sauce and lime go in?
Last, with the pot off the heat. Fish sauce and lime juice both lose their fresh edge when they boil, and the lime in particular goes flat. Thai cooking treats seasoning as a balance you adjust at the end rather than a fixed measurement, because limes vary in sourness and fish sauces vary in saltiness.

Stir in the fish sauce, palm sugar and lime juice, taste a spoonful, then adjust one thing at a time:
- Tastes flat or thin? Add fish sauce, 1 teaspoon at a time.
- Tastes heavy or too rich? Add lime juice.
- Too sharp or salty? A pinch more palm sugar rounds the edges.
- Not lively enough? Crush another chile into the pot and let it sit for a minute.
Stop when no single flavor jumps out ahead of the others.
Keeping the coconut broth smooth
Coconut milk splits when it boils hard, leaving oily streaks and a grainy broth. Keep the pot at a gentle simmer with small bubbles at the edges, and use full fat coconut milk, since light coconut milk makes a thin broth that separates more easily. If it does split, whisking off the heat usually brings it back, and the flavor barely changes.
In Thailand this soup is part of a shared meal, eaten alongside rice and other dishes rather than as a course of its own. Steamed jasmine rice is the simplest partner; spoon some into the bowl or alternate bites. Served in small cups, it also works as a light starter before a spiced main like butter chicken, and a crunchy cucumber salad with rice vinegar is a cool contrast to the creamy broth.
The recipe
Tom Kha Soup (Thai Coconut Soup with Shrimp or Chicken)
Ingredients
For the broth
- 2 cans (13.5 ounces / 400 ml each) full fat coconut milk
- 1 cup (250 ml) chicken or vegetable stock
- 3 stalks lemongrass, trimmed, cut into 3 inch pieces and bruised with the back of a knife
- 2 inch (5 cm) piece galangal (or fresh ginger), thinly sliced
- 6 makrut lime leaves, torn
For the soup
- 7 ounces (200 g) oyster or button mushrooms, halved or torn
- 2 to 4 Thai bird's eye chiles, lightly crushed
- 10 ounces (300 g) raw shrimp, peeled and deveined (or thinly sliced chicken breast)
- 3 tablespoons fish sauce, or to taste
- 1 tablespoon palm sugar or light brown sugar
- 3 tablespoons fresh lime juice (about 2 limes)
To serve
- Fresh cilantro leaves
- 1 fresh red chile, thinly sliced
- Steamed jasmine rice
Instructions
- Infuse the broth. Pour the coconut milk and stock into a large saucepan over medium heat. Add the lemongrass, galangal and lime leaves, bring to a gentle simmer (not a boil) and infuse for 8 to 10 minutes, stirring occasionally, until strongly fragrant.
- Add mushrooms and chiles. Add the mushrooms and crushed chiles and simmer for 5 minutes, until the mushrooms are just tender.
- Cook the shrimp. Add the shrimp and simmer for 3 to 4 minutes, until pink, opaque and loosely curled. If using chicken, simmer for 5 to 6 minutes, until it reaches 165°F.
- Season off the heat. Take the pot off the heat and stir in the fish sauce, palm sugar and lime juice until the sugar dissolves.
- Taste and adjust. Taste the broth. Add more lime for brightness, fish sauce for depth, a pinch of sugar to soften sharp edges or another crushed chile for heat.
- Serve. Ladle into deep bowls, giving everyone plenty of shrimp and mushrooms. Top with cilantro and sliced red chile and serve right away with jasmine rice.
Cook's notes
- The lemongrass, galangal and lime leaves are for flavor only. They're too fibrous to eat, so leave them in the bowl and eat around them.
- Refrigerate leftovers within 2 hours and eat within 3 days. Reheat gently without boiling, and add a squeeze of fresh lime before serving.
- Avoid light coconut milk. It makes a thin broth that separates more easily and carries less aroma.
Tom Kha Soup (Thai Coconut Soup questions
Is tom kha the same as Thai coconut soup?
Mostly, yes. In English, Thai coconut soup usually means tom kha, a soup of coconut milk simmered with galangal, lemongrass and makrut lime leaves. Tom kha gai is made with chicken and tom kha goong with shrimp. Restaurant menus that list simply coconut soup are almost always serving a version of tom kha.
Do you eat the lemongrass and galangal?
No. The lemongrass, galangal and makrut lime leaves are there to flavor the broth, and they stay tough and fibrous however long they simmer. In Thailand they're left in the bowl and eaten around. If that bothers your guests, lift them out with a slotted spoon before serving, or tie them in cheesecloth from the start.
Can tom kha be made ahead?
Partly. Infuse the broth with the aromatics and mushrooms up to 2 days ahead and refrigerate it. Reheat it gently, then add the shrimp or chicken and cook it through before seasoning with fish sauce, sugar and lime. Cooking the protein fresh keeps it tender; reheated shrimp turn tough and chewy.
How spicy is tom kha soup?
Usually gentle to medium. The heat comes from crushed bird's eye chiles, and you control it by how many you add and how long they sit. Two lightly crushed chiles give a mild warmth; four is noticeably hot. For no heat at all, leave them out and serve sliced chile at the table instead.


