Prep the potatoes: Rinse shredded potatoes in cold water, then wrap in a kitchen towel and squeeze out excess moisture.
Cook hash browns: In a 10" nonstick skillet over medium-high heat, melt 1 tbsp butter. Sauté onion 1–2 minutes, add potatoes in an even layer, season, and cook 4–5 minutes per side until crisp and golden. Transfer to a plate.
Whisk eggs: In a bowl, beat together eggs, milk, salt, and pepper until frothy.
Cook omelet base: Wipe skillet clean, reduce heat to medium-low, melt remaining butter, and pour in egg mixture. As edges set, gently pull toward center to let uncooked egg flow underneath.
Add fillings: When eggs are mostly set, layer hash browns on one half, sprinkle cheese and any extra fillings.
Fold & finish: Fold the empty half over, cook 30 seconds more for cheese to melt, then slide onto a plate.