If you’ve been craving something cozy, spicy, and full of flavor — this vegan tom yum soup is going to hit the spot.
It’s got that perfect mix of sour, salty, spicy, and umami that Thai soups are known for, without needing fish sauce or meat.
It’s easy to make at home and tastes just like your favorite Thai restaurant.

1.5 liters vegetable broth (or filtered water)
- 2 stalks lemongrass, bruised and cut into 2-inch pieces
- 5 kaffir lime leaves, torn in half
- 4 slices fresh galangal (or fresh ginger if unavailable)
- 3–4 fresh red Thai chilies, smashed (adjust to taste)
- 200g mixed mushrooms (like oyster, shiitake, or straw mushrooms), sliced or torn
- 1 medium tomato, cut into wedges
- 100g soft tofu or fried tofu, cut into cubes
- 1 tablespoon vegan Thai chili paste (Nam Prik Pao) or chili oil
- 1.5 tablespoons soy sauce
- 1 teaspoon coconut sugar (or brown sugar)
- Juice of 1–2 limes, to taste
- Fresh cilantro and extra sliced chili for garnish

Why I Love This Recipe
I used to order tom yum soup all the time at Thai places until I finally figured out how to make a vegan version that hits all the same notes. This one’s super satisfying and bright, but also feels like a warm hug — especially when you’re not feeling 100%.
- It’s a one-pot recipe with easy cleanup
- Tastes restaurant-quality but uses grocery store ingredients
- Packs so much flavor with just a few steps
- Super adaptable to what you’ve got in the fridge

Servings & Cook Time
- Servings: 4
- Total Time: 35 minutes
Macros (Per Serving – Approximate)
- Calories: 210
- Carbs: 19g
- Protein: 13g
- Fat: 10g
- Fiber: 4g
Why This Recipe Works (Quick Science)
The sour flavor in tom yum comes from lime juice and lemongrass. When heated, lemongrass releases citrusy essential oils that infuse the broth. The umami depth comes from mushrooms, tomato, and soy sauce — all plant-based powerhouses for savory flavor. Coconut oil helps carry the aromatics and gives the broth a little richness without coconut milk.
Common Mistakes
- Boiling too hard: This soup should simmer gently, not boil rapidly, or the tofu will break apart and the veggies will get mushy.
- Skipping the aromatics: Lemongrass, galangal (or ginger), and lime leaves make the base — don’t leave them out.
- Adding lime juice too early: Add it at the end or it can taste bitter.
What to Serve With
- Steamed jasmine rice or rice noodles
- Thai spring rolls or crispy tofu on the side
- Fresh cucumber salad with vinegar and chili
FAQ
Can I make this ahead of time?
Yes! Just don’t add the lime juice until you’re ready to serve so it stays fresh and bright.
Can I use coconut milk?
Traditional tom yum is clear, but you can add a splash of coconut milk for a creamy version called tom kha.
Is this soup spicy?
It’s mildly spicy with 2 Thai chilis, but you can adjust to your heat level or leave them out completely.
Make Ahead Tips
- Chop all your veggies and aromatics up to 2 days ahead and store in airtight containers in the fridge
- The broth can be made 1–2 days in advance and reheated before serving
- Add tofu and lime juice just before serving for the best texture and flavor
Let’s Make It
Step 1: Prep the aromatics
Smash 2 stalks of lemongrass (cut into 3-inch pieces), slice 3 slices of fresh galangal or ginger, and tear 4 kaffir lime leaves. These will simmer in the broth to create the classic tom yum base.

Step 2: Sauté the aromatics
In a large pot over medium heat, add 1 tablespoon of coconut oil. Once hot, add the smashed lemongrass, sliced galangal, and torn lime leaves. Sauté for 2–3 minutes until fragrant.

Step 3: Add the broth and seasonings
Pour in 4 cups of vegetable broth and 1 cup of water. Add 2 tablespoons of low-sodium soy sauce and 1 teaspoon of coconut sugar. Drop in 2 Thai chilis, lightly smashed. Simmer for 10 minutes to infuse the flavors.

Step 4: Add the veggies
Add 1 cup of sliced white mushrooms and 1 medium tomato cut into wedges. Simmer for another 5–7 minutes until mushrooms are tender.

Step 5: Add the tofu
Gently stir in 1 cup of firm tofu cut into cubes. Let it simmer for 3–5 minutes to warm through, but don’t stir too hard or it may break.

Step 6: Finish with lime juice and herbs
Turn off the heat. Stir in the juice of 1 fresh lime (about 2 tablespoons). Taste and adjust salt or soy sauce if needed. Top with a handful of fresh chopped cilantro.

Step 7: Serve
Ladle the soup into bowls. Serve hot with extra lime wedges and chili if desired.
