Preheat and prep. Heat the oven to 400°F (205°C). If grilling, preheat to medium-high.
Cut four large sheets of heavy-duty foil and lightly oil the centers to prevent sticking.
Trim the asparagus. Snap or cut off the woody ends so each spear is tender. Pat dry to reduce excess moisture.
Mix the garlic-herb butter. In a small bowl, combine melted butter, minced garlic, lemon juice, lemon zest, parsley, dill, thyme, and red pepper flakes. Season with a good pinch of salt and pepper.
Assemble the packets. Divide the asparagus among the foil sheets, placing it in the center.
Drizzle or brush with a little of the garlic-herb butter and season lightly with salt and pepper.
Add the salmon. Place one salmon fillet on top of each asparagus pile. Spoon the remaining garlic-herb butter evenly over the fillets. Add a thin lemon slice on top if you like.
Seal tightly. Bring the long sides of the foil up over the salmon and fold them together to seal, leaving a little space inside for steam.
Fold up the ends securely.
Bake or grill. Oven: Bake 12–15 minutes for 1-inch-thick fillets. Thicker fillets may need 2–4 minutes more.
Grill: Cook over medium-high heat for 10–12 minutes with the lid closed.
Check doneness. The salmon should flake easily and be just opaque in the center. Target an internal temperature of 125–130°F (52–54°C) for moist, medium doneness.
Optional broil. For light color on top, carefully open each packet and broil 1–2 minutes.
Watch closely to avoid overcooking.
Finish and serve. Sprinkle a touch of Parmesan, more fresh herbs, and a squeeze of lemon. Serve directly in the packets or slide onto plates to catch every drop of the buttery sauce.