Craving a bowl of Tom Kha Gai, the classic Thai coconut chicken soup? You won’t believe how easy it is to make this Whole30-friendly dish at home with authentic ingredients like galangal, lemongrass, and kaffir lime leaves. (Can’t track down the ingredients? I also teach you how to make a shortcut version with Thai Curry Paste!) Come join me in my kitchen and let’s make some magic happen in less than 30 minutes!

Table of Contents
- Homemade Tom Kha Gai
- Authentic ingredients make the best Tom Kha Soup
- How to pick fresh galangal
- Ingredients for Tom Kha Soup
- Can’t track down these ingredients?
- How to make Tom Kha Gai
- How to save leftovers
- More healthy Asian soup recipes
- Tom Kha Gai: Irresistibly Creamy Thai Coconut Soup in 30 Minutes! Recipe
Homemade Tom Kha Gai
For years, I ordered Tom Kha Gai every time I went out for Thai food. Rich and intense, the aromatic flavors of this creamy and tangy 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!
Authentic ingredients make the best Tom Kha Soup
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!
How to pick fresh 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.
Can’t find fresh galangal after going to the ends of the earth to locate it? You can substitute frozen or dried galangal.
Ingredients for Tom Kha Soup
- 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.
- Fresh lemongrass: 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 tie it in a knot in the middle. If you have extra lemongrass, check out my tutorial on how to prepare it for other recipes.
- Makrut lime leaves: Makrut 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.
- Coconut oil or avocado oil
- Shallots: I love using sliced shallots in this soup, but feel free to substitute yellow or white onion.
- Shiitake mushrooms: If you can’t find shiitake mushrooms, oyster mushrooms and button mushrooms are a great substitute.
- Diamond Crystal brand kosher salt
- Chicken broth: I think chicken stock gives this soup the best flavor, but you can substitute vegetable broth if you like.
- Full fat canned coconut milk: My favorite brands are Aroy-D or Whole365 brand coconut milk.
- Boneless, and skinless chicken thighs: I love using chicken thighs cut into bite-sized pieces for this recipe, but feel free to use boneless skinless chicken breast if you prefer. Not into chicken? You can also substitute shrimp or tofu (for a vegetarian or vegan version).
- Tomatoes: It’s important not to cook the tomatoes until they fall apart in this soup. Also, there really aren’t any vegetables in this soup besides tomato slices and mushrooms, but feel free to add other veggies if you like!
- Red Boat fish sauce: Adds that classic umami flavor to the soup.
- Fresh lime juice: The soup is the perfect balance of creamy, umami, herbaceousness, and sourness so the lime juice is essential!
- Fresh cilantro leaves: I love to add these leaves as a garnish at the end. If you hate cilantro, you can substitute thinly sliced green onions.
- Thai chilies: Adds a spicy kick to the soup! Leave them out if you don’t like spicy.

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!
How to make Tom Kha Gai
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 boil.

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.

Serve with lime wedges and enjoy!

How to save leftovers
Leftover Tom Kha soup can be saved in a sealed airtight container in the fridge for up to 4 days. I don’t like freezing the soup because the coconut milk can separate when thawed.
More healthy Asian soup recipes
Looking for more recipe ideas? Head on over to my Recipe Index. You’ll also find exclusive recipes 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 2022).
PRINTER-FRIENDLY RECIPE CARD
Tom Kha Gai: Irresistibly Creamy Thai Coconut Soup in 30 Minutes!

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!