Preheat and prep the squash. Heat your oven to 400°F (200°C).
Cut the spaghetti squash in half lengthwise and scoop out the seeds.
Season and roast. Drizzle the cut sides with olive oil, then season with salt and pepper. Place cut-side down on a parchment-lined baking sheet and roast for 35–45 minutes, until the skin gives slightly when pressed and the strands pull away easily with a fork.
Cool and shred. Let the squash cool for 5–10 minutes. Use a fork to gently pull the strands into “spaghetti” and set aside.
Pat lightly with paper towels if very moist.
Start the Alfredo base. In a large skillet over medium heat, melt the butter. Add minced garlic and cook 30–60 seconds, until fragrant but not browned.
Add cream. Pour in the heavy cream and bring to a gentle simmer. Reduce heat to medium-low and let it bubble softly for 2–3 minutes to thicken slightly.
Enrich the sauce. Stir in Parmesan, a handful at a time, whisking until smooth.
Add cream cheese if using for extra body. Season with salt, pepper, nutmeg, and red pepper flakes if desired.
Taste and adjust. If the sauce seems too thick, thin with a splash of cream or a bit of water. If it’s too thin, simmer another minute.
A touch of lemon zest or a small squeeze of lemon can brighten the flavor.
Combine with squash. Add the spaghetti squash strands to the skillet and toss gently to coat. Warm through for 1–2 minutes so the squash absorbs the sauce.
Add protein (optional). Fold in cooked chicken, shrimp, or crispy bacon if you want more protein and richness.
Finish and serve. Top with extra Parmesan and chopped parsley. Serve hot, with fresh cracked pepper on top.