Halibut and Napa Cabbage Breakfast Bowl with Ginger
Halibut poached over wilted napa cabbage in a gingery coconut broth, finished with lime, scallion, and cilantro for a light savory bowl in the morning.
Why You'll Love This Recipe
There are mornings when the last thing you want is a plate of browned meat, and this is what I make on those. It is a bowl of hot gingery broth with a piece of white fish sitting in it, closer to what a lot of the world actually eats at breakfast than anything with a skillet involved. It is gentle on a stomach that is still waking up, it takes about thirty five minutes, and it leaves you genuinely warm rather than merely full. I make it most often in the cold months, and I make the broth the night before when I know the morning is going to be tight.
The broth is where the flavor is built, and it takes almost no work. Fresh ginger and sliced garlic go into hot coconut oil for a minute so their oils bloom, then coconut milk, broth, and coconut aminos go in behind them. That minute matters. Ginger dropped straight into liquid tastes sharp and one-dimensional, while ginger that has hit hot fat first tastes round and slightly sweet. Napa cabbage goes in stems first and leaves after, so the thick white ribs turn tender while the frilly green tops keep enough body to be worth chewing.
The halibut is laid on top and steamed under a lid rather than boiled in the liquid, which is what keeps it in large soft flakes instead of shreds. Eight minutes is usually all it takes, and the fish keeps cooking for a moment after the lid comes off, so pull it a shade early. Lime, cilantro, and the green tops of the scallions go on at the very end, none of which survive heat. That last handful is what takes the bowl from mild to bright, and it is the reason this eats light while still holding you until lunch.
Ingredients
- 4 skinless halibut fillets (about 1 1/3 lb total)
- 1/2 head napa cabbage (about 14 oz), sliced crosswise into 1-inch ribbons
- 3/4 cup full-fat canned coconut milk
- 1 cup low-sodium chicken broth
- 2 tbsp finely grated fresh ginger
- 3 cloves garlic, thinly sliced
- 4 scallions, sliced, white and green parts kept separate
- 2 tbsp coconut aminos
- 2 tbsp fresh lime juice
- 1/4 cup chopped fresh cilantro
- 1 tbsp coconut oil
- 1/2 tsp fine sea salt
Instructions
- Prep the aromatics and cabbage: Grate the ginger on a microplane, slice the garlic thinly, and slice the scallions, keeping the white parts and the green tops in separate piles. Slice the napa cabbage crosswise into 1-inch ribbons, keeping the thick white stem pieces apart from the leafy tops, since the ribs need a head start in the broth that the leaves would not survive.
- Bloom the ginger and garlic: Melt the coconut oil in a wide deep skillet or shallow pot over medium heat. Add the ginger, garlic, and scallion whites and cook for 1 minute, stirring, until they smell fragrant and the garlic just turns pale gold at the edges. Do not let it brown, because scorched garlic turns the whole pot bitter and there is no taking it back out.
- Build the broth: Pour in the coconut milk, broth, and coconut aminos and add the salt. Bring it to a bare simmer, then cook for 5 minutes so the flavors come together. It should taste gently sweet and clearly of ginger at this point.
- Wilt the cabbage: Add the white stem pieces of the cabbage and simmer for 3 minutes until they turn translucent at the edges, which is the point where the ribs lose their squeak, then stir in the leafy tops and cook 1 minute more, just until they collapse into the broth and stay bright green.
- Poach the halibut: Pat the fillets dry and lay them on top of the cabbage rather than down in the liquid, so that they steam gently instead of boiling and falling apart. Cover the pan and cook over medium-low for 8 to 10 minutes, until the fish turns opaque all the way through and flakes into thick pieces when you press the center with a fork, about 130°F (54°C). Take it to the FDA figure of 145°F (63°C) if you prefer your fish cooked through, and expect a tighter flake in the broth.
- Finish and serve: Take the pan off the heat and add the lime juice, cilantro, and scallion greens, since all three go dull the moment they meet a simmer. Ladle the cabbage and broth into four bowls, set a piece of halibut in each, and spoon a little extra broth over the top.
Variations
- Greens instead of cabbage: Swap the napa for bok choy, sliced the same way, or stir in a few handfuls of spinach at the very end.
- Shrimp bowl: Use cooked shrimp and fold them in off the heat so they warm through without tightening, which turns this into a ten minute breakfast.
- More broth, more soup: Double the broth and coconut milk for a soupier bowl that eats well from a mug on a cold morning.
- Mushroom and ginger: Simmer a cup of sliced mushrooms in the broth before the cabbage goes in for a deeper, earthier bowl.
- Herb swap: Trade the cilantro for chopped fresh mint or Thai basil for a sweeter, more floral finish.
Storage & Leftovers
Keep leftovers in a sealed container in the fridge for up to two days. Store the fish in the broth rather than out of it, since the liquid keeps the flakes from drying out and the halibut soaks up more of the ginger overnight.
Reheat gently in a covered pan over low heat until the broth is steaming, about four minutes. A hard boil tightens the fish and splits the coconut milk into grains, and the microwave does both at once, so keep the heat low and be patient with it.
The broth freezes well on its own for up to two months, though the cabbage and the fish do not. If you want a head start, freeze the ginger coconut broth in portions and cook fresh cabbage and halibut into it the morning you want the bowl.
Notes & Tips
- Grate the ginger, do not chop it: A microplane breaks the fibers and releases far more flavor into the broth. Chopped ginger leaves you biting into stringy pieces.
- Keep the broth at a whisper: Full-fat coconut milk splits at a rolling boil. A lazy bubble every second or two is the pace you want the whole way through.
- Separate stems from leaves: Napa stems need about three minutes and the leaves need one. Cooked together you get either raw ribs or gray tops.
- Pat the halibut dry: Wet fish sheds water into the broth and thins the flavor you just spent ten minutes building. A paper towel and a few seconds is enough.
- Pull the fish early: Halibut goes from silky to cottony in about a minute. Take it off when the center is barely opaque, since it carries on cooking in the hot broth.
- Lime last, off the heat: Citrus loses its edge and turns slightly bitter when it simmers. Added after the pan is off the burner it stays sharp and lifts everything.
Nutrition & Mindful Eating
- Fish, cabbage, and a coconut broth make a bowl that eats light and still holds you. The halibut brings the protein, the cabbage brings bulk and fiber, and the fat in the coconut milk is what keeps a brothy breakfast from disappearing on you by ten.
- Halibut is firm and close-grained, and it stays in thick flakes rather than falling apart. Along with a good deal of protein it carries selenium and magnesium, both of which are part of how your muscles recover and work.
- Napa cabbage cooks down sweeter and silkier than it tastes raw, and it belongs to the same family as broccoli and kale, which means it brings vitamin C and the glucosinolate compounds researchers keep studying.
- Fresh ginger gives the broth its warmth and its slight bite, and it has been studied for its settling effect on the stomach, which is one reason a bowl like this sits well first thing in the morning.
- Lime, cilantro, and scallion greens all go in after the heat is off, and that timing is what keeps them tasting sharp and green so the finished bowl needs a lighter hand on the salt.
- As you eat, take the broth first and notice how the ginger warms your chest before the fish arrives, and let the bowl set an unhurried pace for the rest of the morning.
Frequently Asked Questions
Can I use a different fish?
Yes. Cod, haddock, and pollock all poach the same way at the same weight, and they cost less than halibut. Salmon works too and gives you a much richer bowl, though it will tint the broth pink. Go by the look of the fish rather than the clock.
My coconut milk split into grains. What happened?
The broth boiled. Coconut milk separates when it is pushed past a gentle simmer, especially the full-fat kind. Keep it at the stage where a bubble breaks the surface every second or two, and if it does split, whisk hard off the heat and most of it comes back together.
Can I make this ahead?
Make the broth up to three days ahead and keep it in the fridge. In the morning bring it back to a simmer, wilt in fresh cabbage, and poach the halibut, which puts the bowl on the table in about twelve minutes. Cooking the fish ahead is the one step I would not do.
Does this fit an AIP elimination phase?
It does. Coconut aminos stand in for the soy-based bottles, and there are no grains, dairy, eggs, nuts, seeds, or nightshades anywhere in the pot. The heat comes from fresh ginger rather than pepper, which is what makes a warming bowl possible during elimination.

