Place a large frying pan over medium heat and add olive oil. Once oil is hot, add onion, peppers, garlic and cook, stirring often, until onions are translucent and peppers have softened. Roughly 5 minutes.
Add pureed tomatoes (or harissa sauce), paprika, cumin, salt, black pepper, and cayenne pepper, stir, and reduce heat to a low. Allow sauce to simmer, stirring occasionally for ten minutes.
Ensure that your sauce is in an even layer across your pan and then crack eggs on top of the sauce mix, ensuring that each egg has its own place in the pan. Cover, and cook until eggs are set or yolks have reached your desired preference (about 5-7 minutes).
Spoon your finished Shakshuka into individual serving bowls, sprinkle with chopped cilantro and optional toppings. Enjoy!