Emincer oignon et échalotte. Ouvrir les piments dans leur longueur, et ôter les chapeaux des poivrons, afin de retirer les graines. Les nettoyer sous l'eau et les découper en fines rondelles ou en fines lanières.
Faire revenir oignon et échalotte dans 2 cuillères à soupe d'huile d'olive, à feu moyen. Quand ils commencent à dorer, ajouter le riz cru, remuer, laisser dorer 5 minutes sans rien ajouter, en remuant régulièrement.
Ajouter alors piments et poivrons ainsi que l'huile d'olive restante. Laisser revenir 5 bonnes minutes encore, en surveillant pour ne pas laisser brûler, et en remuant.
Verser alors l'eau, la purée de tomate (ou les tomates, sans leur peau et découpées en petits morceaux). Saler légèrement et parsemer de piment d'Espelette. C'est ici que, pour la version végétalienne, on ajoute les cubes de tofu, avec un peu plus d'eau et de tomate.
Pour les deux versions, on laisse ensuite cuire le tout à feu moyen et à petit bouillons, en surveillant et en remuant de temps à autre, jusqu'à ce que toute l'eau soit absorbée par le riz ,environ 20 minutes.
Pour terminer, et uniquement pour la version végétarienne : quand toute l'eau est absorbée, baisser le feu à mini, ajouter les œufs battus, remuer vivement pour bien mélanger et pour que les œufs cuisent. Cela ne prend que très peu de temps. Le riz en devient plus moelleux encore.