For years, I ordered Tom Kha Gai every time I went out for Thai food. Rich and intense, the aromatic flavors of this Thai coconut chicken soup convinced me it’d be too complex and time-consuming to make at home. Well, that was the case until I attended a cooking class in Chiang Mai a few years back, and experienced first-hand how simple it is to make this classic (and Whole30, keto-friendly, and gluten-free) Thai soup at home!
Track down authentic Thai ingredients
Truth be told, in order to make Tom Kha Gai the right way, you need to track down some key aromatic ingredients: galangal, lemongrass, and makrut lime leaves. These ingredients are not super easy to find, but they’re essential to this dish. I’ve been able to find these ingredients at my local Whole Foods Market and at my neighborhood farmers’ market, but if you can’t, I suggest searching out a nearby Asian market that caters to South East Asian customers—you’ll likely find all these items there, too. Take a gander in the produce section and you might strike gold!
Kha = Galangal
I know some of you are thinking, “ginger kind of looks like galangal—so maybe I can use ginger instead!” NOPE. After all, the “kha” in Tom Kha Gai literally means “galangal,” so you can’t have Tom Kha Gai without it. Yeah, I know that some recipes indicate that you can substitute ginger (a similar looking rhizome) for galangal, but it imparts a very different flavor to the dish. Galangal adds a cooling, pine-y flavor, while ginger is sharp and spicy. It won’t taste the same. Trust me.
How to pick galangal
When buying fresh galangal, make sure that it has smooth skin without any blemishes and is firm to the touch. For this recipe, prep the galangal by washing it and chopping it into ¼-inch thick slices. (Don’t bother peeling it ’cause you won’t actually be eating the galangal—or the lemongrass and lime leaves, for that matter.) Thick slices work better—that way, it’ll be easier for you to fish out the galangal coins later.
No fresh galangal?
Can’t find fresh galangal after going to the ends of the earth to locate it? You can substitute frozen or dried galangal.
Fresh Lemongrass
Next up: lemongrass. In this recipe, the lemongrass is used to impart a citrus-y kick to the soup, but you won’t be eating it. To draw out as much flavor as possible and to make the lemongrass stalk easy to remove at the end, I simply peel and trim the lemongrass and pound it well with a meat pounder…
…and then tie the smashed stalk into a knot.
That way, you can easily fish out the whole lemongrass stalk after it has released its lemon-y goodness into the soup. If you have extra lemongrass, check out my tutorial on how to prepare it for other recipes.
Makrut lime leaves
Makrut lime (a.k.a. kaffir lime) leaves are the leaves of a citrus fruit native to tropical Asia. If you can’t find any at a nearby store, you can substitute fresh lime zest to mimic the same flavor.
Can’t track down these ingredients?
Trekked all over town and still can’t track down these essential ingredients? I almost think it’s better to leave out the stuff you can’t find and add a teaspoon or two of Thai red curry paste to replace the missing aromatics. It won’t be exactly the same, and will add extra spiciness, but it’ll work in a pinch. Cheaters never win, but you can come pretty close!
Time to make Tom Kha Gai!
Serves 6
Ingredients
- 2 teaspoons coconut oil or cooking fat of choice
- 2 large shallots, thinly sliced
- ¼ pound shiitake mushrooms, cut into quarters
- Diamond Crystal brand kosher salt
- 2 cups chicken broth
- 2 (13.5 oz) cans full-fat coconut milk, divided
- 2 medium lemongrass stalks, trimmed, pounded, and tied in a knot
- 1 (2-inch) piece fresh galangal, cut into ¼-inch slices
- 6 makrut lime leaves, torn into large pieces (or zest from two limes)
- 1½ pounds boneless and skinless chicken thighs, cut into ½-inch strips
- 2 medium tomatoes, cut into wedges
- 1½ tablespoons Red Boat fish sauce
- Juice from 2 medium limes
- ¼ cup chopped cilantro leaves
- 2 Thai chili peppers or 1 Fresno pepper, thinly sliced (optional)
Equipment
- Chef’s knife
- Cutting board
- Measuring spoons
- Measuring cups
- Meat pounder
- Large saucepan
- Silicone spatula
Method
Heat a large saucepan over medium heat, and add the coconut oil once it’s hot. Stir in the shallots and shiitake mushrooms with a sprinkle of salt.
Sauté until the shallots are softened but not browned, about 3-5 minutes.
Pour in the broth and one can of coconut milk.
Increase heat to medium-high, stirring frequently until it starts to simmer.
Add the lemongrass stalks, galangal coins, and torn up makrut lime leaves.
Maintain a simmer, decreasing the heat to medium or medium-low, stirring occasionally. When the aromatics have infused the broth (about 5 to 10 minutes)…
…add the chicken.
Increase the heat to medium-high to bring back to a simmer and cook until the chicken is no longer pink.
Add the remaining can of coconut milk and the tomatoes.
Cook, stirring occasionally, until the tomatoes are heated through but not broken down.
Fish out the lemongrass, lime leaves, and galangal. (Or you can tell your diners to pick out those items in their bowls.)
Remove the pot from the heat and season with fish sauce, lime juice, and cilantro. Taste and adjust with more seasoning if needed.
Ladle up the soup and add Thai chili peppers to the bowls if desired.
Thai-m to chow down!
Looking for more recipe ideas? Head on over to my Recipe Index. You’ll also find exclusive recipes on my iPhone and iPad app, and in my cookbooks, Nom Nom Paleo: Food for Humans (Andrews McMeel Publishing 2013), Ready or Not! (Andrews McMeel Publishing 2017), and Nom Nom Paleo: Let’s Go! (Andrews McMeel Publishing 2021).
PRINTER-FRIENDLY RECIPE CARD
Tom Kha Gai

Ingredients
- 2 teaspoons coconut oil or cooking oil of choice
- 2 large shallots thinly sliced
- ¼ pound shiitake mushrooms cut into quarters
- Diamond Crystal kosher salt
- 2 cups chicken broth
- 2 (13.5 ounce) cans full-fat coconut milk divided
- 2 medium lemongrass stalks trimmed, pounded, and tied in a knot
- 1 2-inch piece fresh galangal cut into ¼-inch slices
- 6 makrut lime leaves torn into large pieces (or zest from two limes)
- 1½ pounds boneless and skinless chicken thighs cut into ½-inch strips
- 2 medium tomatoes cut into wedges
- 1½ tablespoons Red Boat fish sauce
- Juice from 2 medium limes
- ¼ cup chopped cilantro leaves
- 2 Thai chili peppers or 1 Fresno pepper thinly sliced (optional)
Instructions
- Heat a large saucepan over medium heat, and add the coconut oil once it’s hot. Stir in the shallots and shiitake mushrooms with a sprinkle of salt.
- Sauté until the shallots are softened but not browned, about 3-5 minutes.
- Pour in the broth and one can of coconut milk. Increase heat to medium-high, stirring frequently until it starts to simmer.
- Add the lemongrass stalks, galangal coins, and torn up makrut lime leaves. Maintain a simmer, decreasing the heat to medium or medium-low, stirring occasionally.
- When the aromatics have infused the broth (about 5 to 10 minutes), add the chicken. Increase the heat to medium-high to bring back to a simmer and cook until the chicken is no longer pink.
- Add the remaining can of coconut milk and the tomatoes. Cook, stirring occasionally, until the tomatoes are heated through but not broken down.
- Fish out the lemongrass, lime leaves, and galangal. (Or you can tell your diners to pick out those items in their bowls.)
- Remove the pot from the heat and season with fish sauce, lime juice, and cilantro. Taste and adjust with more seasoning if needed.
- Ladle up the soup and add Thai chili peppers to the bowls if desired.
Video
Notes
- Leftovers can be stored in the fridge for up to 4 days.
- If you can't find fresh, frozen, or dried galangal, lemongrass, and/or makrut lime leaves, you can season the soup to taste with a teaspoon or two of store-bought Thai red curry paste.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.
I’ve made this a dozen times and love it always!