Introduction: Tom Kha Gai -- Thai Coconut Soup

About: I helped start Instructables, previously worked in biotech and academic research labs, and have a degree in biology from MIT. Currently head of Product helping young startups at Alchemist Accelerator, previous…

A traditional and tasty Thai soup, this is my favorite comparison point between Thai restaurants and an excellent twist on chicken soup for cold winter days.  I'm a huge fan of coconut, chicken soup, and creamy soups in general, so it's a winner for me.

Of course, making it at home means I can customize it to my preferences.  It's surprisingly easy to make!  This recipe is loosely adapted from David Johnson's Thai Food, a brick-sized comprehensive guide to Thai cooking. 

Note that you can make a pescatarian version (fish stock, shrimp instead of chicken) or even vegetarian or vegan (veg stock, tofu for chicken, soy sauce for fish sauce) though the latter will lack some of the pungency that only comes with fish sauce.

Step 1: Tools and Ingredients

This recipe scales beautifully - just multiply the ingredients below.  I've included substitutions for ingredients you may not have easily at hand, but a trip by an asian grocery will turn up everything on this list handily.  I buy lots of lemongrass and galanga ahead, then chop and freeze in pre-sorted ziplok bags for future use.  They keep quite well.  You can also do this with the shallots, coriander root, and kaffir lime leaves.

1 can coconut milk
2-3 cups chicken stock (homemade is best, then the stuff in cartons; boullion cubes are a last resort.)
pinch of salt
1 teaspoon palm sugar (I usually substitute brown sugar)
2 stalks fresh lemongrass, washed and choppped in chunks (dried lemongrass is far inferior - punch it up with extra lime juice and zest at the end if you're forced to go this route)
3 red shallots, peeled and chunked (I often substitute 3 smashed cloves of garlic plus a bit of onion)
2 coriander roots, scraped (I usually substitute a pinch of whole coriander seed plus a handful of fresh coriander (cilantro) leaves)
2 chili peppers, halved (pick your favorite type, and modify number to suit your spice taste)
1.5 inch chunk of galanga root, chunked (ginger is in the same family, but tastes totally different - galanga TOTALLY makes the flavor of this dish.  If you can't get this locally, travel to a nearby city and visit the asian markets or scour the internets, buy a pound, then freeze what you can't use now.  It's a floral flavor that you'll definitely recognize if you've had tom kha gai before.)
3 kaffir lime leaves, coarsely chopped (I have a kaffir lime tree in my yard, but you can substitute lime zest if necessary.  It just won't be as fragrant and complex.)
1 teaspoon chili garlic sauce (optional, and kind of a cheat, but often good.)

1 pound boneless skinless chicken thighs, cut to 1" pieces (you can use breasts, but the thighs are moister and tastier)
1 cup chopped mushrooms (your choice - mix it up)
1-3 Tablespoons fish sauce (This stuff is pungent - if you're not familiar, add incrementally and taste before increasing.  But don't be turned off by the smell.  Definitely use some, as it's a key flavor that softens when you add it to the soup.)
1 can baby corn, drained and chopped to 1/2" chunks (optional)

1 Tablespoon lime juice (more if compensating - see notes above)
1 handful fresh cilantro, chopped
1/2 cup grape tomatoes halved, or 2 plum tomatoes coarsely chopped (optional)


1 large pot, at least 3 qt
cutting board

Step 2: Make Broth

Combine all broth ingredients (coconut milk, stock, salt, sugar, shallots/garlic, coriander, galanga, lemongrass, kaffir lime leaves, chili sauce), bring to a low boil, and simmer for at least 15 minutes.

Step 3: Strain Broth

Pour through a sieve/strainer to remove chunks, and return the broth to your big pot. You can rescue a few items from the strainer, mince them, and return them to the pot if you like - I usually don't bother. 

You can usually smoosh more tasty liquid out of the chunks if you try, so give them a stiff squeeze.

Step 4: Add Chunks

Chop chicken, mushrooms, and baby corn and add to pot with broth.  Add fish sauce, and lime zest if using.  Simmer lightly until chicken is cooked.

Step 5: Finish and Serve

Add the cilantro, tomatoes, and lime juice.  Taste - the soup should be fragrant, with a rich (read: nicely fatty) taste, and a mix of sweet/sour/salty flavors in the broth.  You can tweak the latter with more sugar (sweet), lime juice (sour), or fish sauce (salty and tangy).

Serve hot.

This soup keeps beautifully, and will taste even better the next day after the flavors mingle overnight.  You may want to hit it with a bit more fresh lime after reheating, though, just to keep it zippy.