Maharagwe ya nazi

Swahili coast beans stewed in coconut milk with cardamom and cumin until the sauce turns sweet, thick and faintly spiced

Origin: Mombasa & the Swahili Coast

From the journey of Beans.

Maharagwe is simply the Swahili word for beans, and on the coast it almost always means maharagwe ya nazi, beans in coconut milk. It is the coastal counterpart to the plain boiled and fried beans of the interior, and the difference between them is a fair summary of what the Indian Ocean did to East African cooking: the same American bean, arriving at the same time, treated in two entirely different ways a few hundred miles apart. Everything that distinguishes the coastal version came off a ship. Coconut is the fat and the liquid, cardamom and cumin the spice, and the result is sweeter, richer, and gentler than anything cooked inland. The Swahili coast was the western terminus of a monsoon trade that ran to Arabia, Gujarat, and beyond for more than a thousand years, and its kitchen is the sum of that traffic. The bean itself arrived from the opposite direction. Phaseolus vulgaris is American, carried across the Atlantic by the Portuguese, and it reached Mombasa and Mozambique Island in the sixteenth century before travelling inland to the highlands where it found the altitude and rainfall it wanted and became a staple on a scale it never achieved on the coast. It is eaten with rice, with chapati, or with ugali, and it is one of the dishes that appears on a Swahili table during Ramadan. Tanzania cooks it identically, the coast having been a single cultural region long before it was divided into countries.

Ingredients

Ingredients

  • 400 g dried red kidney beans, soaked overnight
  • 400 ml thick coconut milk
  • 2 onions, finely chopped
  • 5 garlic cloves, crushed
  • 1 thumb of ginger, grated
  • 3 tomatoes, chopped
  • 1 tbsp tomato purée
  • 1 tsp ground cumin
  • 6 green cardamom pods, cracked
  • 0.5 tsp ground turmeric
  • 1 green chilli, slit
  • 3 tbsp oil
  • 2 tsp salt, or to taste

To finish

  • 1 lime, juiced
  • 1 small bunch coriander, chopped

Method

  1. Drain the beans, cover with fresh water, and boil hard for ten minutes, then simmer for fifty minutes to an hour until tender. Do not salt yet. Drain, keeping 200ml of the liquid.
  2. Heat the oil in a heavy pan and fry the onions until soft and golden, about ten minutes.
  3. Add the garlic, ginger, cardamom, cumin, and turmeric and fry for two minutes until fragrant.
  4. Stir in the tomato purée and cook for two minutes, then the chopped tomatoes, and cook down for eight minutes until thick.
  5. Add the cooked beans, the reserved liquid, the chilli, and the salt. Simmer for ten minutes.
  6. Pour in the coconut milk and bring it to the barest simmer. Do not let it boil hard: coconut milk splits, and once it has there is no bringing it back.
  7. Cook gently for fifteen to twenty minutes, stirring now and then, until the sauce thickens and turns a pale rust colour and the oil begins to show at the edges.
  8. Crush a few beans against the side of the pan with the back of a spoon; this thickens the sauce without flour.
  9. Finish with the lime juice, taste for salt, and scatter over the coriander. Serve with rice or chapati.

Notes

Coconut milk goes in at the end and never boils. Tinned full-fat is fine; light coconut milk gives a thin sauce that will not carry the dish. Crushing a spoonful of the beans is the traditional thickener and is better than reducing further, which risks splitting the coconut. The cardamom should be present but not dominant, so crack the pods rather than grinding them and leave them in.

The Gastrographer

The Gastrographer

Mapping Culinary History

To explore — select an ingredient below.

Journey Point Map Key

Ingredient originTrade or transit route
Became a culinary stapleColonial / trade control
© 2026 The Gastrographer. All original research, narratives, and illustrations. All rights reserved.