Roast the spaghetti squash: Preheat the oven to 400°F (200°C). Carefully cut the squash in half lengthwise and scoop out the seeds.
Rub the cut sides with olive oil, season with salt and pepper, and place cut side down on a lined baking sheet. Roast 35–45 minutes, until the skin gives slightly when pressed. Let cool enough to handle, then scrape into strands with a fork.
Make the meatball mixture: In a large bowl, combine ground chicken, breadcrumbs, Parmesan, egg, minced onion, garlic, parsley, Italian seasoning, salt, and pepper.
Mix gently with a fork or your hands until just combined. Avoid over-mixing so the meatballs stay tender.
Form the meatballs: Wet your hands and roll into 1–1.5 inch balls. You should get 18–22 meatballs depending on size.
Sear the meatballs: Heat 1–2 tablespoons olive oil in a large skillet over medium heat.
Add meatballs in a single layer (work in batches if needed). Sear 2–3 minutes per side until browned. They don’t need to be cooked through yet.
Transfer to a plate.
Build the sauce: In the same skillet, add 1 tablespoon olive oil if the pan looks dry. Sauté onion over medium heat for 2–3 minutes until softened. Add garlic and cook 30 seconds until fragrant.
Pour in marinara or crushed tomatoes. Stir in dried basil or Italian seasoning, red pepper flakes if using, and a pinch of salt and pepper.
Simmer with the meatballs: Nestle the seared meatballs into the sauce. Cover partially and simmer gently for 10–12 minutes, turning once, until the meatballs reach an internal temperature of 165°F (74°C).
Fluff the squash: While the meatballs finish, taste the squash strands and season with a little more salt and pepper if needed.
For extra richness, toss with a teaspoon of olive oil or a small knob of butter.
Serve: Divide spaghetti squash among bowls. Spoon meatballs and sauce over the top. Finish with chopped basil or parsley and a sprinkle of Parmesan if you like.