Prepare the onions. Slice onions thinly and as evenly as possible.
This helps them cook at the same rate and prevents burning.
Start caramelizing. Heat butter and olive oil in a large skillet over medium heat. Add onions and 1/2 teaspoon salt. Cook, stirring every few minutes, until they soften and turn translucent, about 10 minutes.
Go low and slow. Reduce heat to medium-low.
Continue cooking 25–35 minutes, stirring occasionally. If the pan looks dry or onions start to scorch, add a tablespoon of water and stir. You’re aiming for deep golden-brown, jammy onions.
Season the onions. Stir in black pepper, garlic powder, onion powder, and smoked paprika.
Cook 1–2 minutes until fragrant.
Deglaze and balance. Add Worcestershire (or tamari/coconut aminos) and apple cider vinegar. Scrape up browned bits. Taste and adjust salt.
If needed, add a tiny pinch of keto-friendly sweetener to round out any bitterness.
Cool the onions. Transfer onions to a plate and let them cool to at least room temperature. Warm onions will melt the dairy and loosen the dip too much.
Make the creamy base. In a mixing bowl, beat softened cream cheese until smooth. Add sour cream and mayonnaise.
Mix until completely creamy and lump-free.
Combine. Fold in the cooled onions, reserving a spoonful for garnish if you like. Mix well so the flavor distributes evenly.
Chill for best flavor. Cover and refrigerate at least 1 hour, ideally 4 hours or overnight. This resting time lets the onion flavor bloom.
Finish and serve. Stir the dip, taste, and adjust salt, pepper, or acidity.
Top with reserved onions and a sprinkle of fresh chives or green onions. Serve with cucumber slices, celery sticks, bell pepper strips, pork rinds, or keto seed crackers.