Kashmiri rogan josh is one of India's most celebrated curries, built on layers of warm aromatics rather than brute-force heat. Fennel seeds, green cardamom, dry ginger powder, and a generous pour of Kashmiri red chili create that unmistakable deep crimson gravy — fragrant, complex, and almost addictively savory. In this fully plant-based batch-prep version, rough-crumbled tempeh steps in as the protein, pan-fried until deeply golden before being folded into a silky coconut cream sauce that clings to every nook and cranny.
With 42 grams of fat and just 9 grams of net carbs per bowl, this lunch sits squarely in the keto sweet spot. The fat comes primarily from full-fat coconut cream and coconut oil, both rich in medium-chain triglycerides that your body converts to ketones efficiently. Tempeh contributes 18 grams of complete plant protein per serving, keeping you fueled through the afternoon without any dairy or animal products in sight.
Make the full batch on a Sunday evening and divide it into four airtight containers. The rogan josh gravy actually tastes better after a day or two as the whole spices continue to bloom and the flavors meld into something deeper and more unified. Your Wednesday lunch will be richer than your Monday lunch, which makes this one of the most rewarding meal-prep recipes in the vegan keto playbook.
Ingredients (serves 4)
For the spice-marinated tempeh:
- 10 oz (280g) soy tempeh, crumbled into rough bite-sized pieces
- 1 tsp Kashmiri red chili powder
- ½ tsp ground turmeric
- ½ tsp ground cumin
- ¼ tsp fine sea salt
- 1 tbsp coconut oil, melted
For the rogan josh gravy:
- 2 tbsp coconut oil
- 1 tsp fennel seeds
- 3 green cardamom pods, lightly crushed
- 2 whole cloves
- 1 small cinnamon stick, about 2 inches (5cm)
- 1 bay leaf
- 1 tbsp fresh ginger, finely minced
- 4 cloves garlic, finely minced
- 1½ tsp Kashmiri red chili powder
- 1 tsp ground coriander
- ½ tsp dry ginger powder (sonth)
- ¼ tsp ground turmeric
- pinch of asafoetida (hing)
- 1 can (13.5 oz / 400ml) full-fat coconut cream
- 2 tsp tomato paste
- ½ tsp fine sea salt, or to taste
For the coconut cauliflower rice:
- 2 cups (200g) riced cauliflower, fresh or frozen
- 1½ tsp coconut oil
- ¼ tsp ground turmeric
- pinch of fine sea salt
For serving:
- 4 cups (120g) fresh baby spinach
- 2 tbsp slivered almonds, toasted
- fresh cilantro leaves
Instructions
Marinate the tempeh. Place the crumbled tempeh in a medium bowl. Add the Kashmiri chili powder, turmeric, cumin, salt, and melted coconut oil. Toss with your hands or a spoon until every piece is evenly coated in a thin, red-orange layer of spice. Let it sit while you prep the remaining ingredients, at least 5 minutes.
Pan-fry the tempeh. Heat a large skillet or wok over medium-high heat. Add the marinated tempeh in a single layer, working in two batches if needed to avoid crowding the pan. Cook undisturbed for 3 to 4 minutes until the undersides turn deep golden and slightly crispy, then stir and cook for another 3 to 4 minutes until most surfaces are browned and firm. Transfer to a plate and set aside.
Bloom the whole spices. In the same skillet, reduce heat to medium and add 2 tablespoons of coconut oil. Once the oil shimmers, drop in the fennel seeds, cardamom pods, cloves, cinnamon stick, and bay leaf. Stir constantly for 60 to 90 seconds. You will know they are ready when the fennel seeds darken slightly and the kitchen fills with a warm, toasty aroma that smells like a spice bazaar.
Build the gravy base. Add the minced fresh ginger and garlic to the bloomed spices. Stir for about 30 seconds until fragrant but not browned. Immediately add the Kashmiri chili powder, ground coriander, dry ginger powder, turmeric, and asafoetida. Stir for 15 to 20 seconds, just long enough for the ground spices to release their color and toast lightly in the oil. The mixture will turn a vibrant reddish-orange.
Simmer with coconut cream. Pour in the full can of coconut cream and add the tomato paste. Stir well to combine everything into a smooth, rust-colored gravy, scraping up any spice paste stuck to the bottom of the pan. Bring to a gentle simmer and cook for 10 to 12 minutes, stirring occasionally, until the gravy thickens enough to coat the back of a wooden spoon. Taste and adjust salt as needed.
Fold in the tempeh. Return the crispy tempeh pieces to the gravy and stir gently to coat each piece without breaking them apart. Let everything simmer together for 2 minutes so the tempeh absorbs a thin layer of sauce while keeping its crispy edges intact. Remove the skillet from heat.
Cook the cauliflower rice. While the gravy simmers in step 5, heat 1½ teaspoons of coconut oil in a separate skillet over medium heat. Add the riced cauliflower, turmeric, and a pinch of salt. Cook for 4 to 5 minutes, stirring occasionally, until the cauliflower is just tender and any excess moisture has evaporated. You want it dry and slightly fluffy, not waterlogged or mushy.
Wilt the spinach. If packing for meal prep, place 1 cup of raw spinach in the bottom of each container. The residual heat from the curry will soften it slightly, and it will wilt fully when you reheat the bowl. If eating immediately, stir all the spinach into the warm gravy for 30 seconds until just wilted and bright green.
Assemble and store. Divide the turmeric cauliflower rice among four meal-prep containers. Spoon the tempeh rogan josh generously over the rice and spinach. Scatter toasted slivered almonds and a few cilantro leaves on top. Allow the bowls to cool to room temperature before sealing with lids and refrigerating for up to 5 days. Reheat in the microwave for 90 seconds to 2 minutes, or in a covered skillet over medium-low heat for 4 to 5 minutes.
Nutrition per Serving
| Nutrient | Amount |
|---|---|
| Calories | ~490 kcal |
| Fat | ~42g |
| Protein | ~18g |
| Total Carbs | ~14g |
| Fiber | ~5g |
| Net Carbs | ~9g |
Nutrition is approximate and may vary based on specific brands of tempeh and coconut cream used.
Tips & Variations
Store the gravy and rice separately for the best texture. If your meal-prep containers have divided sections, use them. Keep the cauliflower rice apart from the wet gravy to prevent it from going soggy by day 4. When reheating, sprinkle a teaspoon of water over the rice and microwave everything together. The rice steams back to life while the gravy heats through.
Boost protein with hemp hearts. Scatter 1 to 2 tablespoons of hulled hemp hearts over each bowl before eating. This adds 5 to 10 grams of protein and 4 to 8 grams of healthy fat per serving, with under 1 gram of net carbs. It is one of the easiest ways to push past 25 grams of protein per meal without changing the recipe itself or adding any animal products.
Watch for hidden carbs in your tempeh and hing. Some tempeh brands include grains like barley, rice, or millet, which significantly raises the carb count. For keto, always choose soy-only tempeh and check the label. Similarly, many brands of asafoetida (hing) contain wheat flour as a bulking agent. If you need strict gluten-free compliance, look for pure compounded asafoetida or skip it entirely and add an extra clove of garlic instead.
Swap the protein without changing the gravy. This rogan josh gravy works beautifully with cubed extra-firm tofu (pressed for 20 minutes and pan-fried the same way), thick slices of pan-seared eggplant, or even halved baby bella mushrooms. All options keep the recipe vegan keto and under 10 grams of net carbs.
Dial the heat up or down. Kashmiri red chili powder is prized for its vibrant color and gentle warmth rather than searing heat. For more kick, add ¼ teaspoon of cayenne pepper to the gravy alongside the other ground spices. For a milder bowl, reduce the total Kashmiri chili to 1 teaspoon and stir an extra tablespoon of coconut cream into the finished gravy. Neither adjustment affects the net carb count in any meaningful way.