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
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.
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.
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.
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.
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.
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).
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.
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.