There is a whole category of Kashmiri cooking that relies on slow warmth rather than searing heat, and this dish belongs squarely in that tradition. Thick slabs of extra-firm tofu get pan-fried until their edges turn deeply golden, then they drop into a pale saffron-coconut gravy built on ground almonds, fennel, and dry ginger. The result is rich without being heavy, quietly fragrant rather than aggressively spiced, and the kind of thing you want to eat slowly with a spoon to get every last streak of that golden sauce. If you have never cooked with Kashmiri spice profiles before, this is the place to start.

The macros here are solidly keto. Each serving delivers roughly 50 grams of fat, primarily from coconut cream and coconut oil, with 21 grams of plant protein from the tofu itself. Net carbs land at just 9 grams, keeping you comfortably in ketosis even if the rest of your day includes a handful of nuts or a few berries. The almond paste in the gravy pulls double duty, adding both fat and a velvety body that you would normally get from cashews or dairy cream in traditional versions.

Everything happens in a single skillet in about 30 minutes, and the dish reheats beautifully. Pack it over cauliflower rice for a weekday lunch, or eat it straight from the pan on a lazy Saturday. The gravy actually improves overnight as the spices meld, so this is a strong candidate for Sunday cooking that feeds you into Monday.

Ingredients (serves 2)

For the tofu:

  • 14 oz (400g) extra-firm tofu, drained and pressed
  • 1 tablespoon coconut oil
  • ¼ teaspoon ground turmeric
  • ¼ teaspoon fine sea salt

For the Kashmiri gravy:

  • 1 tablespoon coconut oil
  • 2 green cardamom pods, lightly crushed with the flat of a knife
  • 1 cinnamon stick, about 2 inches (5cm)
  • 2 whole cloves
  • 1 bay leaf
  • 2 cloves garlic, minced
  • 1-inch (2.5cm) piece fresh ginger, finely grated
  • ½ teaspoon Kashmiri red chili powder (or sweet paprika for color with mild heat)
  • ½ teaspoon fennel powder
  • ¼ teaspoon dry ginger powder (sonth)
  • ¼ teaspoon ground turmeric
  • Pinch of asafoetida (hing), optional
  • 3 tablespoons (20g) blanched almonds, soaked in warm water for 10 minutes and ground to a smooth paste with 2 tablespoons water
  • ¾ cup plus 2 tablespoons (220ml) full-fat coconut cream
  • Generous pinch of saffron threads (about 15 strands), soaked in 2 tablespoons warm water
  • ½ teaspoon fine sea salt, or to taste

For garnish:

  • 1 tablespoon toasted almond slivers
  • Small handful fresh cilantro leaves
  • Pinch of saffron threads (optional)

Instructions

  1. Press and cut the tofu. Wrap the tofu block in a clean kitchen towel and set a heavy pan or a couple of cans on top. Let it press for at least 15 minutes to remove excess moisture. Cut into roughly 1-inch (2.5cm) cubes and toss them in a bowl with the turmeric and salt until evenly coated.

  2. Pan-fry the tofu. Heat 1 tablespoon of coconut oil in a large skillet or deep sauté pan over medium-high heat. Once the oil shimmers, add the tofu cubes in a single layer. Let them cook undisturbed for about 2 minutes per side, turning occasionally, until golden-brown on most sides. This takes 6 to 8 minutes total. Transfer the tofu to a plate and set aside.

  3. Bloom the whole spices. Reduce the heat to medium. Add the remaining tablespoon of coconut oil to the same skillet. Drop in the cardamom pods, cinnamon stick, cloves, and bay leaf. Stir for 30 to 45 seconds until the spices crackle and the kitchen smells warm and sweet.

  4. Cook the aromatics. Add the garlic and fresh ginger. Stir constantly for about 1 minute until softened and fragrant but not browned.

  5. Build the spice base. Reduce heat to medium-low. Add the Kashmiri chili powder, fennel powder, dry ginger powder, turmeric, and asafoetida if using. Stir for 20 to 30 seconds, just until the ground spices darken slightly and smell toasty. Be careful not to burn them.

  6. Add the almond paste. Scrape the ground almond paste into the skillet. Stir it into the spices and cook for about 1 minute, letting it turn faintly golden. This step creates the creamy backbone of the gravy.

  7. Pour in the coconut cream and saffron. Add the coconut cream and the saffron along with its soaking water. Stir everything together thoroughly, scraping up any browned bits from the bottom of the pan. Bring the gravy to a gentle simmer. It should turn a gorgeous pale gold from the saffron and turmeric.

  8. Simmer with the tofu. Return the pan-fried tofu cubes to the skillet, nestling them into the gravy. Let everything simmer gently over medium-low heat for 5 to 7 minutes, stirring once or twice, until the gravy thickens to a consistency that coats the back of a spoon and the tofu has absorbed some of the flavor. If the gravy reduces too much, add a splash of water.

  9. Garnish and serve. Remove from heat. Discard the bay leaf, cinnamon stick, and cloves if you prefer. Scatter toasted almond slivers, fresh cilantro leaves, and a few saffron threads over the top. Serve hot on its own, over cauliflower rice, or alongside a simple green salad.

Nutrition per Serving

Nutrient Amount
Calories ~560 kcal
Fat ~50g
Protein ~21g
Total Carbs ~12g
Fiber ~3g
Net Carbs ~9g

Nutrition is approximate and based on the stated ingredients and quantities. Values may vary depending on specific brands of coconut cream and tofu used.

Tips & Variations

Do not skip pressing the tofu. Waterlogged tofu steams instead of browning, and you will end up with pale, soft cubes that fall apart in the gravy. If you are short on time, buy pre-pressed or super-firm tofu, which skips this step entirely. A tofu press speeds things up as well, but a towel and a heavy pan get the job done.

Use real saffron, even a small amount. Saffron is expensive, but a pinch goes far in this dish. Look for deep red, thread-like strands without yellow or white tips. Soaking them in warm water for at least 10 minutes before adding them to the gravy draws out the color and flavor. If saffron is unavailable, a tiny pinch of ground turmeric mixed with a drop of almond extract is a passable visual substitute, though the flavor will differ.

Check your coconut cream for hidden carbs. Some brands of coconut cream add sugar, stabilizers, or thickeners that push the carb count higher than expected. Read the label and look for versions with just coconut extract and water. Aroy-D and Native Forest both make clean, unsweetened coconut cream that works well here.

This dish stores and reheats exceptionally well. Cool the tofu and gravy completely, then transfer to an airtight container. It keeps in the refrigerator for up to 4 days. Reheat gently in a skillet over medium-low heat, adding a tablespoon of water if the gravy has thickened too much overnight. The flavors deepen with a day of rest, making it an excellent candidate for meal prep.

Adjust the spice warmth to your preference. Kashmiri red chili powder is mild and chosen more for its vibrant red color than for heat. If you want more kick, add a finely minced green chili along with the garlic and ginger. For a smokier flavor, stir in a quarter teaspoon of smoked paprika at the end of cooking.

Frequently Asked Questions

Is this dish truly keto-friendly at 12 grams total carbs?
Yes. The 12 grams of total carbohydrates include 3 grams of dietary fiber, bringing the net carb count to 9 grams per serving. Most ketogenic guidelines recommend staying below 20 to 25 grams of net carbs per day, so this lunch leaves plenty of room for the rest of your meals. The carbs here come primarily from the tofu, almonds, and coconut cream, all of which are whole-food sources with a low glycemic impact. Pair it with a very low-carb side like sautéed greens to keep your daily total comfortably in range.
Can I use a different plant protein instead of tofu?
Tempeh works well as a direct substitute. Slice it into thin rectangles, pan-fry it the same way, and expect a slightly nuttier flavor and firmer bite. Note that tempeh typically has a few more carbs than tofu, so check the label on your brand and adjust your daily totals accordingly. You could also try thick slices of extra-firm coconut yogurt-marinated cauliflower steaks, though the protein count will drop significantly. Stick with tofu or tempeh if hitting that 20-gram protein threshold matters to you.
How long does this keep, and can I freeze it?
Stored in an airtight container in the refrigerator, the tofu and gravy keep well for up to 4 days. The gravy thickens as it chills, which is normal. When reheating, add a small splash of water and warm it gently in a covered skillet over medium-low heat until it returns to a pourable consistency. Freezing is possible for up to 6 weeks, though the tofu texture may become slightly spongier after thawing. If you plan to freeze it, slightly undercook the tofu during the pan-frying step so it does not become too dry after reheating.
How would I adapt this for lacto-vegetarian keto instead of vegan?
Swap the coconut cream for an equal amount of heavy whipping cream and replace the coconut oil with ghee for a richer, more traditional Kashmiri flavor. You could also stir in a tablespoon of full-fat plain yogurt at the very end of cooking, off the heat, for tanginess. These swaps will change the fat profile slightly but keep the dish firmly in keto territory. If you eat paneer, you can substitute it for the tofu entirely, cutting it into cubes and frying it in ghee until golden before adding it to the gravy.
My gravy turned out too thin. How do I fix it?
The most common cause is coconut cream that is too watery. Always shake the can before opening and use the thick, creamy portion rather than the separated liquid on top if your brand tends to separate. If the gravy is already too thin, let it simmer uncovered for an additional 3 to 5 minutes after removing the tofu so it reduces without overcooking the protein. Another fix is to add an extra tablespoon of ground almonds, whisking it in and simmering for 2 minutes. The almond paste acts as a natural thickener and adds body without additional carbs.