Set the Instant Pot to Sauté mode (high). Add butter and olive oil. Once butter melts, add thinly sliced onions and a pinch of kosher salt.
Caramelize the onions using the Sauté function for 30–40 minutes, stirring every few minutes, until deep golden brown. Don’t rush this step — it builds all the flavor.
Add minced garlic and sauté for 1 minute. Pour in the red wine and deglaze, scraping up all the fond (browned bits) from the bottom of the pot. Cook until wine has mostly evaporated, about 3–4 minutes.
Add beef stock, fresh thyme sprigs, and bay leaves. Stir to combine.
Cancel Sauté. Lock the lid and set the valve to Sealing. Pressure Cook on High for 10 minutes.
Allow a natural pressure release for 5 minutes, then quick release remaining pressure. Remove lid, discard thyme sprigs and bay leaves. Season with salt and pepper to taste.
Slice baguette into ½-inch rounds, brush with olive oil, and toast at 400°F for 6–8 minutes until golden and crispy.
Ladle soup into oven-safe bowls. Top each bowl with toasted baguette slices and a generous pile of shredded Gruyere cheese.
Broil on high for 2–3 minutes until the cheese is bubbly and golden. Garnish with fresh chives and serve immediately.