Toss stale bread cubes with olive oil and spread in air fryer basket. Air fry at 350°F for 5-7 minutes until edges are golden and crisp. Transfer toasted bread to a mixing bowl.
4 cups bread, 1 tbsp olive oil
Heat a skillet over medium heat. Cook diced onion (or shallots) for 3-5 minutes until translucent and soft. Add minced garlic if using and cook for 30 seconds until fragrant. Remove from heat and let cool slightly.
1 medium onion, 2 cloves garlic
In a bowl, whisk eggs, milk, salt, and pepper until combined. Stir in shredded cheese, sautéed aromatics, fresh herbs, and cooked meat or bell pepper if using.
4 large egg, 2 cups milk, 0.5 tsp salt, 0.25 tsp black pepper, 1 cup cheese, 2 tbsp fresh herbs, 4 oz cooked bacon or sausage, 0.5 cup bell pepper
Pour custard mixture over toasted bread cubes. Fold gently with spatula to coat evenly. Let sit for 5 minutes to allow bread to absorb the custard. Transfer mixture to an air fryer-safe dish about 1.5-2 inches deep, leaving ½ inch from rim for expansion.
Place the dish in the air fryer basket and cook at 320°F for 20-25 minutes. Check doneness at 18 minutes by pressing the center — it should spring back gently with no liquid pooling. If still jiggly, cook 5-7 more minutes. Let pudding rest for 5 minutes before serving to allow custard to fully set.