This keto ham frittata has a soft, custardy center from cream cheese melted right into the eggs — 1g net carbs and 14.1g protein per serving. One pan, whatever's in my fridge, and my kids keep coming back.
Frittatas are my go-to when I need one pan, minimal cleanup, and a meal that feeds the whole table. I started making this ham frittata years ago as a way to clean out the fridge (leftover deli ham, a block of cheddar, a couple of green onions that were about to turn), and it became the recipe my kids actually ask for on weekends. The secret is the cream cheese. It doesn't stay in chunks. It melts through the egg mixture and gives you a soft, custardy set in the middle while the edges crisp up around the ham and cheese. I've tried it without the cream cheese, and the difference is obvious.
I usually make this alongside my keto sausage breakfast casserole when I'm feeding a crowd, or I'll pair it with a breakfast bowl for something lighter. On weekends when I want to go all out, I'll add a French toast casserole to the table too. Either way, this keto frittata holds up as the centerpiece.
Budget friendly breakfast
This is one of the cheapest meals I make. All you need is eggs, cream cheese, cheddar, deli ham, and green onions. Eggs are one of the most affordable low carb proteins out there, and deli ham stretches further than you'd think when you cube it small. I spend maybe $6 on the whole skillet, and it feeds four of us with leftovers. If you want to portion it out for the week, try my mini frittatas in a muffin tin.
What's the difference between a frittata and a quiche?
Frittata: A crustless egg dish cooked mostly on the stovetop and finished under the broiler. It's naturally low carb since it's just eggs, cheese, and whatever fillings you have on hand. I prefer frittatas on weekday mornings because they come together faster and there's no crust to deal with.
Quiche: A quiche has a pastry crust and gets baked entirely in the oven. The custard filling is similar, but the crust adds carbs unless you swap in a grain-free version. I make both, but when I'm short on time, a frittata wins every time.
Why cream cheese makes the difference
I've gotten more comments about the cream cheese in this recipe than almost anything else on my site. One reader's daughter ate the whole thing and refused to believe it was eggs. Another first-timer said she was nervous about mixing cream cheese into raw eggs, but it melted right through and made everything creamy without any lumps. I use 1 oz of softened cream cheese (about 2 tablespoons), and I whisk it into the eggs until it's completely smooth before adding the shredded cheddar. That extra step takes 30 seconds and it's what gives this frittata its texture.
Mix-ins and swaps
If ham and green onions aren’t what you’re in the mood for, I’ve tested this with plenty of other combinations. I landed on ham and cheddar originally because I was keeping costs down, but it works with almost anything.
Proteins: turkey, bacon, sausage (brown the sausage first and drain the fat).
Cheeses: swiss, pepper jack, fontina, gruyere, mozzarella. One reader swapped cheddar for gruyere and said the nutty melt was worth the upgrade.
Dairy mix-ins: sour cream, heavy cream, or yogurt whisked into the eggs alongside the cream cheese.
Vegetables: red pepper, tomato, broccoli, zucchini, garlic, spinach. Cook them first so they don’t release water into the eggs. Ham and broccoli is a combination I come back to often.
Tips I've learned from making this dozens of times
Use full fat dairy. I use full fat cream cheese and freshly shredded cheddar. The fat is what creates that creamy, custardy texture. Reduced-fat versions dry out.
Pre-cook your fillings. The eggs only take a few minutes to set, so if your ham and veggies aren’t already cooked, they’ll be raw in the center. I saute everything until it starts to brown before pouring in the eggs.
Don’t overbeat the eggs. Whisk just until the yolks and whites are combined and the cream cheese is smooth. Overbeating introduces too much air and makes the texture rubbery instead of custardy.
Watch the broiler. I stay right by the oven during the last 3-4 minutes. It goes from perfectly puffed to burnt fast, and overcooked eggs smell terrible.
Storage, freezing, and reheating
In the refrigerator
I let leftover frittata cool completely on the counter, then store it in an airtight container in the fridge. It keeps well for up to 4 days. I slice it into wedges before storing so I can grab one at a time.
Freezing
This frittata freezes better than you’d expect. I wrap individual wedges tightly in plastic wrap, then put them in a freezer bag with the air pressed out. They hold up for 2-3 months. I thaw overnight in the fridge and reheat from there.
Reheating
The microwave works in a pinch (30-45 seconds), but I get better results in the oven. Cover loosely with foil and reheat at 300 degrees F for about 10 minutes. The foil traps moisture so the eggs don’t turn rubbery. I’ve reheated this both ways dozens of times, and the oven method keeps the texture closer to fresh.
Make ahead
You can prep the egg mixture with all the fillings the night before. Mix everything together, store it in an airtight container in the fridge, and pour it into a hot skillet the next morning. I do this when I know Saturday morning is going to be chaotic.
In a large bowl, mix together eggs, cream cheese, salt and pepper using a whisk or fork.
For this step
12 eggs
1 oz cream cheese, softened
1/2 teaspoon salt
1/4 teaspoon pepper
2
Add the cheese
Add cheddar cheese, mix and set aside.
For this step
3 oz shredded cheddar cheese
3
Heat the skillet
Heat a medium skillet to medium heat and add avocado oil.
For this step
2 tablespoons avocado oil
4
Saute
Add ham and green onions and saute for 2-3 minutes or until ham starts to brown.
For this step
4 oz ham, cubed or sliced
2 green onions, sliced
5
Add egg mixture
Pour the egg mixture into skillet and cook. Use a spatula to stir and scrape the bottom of the skillet until large curds begin to form and the spatula starts to leave wakes but the egg remains wet (2 minutes). Shake the skillet to evenly distribute the eggs. Cook without stirring for 30 seconds to set on the bottom.
6
Finish in the oven
Place skillet in the oven and broil until frittata has puffed up and starts to brown on top, about 3-4 minutes. Remove from oven and let stand for 5 minutes to finish cooking. Loosen frittata from the skillet and cut into wedges to serve.
Nutrition
Per serving: 1 slice
Calories
157
Fat
16.3g
Protein
14.1g
Total carbs
1g
Net carbs
1g
Nutrition is an estimate calculated from the ingredients listed. Brands vary, so check labels if you track closely.
Frequently Asked Questions
Is deli ham keto?
I use regular deli-sliced ham and it works well as long as you check the label for added sugar. Some honey-glazed or brown sugar varieties sneak in 2-3g of sugar per serving, which adds up. I look for options that are sugar-free or under 1g per serving. You can also cube up a leftover ham steak, which is what I do when I have one sitting in the fridge.
How do I tell when my frittata is done?
I check two things: the center shouldn't jiggle when I give the pan a shake, and a knife inserted in the middle should come out mostly clean. The edges will be puffed up and golden. I always pull it out when the center still looks slightly soft because it firms up as it rests for those 5 minutes on the counter. I've overcooked more frittatas than I'd like to admit by waiting too long.
Can you freeze ham frittata?
I freeze this all the time. I wrap individual wedges in plastic wrap, stack them in a freezer bag, and they keep for 2-3 months. I thaw overnight in the fridge and reheat in the oven at 300 degrees F covered in foil. The texture holds up better than I expected, and the cream cheese seems to help it stay creamy even after freezing.
How do you reheat frittata without it getting rubbery?
I cover it loosely with foil and reheat in the oven at 300 degrees F for about 10 minutes. The foil traps enough steam to keep the eggs from drying out. Microwaving works if I'm in a rush (30-45 seconds, no longer), but the oven gives me better texture every time. I've tried reheating uncovered and it goes rubbery fast.
Can I make this in a muffin tin for meal prep?
I make these as mini frittatas in a muffin tin when I want grab-and-go portions. Grease the tin well (I use avocado oil spray), divide the egg mixture evenly, and bake at 350 degrees F for 18-20 minutes. They pop right out once they cool for a minute. I make a batch on Sunday and reheat one each morning. They're just as convenient as my breakfast quesadillas for busy mornings.
What size skillet do I need?
I use a 10-inch oven-safe skillet for 12 eggs. If you have a cast iron, use it. One of my readers tested cast iron versus nonstick and confirmed the edges get a golden crisp that doesn't happen in nonstick. I use my cast iron every time now. If you only have an 8-inch skillet, cut the recipe in half. The handle needs to be oven-safe since the skillet goes under the broiler.
Can I use leftover holiday ham?
Leftover ham works perfectly here. I've used Easter ham, Christmas ham, you name it. Just cube it into small pieces (about half an inch) and saute it with the green onions to warm it through. Thicker cuts from a whole ham give you better texture than thin deli slices because they hold their shape in the eggs.
What does cream cheese do in a frittata?
I whisk 1 oz of softened cream cheese into the eggs before adding anything else. It melts completely into the mixture and creates a soft, custardy set in the center that you don't get with eggs alone. I've made this without cream cheese and it's a completely different texture. One reader told me his daughter ate the whole thing and said 'those aren't eggs.' That's what the cream cheese does.
I’ll be honest, I was down to plain scrambled eggs every morning and about ready to give up on breakfast. This one with the ham in it feels like real food again
Hi Tyler, you can. Cook the eggs on the stove like the steps say, then instead of broiling, cover the pan and let it finish on low heat for a few extra minutes until the center sets.
I made this because 1g net carb on a full serving didn’t add up and I needed to see for myself. Sunday, 12 eggs, one pan. The technique surprised me more than the carbs did. It’s not pour-and-wait. The spatula work while it cooks is what gets the center right. Custardy, not flat and rubbery. 14 grams of protein per serving and breakfast is handled for the week.
First frittata ever and it actually worked, really happy with the texture. Only real note is 4 oz of ham kind of vanishes into 12 eggs, you can taste it but you’re not gonna see it. Bumping to 6 oz next time.
Six oz is what I do when I have extra ham around. 4 is almost a seasoning at that egg volume. First frittata nailing the texture is the hard part anyway.
Cast iron changed how this cooks for me. At medium on a non-stick, the bottom firms up before the center can catch up, but cast iron holds heat well enough that I can drop to medium-low once the eggs go in and the cream cheese stays soft all the way through.nnI also started holding back half the green onions to scatter raw on top instead of cooking them all with the ham. Fresh crunch, cuts the richness, looks better on the plate.nnOne more tweak: small pinch of smoked paprika in the egg mix before pouring. Gives the top a warm color and makes the ham taste smokier than you’d expect from that amount.
The raw green onion scatter at the end makes total sense. I’ve been folding them all in but you lose that fresh bite. Smoked paprika in the egg mix is going in my notes.
Swapped the ham for leftover rotisserie chicken and threw in some baby spinach. Cream cheese is what keeps it from going watery. Made it Sunday and we’ve been eating it cold all week.
My daughter picked out all the ham first, then went back for the egg part anyway. The cream cheese does something unexpected to the texture. Would add more green onions next time, but we’ll definitely be making this again.
Easter brunch next weekend, 16 people. If I double everything, better to run two separate skillets or transfer the whole thing to a bigger baking dish? Want those eggs to stay custardy from the cream cheese, not rubbery.
Two skillets. A bigger dish cooks more like a casserole and the center takes forever to set without the stovetop start. I’d run them side by side, pull when the center still has a slight jiggle.
The cream cheese has to be fully softened or you get clumps instead of that custardy center. Learned that the hard way. Pull it out 30 minutes ahead, or microwave at 50% for about 20 seconds.
Was genuinely skeptical about the cream cheese in eggs (I’ve tried some weird textures in keto cooking and didn’t want to go there again). Made it anyway because I had ham to use up. The center came out so soft and almost silky, nothing like what I expected from eggs in a pan. Still thinking about that texture three days later. Four stars because I slightly overcooked mine, but that part is on me.
My teenager, who calls everything keto ‘weird,’ didn’t say a word. Just kept eating. That custardy cream cheese center got him. Two years I’ve been trying to get that kid to eat eggs.
Silent eating from a keto skeptic is the best review. The cream cheese melts in completely (doesn’t taste like cream cheese, just makes the eggs softer). Two years of egg resistance, done.
Made this Sunday because we had ham leftover from the week and I wasn’t sure what to do with it. Never cooked with cream cheese in eggs before, almost didn’t add it because I didn’t know what it would do. My wife said just follow the recipe. The center came out softer than I expected, different texture than regular eggs, and my 9-year-old sat down and ate the whole thing quietly which is not what he usually does at breakfast. He looked up at the end and asked what it was called. Didn’t say it was good or anything, just wanted to know the name. We have ham again this week so we’re making it again.
‘What’s it called’ without saying it was good is a better review than you’re giving it credit for. That’s exactly how my kids approve something. And your wife was right, just add the cream cheese.
Fifth time making this and the cream cheese thing still gets me every time. It just vanishes into the eggs and somehow the whole center stays this soft, almost custardy texture instead of the spongy result you get from regular scrambled eggs in a pan. I keep diced ham in the freezer now just for this.
My son, who will eat exactly three foods, asked if we could have this instead of our usual Saturday pancakes. He noticed the cream cheese before I could say anything and I thought he’d refuse it. He did not.
Saturday pancakes is a high bar to clear. The cream cheese melts completely into the eggs once it’s in there, so if he gets suspicious again, ‘it’s just eggs’ is technically accurate.
This is a wonderful and simple recipe. I was looking for something to change things up a bit and make it easier in the mornings and this fits the bill. I look forward to trying some of your other great recipes for breakfast. Thank you for sharing.