North India's most beloved comfort dish — red kidney beans slow-simmered in a tomato, onion, and warming-spice gravy, served over basmati rice.
Rajma masala is the Sunday lunch dish of Punjab, North India, and across the diaspora it carries an emotional weight far greater than the sum of its modest ingredients. Red kidney beans (rajma) — soaked overnight, pressure-cooked until almost collapsing, then slow-simmered in a deep red gravy of fried onions, tomatoes, ginger, garlic, dried red chiles and a complex spice blend — produce a stew so rich and savory that it has become India's archetypal vegetarian comfort food. The dish exemplifies the Punjabi cooking principle of bhuna: the patient, slow frying of onions to a deep mahogany and the careful 'bhunao' of the tomato-spice base until it releases oil at the edges — only when this happens are the beans added. Served with steamed basmati rice (rajma chawal), a wedge of lemon, sliced raw onion and a green chile, rajma masala is what Punjabi families eat after a long week, what students cook in their hostels, what mothers send in tiffins with their kids. Despite its humble main ingredient, it has a depth that rivals long-cooked French stews — and like them, it tastes even better the next day after the flavors have had a night to settle.
Serves 4
Drain the soaked beans and rinse. Add to a pressure cooker with 1 L fresh water, 1 tsp salt, the cinnamon stick, black cardamom and cloves. Pressure cook on high 8 whistles (or about 25 minutes in an Instant Pot on high pressure). The beans should be completely tender — you should be able to crush one between thumb and forefinger.
While beans cook, heat ghee in a heavy-bottomed pot over medium. Add cumin seeds and let them sputter 30 seconds. Add the chopped onions and cook 12–15 minutes, stirring frequently, until deeply golden brown — not blonde, not pale, properly browned. This step is the foundation of Punjabi gravy and rushed onions ruin the dish.
Add a pinch of salt to the onions early — it draws out moisture and helps them brown faster.
Add ginger paste, garlic paste and slit green chiles to the browned onions. Fry 2 minutes until the raw smell disappears and the mixture is fragrant. Don't let the garlic burn — reduce heat if needed.
Pour in the tomato puree and add the coriander powder, Kashmiri chile, turmeric and 1 tsp salt. Cook 12–15 minutes over medium-low heat, stirring every 2 minutes, until the tomato has reduced to a thick paste and you can see oil pooling at the edges — this is the bhunao that defines a proper Punjabi gravy. Without this oil-release, the dish tastes raw and acidic.
Tip the pressure-cooked beans (with their cooking liquid) into the gravy and stir gently. The mixture should be saucy but not soupy — add hot water if it's too thick. Bring to a simmer.
Reduce heat to low, cover loosely and simmer 20–25 minutes, stirring occasionally and mashing some beans against the side of the pot with the back of a spoon. The crushed beans thicken the gravy naturally and give it body. The longer it simmers, the better it tastes — even an hour is not too long.
Crumble the kasuri methi between your palms to wake up the aroma and sprinkle over the rajma. Sprinkle garam masala, give one final stir and let rest covered 5 minutes off the heat. Garnish with chopped coriander and serve over hot basmati rice with sliced raw onion, a wedge of lemon and a slit green chile on the side.
Soak the beans overnight (8+ hours) — quick-soaking methods give beans that won't cook evenly. Old beans (over a year in your pantry) may never soften, no matter how long you cook them.
Brown the onions properly — this is the single most important step. Pale onions give a pale, bland gravy; mahogany onions give a deep, complex one.
Kashmiri chile powder gives the rich red color without much heat; regular Indian chile powder will give too much heat and dull color.
Rajma tastes significantly better the next day — make it the night before serving and reheat gently. The flavors deepen overnight.
Rajma chawal — the classic pairing with basmati rice; the only way most Punjabis eat it.
Rajma with Kashmiri large red beans (Kashmiri rajma) — smaller, redder, sweeter; cook 10 minutes longer.
Rajma masala with potato — add 2 diced potatoes with the beans for a heartier stew.
Quick canned version — use 2 cans of kidney beans (drained) and reduce step 1 entirely; cooks in 35 minutes total. Texture is less creamy but acceptable.
Refrigerate up to 5 days in a sealed container — flavors improve daily. Freeze up to 3 months. Reheat gently in a saucepan with a splash of water, stirring often. Microwave reheating works but tends to dry the dish; cover with a damp paper towel.
Kidney beans (rajma) are not native to India — they arrived via Mexican-Iberian trade routes in the 16th century and were adopted enthusiastically across North India, particularly Punjab, Kashmir and Himachal Pradesh. The dish in its modern form emerged in 19th-century Punjab as a hearty vegetarian alternative to meat curries, and became the canonical Sunday lunch of urban Punjabi households through the 20th century.
You can use a quick soak (boil beans 2 minutes, rest 1 hour) but the texture is noticeably less creamy. Overnight soak gives the best result and reduces cooking time.
Old beans (over 12 months) often won't soften no matter how long you cook them — buy fresh from a high-turnover Indian grocery. Hard water also slows softening; use filtered water if your tap is very hard.
Yes — soak beans overnight, prepare the bhuna base on the stove (step 2–4), combine in a slow cooker with beans and 1 L water, and cook on low 8 hours or high 4 hours.
Chana masala uses chickpeas and tends to be tangier (more amchur or lemon); rajma uses kidney beans and is creamier, deeper, less acidic. Both are Punjabi dishes but rajma is considered the more comforting one.
Per serving (380g / 13.4 oz) · 4 servings total
Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.
Chat with AI Chef →Join the conversation
Sign in to leave a comment and save your favourite recipes