A hearty, nourishing Malian millet soup that simmers pearl millet in a tomato-rich broth with sweet potato, okra, leafy greens, and a swirl of peanut butter for body. This everyday Sahel dish is filling, gently spiced, and traditionally enjoyed as a comforting lunch or dinner across Mali and neighboring regions.
Prep Time15 mins
Cook Time40 mins
Total Time55 mins
Servings4
Yieldabout 6 cups (4 servings)
Nutrition Facts
Per serving (estimated)
- 385 kcalCalories
- 14 gFat
- 2.5 gSaturated Fat
- 56 gCarbs
- 7 gFiber
- 7 gSugar
- 12 gProtein
- 520 mgSodium
- 680 mgPotassium
- 95 mgCalcium
- 3.8 mgIron
- 26 mgVitamin C
- 290 mcgVitamin A
Ingredients
For the millet base
- 1 cup pearl millet, rinsed and drained
- 3 cups water
- 1/2 teaspoon fine sea salt
For the soup broth
- 2 tablespoons peanut oil (or vegetable oil)
- 1 medium yellow onion, finely chopped
- 3 cloves garlic, minced
- 1 tablespoon fresh ginger, grated
- 2 medium ripe tomatoes, diced (or 1 cup canned crushed tomatoes)
- 1 small Scotch bonnet or habanero, pierced with a knife
- 1 tablespoon tomato paste
- 4 cups low-sodium chicken or vegetable stock
For the vegetables and finish
- 1 medium sweet potato (about 8 oz), peeled and diced into 1/2-inch cubes
- 12 fresh or frozen okra pods, trimmed and sliced into 1/2-inch rounds
- 3 cups chopped collard greens (or spinach), stems removed
- 3 tablespoons creamy peanut butter (unsweetened)
- 1 teaspoon fine sea salt, plus more to taste
- 1/2 teaspoon freshly ground black pepper
- 1 lime, cut into wedges for serving
Directions
- Rinse the millet under cool water, then combine with 3 cups water and 1/2 teaspoon salt in a medium saucepan. Bring to a boil over high heat, reduce to low, cover, and simmer gently for 20-25 minutes until the grains are tender and the water is mostly absorbed. Set aside off the heat.
- While the millet cooks, warm the peanut oil in a large heavy pot over medium heat. Add the chopped onion and cook for 4-5 minutes until translucent and just turning golden at the edges.
- Stir in the garlic, ginger, diced tomatoes, tomato paste, and the pierced Scotch bonnet. Cook for 5-6 minutes, stirring often, until the tomatoes break down and the mixture becomes thick and glossy.
- Pour in the stock, add the diced sweet potato, and bring to a steady simmer. Cook uncovered for 10 minutes, or until the sweet potato is just tender when pierced with a fork.
- Add the sliced okra and chopped collard greens. Simmer for another 5-7 minutes until the okra is tender and the greens have wilted into the broth.
- Whisk the peanut butter with about 1/2 cup of the hot broth in a small bowl until smooth, then stir the peanut mixture back into the pot. Add the cooked millet, 1 teaspoon salt, and black pepper; stir gently and simmer 3-4 minutes more to meld the flavors.
- Remove and discard the Scotch bonnet (or leave it in for extra heat). Taste and adjust seasoning. Serve hot in deep bowls with a wedge of lime on the side for squeezing over each portion.
Cook’s Notes
- Toast the dry millet in the saucepan for 2-3 minutes before adding water to deepen its nutty flavor.
- If pearl millet is unavailable, hulled foxtail millet or sorghum are excellent traditional substitutes used across the Sahel.
- Piercing the Scotch bonnet lets flavor seep into the broth while keeping the heat manageable; remove it earlier for a milder soup.
- For a richer version, simmer a small smoked chicken thigh or beef shank in the broth during step 3, then shred the meat back in at the end.
- Leftover soup thickens considerably once cooled; thin with a splash of stock or water when reheating and adjust salt before serving.










