
Niri
“Senegal River Toucouleur fish curry — Nile perch or capitaine simmered in a peanut-and-tomato sauce with cassava and sweet potato, the Saint-Louis-and-river-valley signature.”
Where it comes from
Niri (also spelled 'nyiri') is the Toucouleur and Halpulaar people's signature freshwater-fish dish, made along the Senegal River from Saint-Louis to Bakel. The dish reflects the pastoral and riverside lifestyle of the Toucouleur — using the Nile perch ('capitaine' in French) caught in the river, peanuts grown in the Senegal Valley, and the cassava-and-sweet-potato that thrives in the alluvial soil. Unlike Wolof dishes that center on rice, niri is served with millet couscous ('thiéré') — the traditional Sahel grain. The dish is the family Friday meal in Toucouleur households.
On the plate
Spoon niri onto the millet couscous: the peanut sauce is rich-orange, fragrant from cumin and tomato. Fish chunks are tender, having absorbed the peanut depth; cassava and sweet potato sit chunky in the sauce, contributing starch-sweetness. The peanut sauce coats every grain of couscous. Toucouleur Friday-meal warmth in a single bowl.
How it works
Peanut paste (vs whole peanuts) provides immediate emulsification with the tomato-water base — the fat in the paste binds with the sauce's water for a creamy body without separation. Cassava is high in starch (~30% by weight) that helps thicken the sauce as it cooks down. The pre-sear on the fish creates the Maillard exterior that holds the fish together during the final simmer — without it, the fish disintegrates.
Variations
Saint-Louis classic version uses Nile perch (capitaine); upstream Bakel-area version uses Senegal-River catfish; coastal Toucouleur restaurants in Dakar substitute snapper for capitaine; modern Casamance-Toucouleur fusion adds palm oil for color.
On the Palate
Ingredients
Serves 6How it's made
5 steps · Show ↓30 min active · 45 min waiting
How it's made
5 steps · Show ↓- 122 min
Season 800g Nile perch (or substitute with sea bass or snapper) fillets, cut into 5cm chunks. Rub with 1 tsp salt, 1 tsp pepper, juice of 1 lime, 4 minced garlic cloves, 1 tsp ground cumin. Rest 20 min.
- 27 min
Sear fish briefly: heat 3 tbsp peanut oil in a heavy pot; sear fish 3 min per side just to firm and lightly brown. Remove.
- 310 min
In same pot, sauté 1 chopped onion + 4 garlic cloves + 1 thumb grated ginger + 1 scotch bonnet (chopped) for 6 min. Add 3 tbsp tomato paste + 2 chopped tomatoes + 1 tbsp ground bouillon + 1 tsp salt; cook 4 min until oil reddens.
- 45 min
Whisk 100g smooth peanut butter (or freshly-ground roasted peanut paste) with 300ml water until smooth. Pour into the pot. Add 500ml more water; stir.
- 533 min
Add 400g chunked cassava + 2 sweet potatoes (chunked); simmer covered 25 min until tender. Return fish; gently simmer 8 min until fish flakes. Adjust salt; top with chopped parsley. Serve over millet couscous (thiéré) or short-grain rice.






