Preheat the oven to 350°F and line a 12 cup muffin tin with paper liners.
Whisk the flour, cocoa powder, baking soda, and salt together in a bowl.
Whisk the oil and sugar together in a separate bowl, then whisk in the egg, buttermilk, vanilla, vinegar, and green food coloring until the color is even throughout.
Pour the wet mixture into the dry ingredients and whisk just until smooth, the batter should be a deep, even green.
Divide the batter among the liners, filling each about two thirds full.
Bake for 18 to 20 minutes, until a toothpick inserted in the center comes out clean and the tops spring back when touched lightly.
Cool the cupcakes in the pan for 5 minutes, then move them to a wire rack to cool completely, at least 30 minutes, before frosting.
Beat the cream cheese and butter together until smooth, then beat in the powdered sugar a cup at a time until the frosting is thick enough to hold a peak.
Pipe or spread the frosting onto the cooled cupcakes.
Good to Know
Bake the cupcakes a day ahead and keep them covered at room temperature unfrosted; frost them the morning of so the cream cheese topping stays firm through the party.