There are few things more deeply satisfying than a steaming bowl of Thai tom kha — that impossibly silky coconut broth simmered with lemongrass, galangal, and chili, each spoonful delivering layers of sour, salty, and aromatic heat. This vegan keto version stays true to the spirit of the original, swapping the traditional chicken for golden pan-seared tofu and piling in tender mushrooms, bok choy, and a final shower of toasted sesame seeds for nutty crunch. The coconut cream does all the heavy lifting here, creating a broth so luscious you'll want to drink it straight from the pot. It is, without exaggeration, one of the most flavorful dinners you can batch-cook in under an hour.

The macro profile is exactly what a keto dinner should look like. Each generous serving delivers 34 grams of fat — mostly from coconut cream and coconut oil — alongside 18 grams of plant-based protein from tofu and sesame. Net carbs land at just 5 grams per bowl, leaving plenty of room for your daily carb budget. The fat-to-calorie ratio sits comfortably at 73%, making this a textbook ketogenic meal that also happens to be completely plant-based.

The real magic of this recipe is how beautifully it batch-preps. The stew actually improves as it sits in the fridge, the aromatics deepening and the tofu soaking up that coconut-lemongrass broth overnight. Cook one large pot on Sunday and you have four stunning dinners ready to reheat in minutes throughout the week. Just store the crispy sesame topping separately and add it fresh for that satisfying crunch every time.

Ingredients (serves 4)

For the crispy sesame tofu:

  • 14 oz (400g) extra-firm tofu, drained and pressed
  • 2 tablespoons (30ml) coconut oil
  • 2 tablespoons (16g) white sesame seeds
  • 1/2 teaspoon fine sea salt
  • 1/4 teaspoon white pepper

For the tom kha broth:

  • 1 can (13.5 oz / 400ml) full-fat coconut cream
  • 1 cup (240ml) vegetable broth (check label for zero sugar)
  • 2 stalks lemongrass, trimmed and bruised with the back of a knife
  • 1 inch (2.5cm) piece fresh galangal or ginger, thinly sliced
  • 4 kaffir lime leaves, torn (or zest of 1 lime)
  • 2 Thai bird's eye chilies, lightly smashed (adjust to taste)
  • 2 tablespoons (30ml) coconut aminos
  • 1 tablespoon (15ml) lime juice
  • 1 teaspoon toasted sesame oil

For the vegetables:

  • 8 oz (225g) mixed mushrooms (shiitake and oyster work best), sliced
  • 2 heads baby bok choy (about 6 oz / 170g), quartered lengthwise
  • 3 scallions, thinly sliced on the bias

For garnish:

  • 1 tablespoon (8g) toasted sesame seeds
  • Fresh cilantro leaves
  • Lime wedges
  • Thinly sliced Thai chili (optional)

Instructions

  1. Press the tofu. Wrap the tofu block in a clean kitchen towel or paper towels and place a heavy skillet or cutting board on top. Press for at least 15 minutes to remove excess moisture — this is essential for achieving a golden sear. Once pressed, cut the tofu into 3/4-inch (2cm) cubes and pat completely dry.

  2. Sear the tofu. Heat the coconut oil in a large Dutch oven or heavy-bottomed pot over medium-high heat until shimmering. Add the tofu cubes in a single layer, leaving space between each piece. Sprinkle with the salt and white pepper. Cook undisturbed for 3–4 minutes until the bottoms are deeply golden and crisp. Flip and cook another 2–3 minutes. Scatter the 2 tablespoons of sesame seeds into the pan during the last minute, letting them toast alongside the tofu. Transfer the sesame-crusted tofu to a plate and set aside.

  3. Build the aromatic base. In the same pot (no need to wipe it out — those golden bits are flavor), reduce heat to medium. Add the bruised lemongrass stalks, sliced galangal or ginger, torn kaffir lime leaves, and smashed Thai chilies. Stir and cook for 1–2 minutes until incredibly fragrant, letting the aromatics bloom in the residual coconut oil.

  4. Pour in the coconut broth. Add the full can of coconut cream and the vegetable broth. Stir well, scraping up any golden bits from the bottom of the pot. Bring the liquid to a gentle simmer — do not let it boil aggressively, as coconut cream can separate at high heat. Reduce heat to medium-low and let the broth simmer for 12–15 minutes, allowing the lemongrass and galangal to fully infuse.

  5. Cook the mushrooms and bok choy. Add the sliced mushrooms to the simmering broth and cook for 5 minutes until tender and slightly reduced. Nestle in the quartered bok choy and cook for another 3–4 minutes until the stems are just tender but still vibrant green.

  6. Season and finish. Remove the pot from heat. Stir in the coconut aminos, lime juice, and toasted sesame oil. Taste and adjust: add more lime juice for brightness, more coconut aminos for depth, or another smashed chili for heat. Fish out the lemongrass stalks and galangal slices if you prefer (they are not meant to be eaten, though leaving them in is traditional).

  7. Assemble. Return the seared sesame tofu to the stew, gently folding it in so it can soak up the broth. Ladle into deep bowls and top with sliced scallions, the extra tablespoon of toasted sesame seeds, torn cilantro, a squeeze of fresh lime, and sliced chili if you like the heat.

  8. Batch-prep storage. To store for the week, let the stew cool completely. Divide into four airtight containers. Keep the extra toasted sesame seeds and fresh garnishes in separate small containers. Refrigerate for up to 5 days. Reheat individual portions in a saucepan over medium-low heat or microwave for 2–3 minutes, then add the fresh toppings just before serving.

Nutrition per Serving

Nutrient Amount
Calories ~418 kcal
Fat ~34g
Protein ~18g
Total Carbs ~9g
Fiber ~4g
Net Carbs ~5g

Nutrition is approximate and calculated based on the stated ingredients and brands with no added sugars.

Tips & Variations

Galangal vs. ginger — which to use. Galangal gives the stew its authentic tom kha flavor — sharper, more citrusy, and piney compared to ginger's warmth. If you can find it at an Asian grocery store, use it. Fresh ginger is a perfectly delicious substitute, though, and delivers a slightly different but equally aromatic result. You can also find frozen galangal slices at many Asian markets, which keep for months.

Boost the protein even further. If you want to push this above 20 grams of protein per serving, add 4 ounces of cubed tempeh alongside the tofu when searing, or stir 2 tablespoons of hemp hearts into each bowl before serving. Both additions keep the recipe fully vegan keto and add negligible carbs.

Watch for hidden carbs in store-bought ingredients. Coconut aminos can range from 1 to 5 grams of carbs per tablespoon depending on the brand — always check the label and choose one with no added sugar. Similarly, some vegetable broths contain added sugars or starches. Stick to brands that list zero carbs per serving, or make your own by simmering mushroom stems, celery, and aromatics in water.

Make it spicier or milder. The Thai chilies are the primary heat source, and this recipe is written for a moderate kick. For a milder stew, simply remove the chili seeds before smashing, or omit them entirely and add a pinch of white pepper instead. For serious heat lovers, slice the chilies open and leave the seeds in, or add a drizzle of chili oil at the table.

Freeze for longer storage. While the stew keeps beautifully in the fridge for 5 days, you can also freeze it for up to 3 months. Freeze the stew base without the bok choy (it becomes mushy when thawed). When ready to eat, thaw overnight in the fridge, reheat gently, and stir in freshly steamed bok choy and a squeeze of lime to revive the bright flavors.

Frequently Asked Questions

Is this stew really keto-friendly with coconut cream?
Absolutely — full-fat coconut cream is one of the best keto ingredients available. A standard 13.5 oz can contains roughly 4–6 grams of net carbs total, which split across four servings is negligible. The high fat content (around 80 grams per can) is exactly what makes it so perfect for ketogenic cooking. Just make sure you are buying full-fat coconut cream, not "lite" or "light" versions, which often replace the fat with added sugars or fillers. Check the label: the only ingredients should be coconut extract and water, possibly with a small amount of guar gum as a stabilizer.
Can I substitute the tofu for another plant-based protein?
Yes — tempeh is the best swap and actually adds a firmer, nuttier texture that works wonderfully in this broth. Cut it into thin slabs and sear exactly as you would the tofu. You could also use thick slices of king oyster mushroom stems, seared until golden, for a whole-food option with even fewer carbs. Avoid using store-bought vegan "meat" products, as these frequently contain wheat gluten, starches, and hidden sugars that will spike the carb count well beyond keto range.
How should I reheat this stew for the best results?
Stovetop reheating gives you the best texture — warm each portion in a small saucepan over medium-low heat for 4–5 minutes, stirring gently. The coconut cream may look slightly separated after refrigeration; this is completely normal and it will come back together as it heats. Avoid boiling, which can cause the broth to break. If using a microwave, heat at 70% power in 90-second intervals, stirring between each. Always add the toasted sesame seeds, fresh cilantro, and lime squeeze after reheating so they stay vibrant and crunchy.
What if I am not strictly vegan — can I add eggs or dairy?
Of course. If you follow lacto-ovo vegetarian keto rather than vegan keto, you have several delicious options. A soft-boiled egg halved on top adds richness and extra protein. You could also stir a tablespoon of ghee into the finished broth for an even silkier texture. Some people enjoy a dollop of full-fat coconut yogurt on top, but if dairy yogurt is in your plan, that works too. Just recalculate macros accordingly — one large egg adds about 5 grams of fat and 6 grams of protein with virtually zero carbs.
My coconut cream keeps splitting — how do I prevent this?
Coconut cream splits when it gets too hot too fast. The key is gentle, patient simmering — never a rolling boil. Keep the heat at medium-low once the broth is simmering and resist the urge to crank it up. If the cream does start to look grainy or oily on the surface, remove the pot from heat immediately and whisk vigorously for 30 seconds. Adding the vegetable broth helps stabilize the mixture by diluting the fat slightly. Some brands are more stable than others; brands with a small amount of guar gum listed in the ingredients tend to hold together better during cooking.