Preheat and prep the squash: Heat oven to 400°F (200°C).
Carefully cut the spaghetti squash in half lengthwise, scoop out the seeds, and drizzle the cut sides with olive oil. Season with salt and pepper.
Roast the squash: Place cut-side down on a parchment-lined baking sheet. Roast for 35–45 minutes, until the skin gives slightly when pressed and the strands pull away easily with a fork.
Season and cook the chicken: While the squash roasts, pat the chicken dry and season both sides with salt, pepper, and a pinch of red pepper flakes.
Heat a large skillet over medium-high heat with a splash of olive oil. Sear chicken 4–6 minutes per side (thighs may take longer) until cooked through. Transfer to a plate to rest, then slice or cube.
Sauté the aromatics: In the same skillet, lower the heat to medium.
Add a small knob of butter (optional) and the minced garlic. Cook 30–60 seconds until fragrant, scraping up any browned bits from the pan.
Make the creamy base: Pour in the chicken broth and simmer 1–2 minutes to reduce slightly. Stir in heavy cream and bring to a gentle simmer.
Let it thicken for 2–3 minutes, stirring often.
Add pesto and cheese: Stir in the pesto and Parmesan until smooth and glossy. Taste and adjust salt and pepper. If it’s too thick, add a splash more broth; if too thin, simmer a bit longer.
Fold in greens and tomatoes: Add the spinach and cherry tomatoes (if using).
Cook just until the spinach wilts and the tomatoes soften slightly, about 1–2 minutes.
Add the chicken: Return sliced chicken to the pan and toss to coat in the creamy pesto sauce. Turn heat to low to keep warm.
Shred the squash: When the squash is ready, flip it over and use a fork to pull long strands from the sides toward the center. Season the strands with a pinch of salt and a squeeze of lemon for brightness.
Assemble and serve: Divide the squash strands among bowls (or serve right in the squash shells).
Spoon the creamy pesto chicken over the top. Finish with extra Parmesan, fresh basil, and a light squeeze of lemon. Serve hot.