Heat the oven: Preheat to 400°F (205°C).
Line a baking sheet with parchment for easy cleanup.
Prep the squash: Carefully halve the spaghetti squash lengthwise. Scoop out seeds. Rub the cut sides with olive oil and season with salt and pepper.
Place cut-side down on the sheet.
Roast: Bake 35–45 minutes, depending on size, until the skin yields to a gentle press and strands pull apart easily. You want tender, not mushy.
Steam the broccoli: While the squash roasts, steam or microwave broccoli just until crisp-tender, about 3–4 minutes. Drain well.
Pat dry to prevent a watery sauce.
Make the cheese sauce: In a large skillet over medium heat, melt butter. Add garlic and cook 30–60 seconds until fragrant. Stir in heavy cream, Dijon, onion powder, nutmeg, and a pinch of salt and pepper.
Simmer 2–3 minutes to slightly thicken.
Add the cheeses: Lower the heat. Gradually whisk in cheddar, a handful at a time, until fully melted and smooth. Stir in Parmesan.
Taste and adjust salt, pepper, and red pepper flakes as you like.
Shred the squash: When the squash is done, flip it cut-side up and cool a few minutes. Use a fork to pull the strands into “spaghetti.” Transfer strands to a large bowl and season lightly if needed.
Combine: Fold the squash strands and broccoli into the cheese sauce. Toss gently until everything is coated and warmed through.
If the mixture seems thick, add a splash of cream. If thin, simmer a minute or two.
Finish and serve: Top with extra Parmesan or a sprinkle of cheddar if you like. Garnish with chopped chives or parsley.
Serve hot.