Preheat the oven to 375°F (190°C). Lightly grease an 8-inch square baking dish or a similar shallow ovenproof dish.
Place the sliced peaches in a large bowl. Add the granulated sugar, cornstarch, lemon juice, vanilla, 1/4 tsp cinnamon and a pinch of salt. Toss gently to coat and let sit for 10 minutes to macerate — this pulls out juices and helps the filling thicken while baking.
While the peaches rest, make the topping: combine oats, flour, brown sugar, 1/2 tsp cinnamon and 1/4 tsp salt in a medium bowl. Cut the cold diced butter into the dry mix with a pastry cutter or rub between your fingertips until the mixture forms coarse crumbs. (Alternatively pulse 6–8 times in a food processor for a quick method.)
Pour the peach mixture (including any released juices) into the prepared baking dish and spread into an even layer. Scatter the oat-flour crumb evenly across the top, gently pressing so it adheres in places but still remains crumbly.
Bake for 38–42 minutes, until the filling is bubbling at the edges and the topping is deep golden brown. If you want an extra-toasty top, place under the broiler for 1–2 minutes — watch closely so it doesn’t burn.
Remove from the oven and let the crisp rest for about 15 minutes to thicken slightly before scooping. Serve warm with vanilla ice cream or whipped cream, if desired.
Leftovers: cover and refrigerate for up to 3 days. Reheat individual portions in the oven or microwave; a quick 5–7 minute bake at 350°F will refresh the topping.