Kimchi Biryani with Crispy Tofu

Fragrant basmati layered with crispy garam masala tofu, caramelized onions and tangy-spicy kimchi, steamed dum-style and finished with toasted sesame seeds. A Korean-Indian fusion one-pot that is bold, savory and vegetarian.

Prep
30 min
Cook
50 min
Wait
45 min
Total
2 hr 5 min
Makes
4 generous servings (about 6 cups / 1.4 L cooked biryani)
Share

Steps

Before you start
  • Rinse and soak the basmati for at least 30 minutes; this keeps the grains long and unbroken.
  • Press the tofu for 20 minutes (wrap in a clean towel under a heavy pan) so it fries crisp instead of steaming.
  • Use well-fermented, sour kimchi if you can; fresh kimchi gives a milder, less complex flavor.
  • Check that your pot has a tight-fitting lid; if the lid is loose, cover with foil first, then the lid.
  1. Marinate the tofu

    • In a medium bowl, whisk the yogurt, 2 tsp garam masala (tofu portion), turmeric, gochugaru and ½ tsp of the salt.
    • Gently fold in the pressed tofu cubes until evenly coated.
    • Let stand 20 minutes while the rice soaks and you slice the onions.
    + Show details

    Ready when: Every cube is coated in an even orange-red layer of marinade

    Tip: Fold gently; pressed tofu crumbles if stirred roughly.

  2. Crisp the tofu

    • Heat 3 tbsp of the oil in a 12-inch (30 cm) skillet over medium-high heat until shimmering.
    • Add the tofu in a single layer, leaving the excess marinade behind.
    • Cook 10–12 minutes, turning every 2–3 minutes, until all sides are deep golden and crisp at the edges.
    • Transfer to a plate.
    + Show details

    Ready when: Cubes are deep golden-brown with a firm, crisp crust and release easily from the pan

    Tip: Don't move the tofu for the first 2 minutes or the crust will tear off. Cook in two batches if the pan is crowded.

  3. Caramelize the onions

    • In the same skillet (no need to wash), add the remaining 2 tbsp oil over medium heat.
    • Add the sliced onions and ½ tsp salt.
    • Cook, stirring every 2 minutes, 15–18 minutes until deep amber brown.
    • Scoop out about one-third (roughly ½ cup) onto a small plate for the topping; this is your birista.
    + Show details

    Ready when: Onions are soft, sweet-smelling and deep amber brown, with some edges darker and crisp

    Tip: If the pan browns too fast and onions scorch, lower the heat and add a splash of water.

  4. Build the kimchi masala

    • Push the remaining onions to one side, add the garlic and ginger and stir 1 minute until fragrant.
    • Add the chopped kimchi, gochujang and the remaining 1 tsp garam masala.
    • Cook 6–8 minutes, stirring often, until the kimchi softens, darkens slightly and most of its liquid evaporates.
    • Stir in the reserved ¼ cup kimchi brine and cook 1 minute more.
    • Fold in the crispy tofu, then turn off the heat.
    + Show details

    Ready when: Masala looks thick and jammy, with no pooling liquid, and smells sweet-sour and spicy

    Tip: Taste the masala: the kimchi is salty, so adjust the rice water salt rather than adding more here.

  5. Parboil the rice

    • While the masala cooks, bring 8 cups (1.9 L) water to a boil in the 5-quart pot over high heat with 1 tsp salt, the cardamom, cinnamon stick and bay leaves.
    • Add the drained rice and boil 4–5 minutes, stirring once gently after 1 minute.
    • Test a grain: it should break easily when pressed but still have a hard white core in the center.
    • Drain immediately in a fine-mesh strainer, discarding the whole spices only if you want, or leaving them in the rice.
    + Show details

    Ready when: Grains are about 70% cooked: they snap into pieces when bitten, with a chalky white center

    Tip: Overcooked parboiled rice turns mushy in the steam. Err on the firm side.

  6. Layer the pot

    • Wipe out the pot and brush the bottom with 1 tbsp of the melted ghee.
    • Spread half the rice in an even layer, then spoon over all the kimchi-tofu masala and spread evenly.
    • Cover with the remaining rice, mounding it gently without pressing down.
    • Drizzle the saffron milk (if using) in streaks over the top, then the remaining 2 tbsp ghee.
    • Scatter the reserved caramelized onions over the surface.
    + Show details

    Ready when: Two distinct rice layers with the masala sandwiched between, topped with golden onions

    Tip: Don't pack the rice; the grains need space to expand and steam.

  7. Steam on dum

    • Cover the pot with a clean kitchen towel or a sheet of foil, then press the lid on tightly to seal in steam.
    • Cook over medium-high heat for 3 minutes until you hear a gentle sizzle, then reduce to the lowest heat and steam for 25 minutes without lifting the lid.
    + Show details

    Ready when: Steam is escaping evenly and the rice smells strongly of spices and toasted ghee

    Tip: If your burner runs hot, place a heavy skillet or flame tamer under the pot to prevent the bottom from scorching.

  8. Rest the biryani

    • Turn off the heat and leave the pot covered and undisturbed for 10 minutes so the grains firm up and the moisture distributes evenly.
  9. Toast the sesame

    • While the biryani rests, toast the sesame seeds in a small dry skillet over medium-low heat for 2–3 minutes, shaking constantly, until light golden and nutty-smelling.
    • Tip onto a plate immediately to stop cooking.
    + Show details

    Ready when: Seeds are light golden and smell nutty; a few may pop

    Tip: Sesame goes from golden to bitter in seconds, so don't walk away.

  10. Fluff and finish

    • Remove the lid.
    • Drizzle the toasted sesame oil over the top, then use a fork or wide spoon to gently fold from the bottom up so the rice, masala and tofu mingle in streaks.
    • Fold in half the scallions and cilantro.
    • Transfer to a serving dish and top with the toasted sesame seeds and remaining scallions and cilantro.
    • Serve hot.
    + Show details

    Ready when: Grains are separate, fluffy and fully tender, with no hard white centers

    Tip: Serve with cooling yogurt or cucumber raita to balance the heat.

Good to know

Tips
  • Rinse the rice until the water runs nearly clear; excess starch is the main cause of sticky biryani.
  • Cook the kimchi until the liquid evaporates; wet masala makes the rice soggy.
  • Never lift the lid during the dum steam; the trapped steam is what cooks the rice.
  • Taste the kimchi before seasoning; brands vary widely in saltiness.
Make ahead

"Press and marinate the tofu up to 24 hours ahead, covered in the fridge. The kimchi masala can be cooked up to 2 days ahead and refrigerated; rewarm gently before layering with freshly parboiled rice."

Storage & reheating

"Room temperature: no more than 2 hours. Fridge: airtight container up to 3 days. Freezer: up to 2 months in portions. Reheat with 1–2 tbsp water per serving, covered, in a microwave for 2–3 minutes or in a covered skillet over low heat for 5–6 minutes until steaming hot."

Substitutions
  • extra-firm tofu → paneer or bite-size chicken thigh pieces. Paneer is fried the same way; chicken must be cooked to 165°F (74°C) before layering, so simmer it in the masala for 10 minutes.
  • gochugaru (Korean chili flakes) → Kashmiri chili powder. Gives similar color with slightly less smokiness; use ¾ tbsp.
  • ghee or unsalted butter → neutral oil or vegan butter. Makes the dish vegan when paired with plant yogurt and milk.
  • gochujang → 1 tbsp tomato paste plus 1 tsp chili flakes. Loses some fermented sweetness but keeps the color and heat.

More biryani

See all →

Find more like this

Meal
Dinner
Cuisine
Indian
Main ingredient
Basmati RiceTofu
Method
Stovetop
Quick & Easy
One-Pot

Reviews (0)