Atypical Fare

  • About
  • Contact
menu icon
go to homepage
  • About
  • Contact
search icon
Homepage link
  • About
  • Contact
×
Home » Textured Vegetable Protein (TVP)

Vegetarian Lettuce Wraps (TVP, Egg, Edamame)

Updated: Oct 13, 2026 · Published: Mar 31, 2026 by Joyce Shangkuan · This post may contain affiliate links · 1 Comment

↓ Jump to Recipe

This is not a P.F. Chang’s copycat recipe because, funny enough, I’ve never actually eaten at a P.F. Chang’s. These Vegetarian Lettuce Wraps are a protein-forward, vegetarian adaptation of Fu Pei Mei’s recipe, with 18 grams of protein per serving and plenty of savory flavor and crunch.

Fu Who? Fu Pei Mei was Taiwan's first celebrity TV chef, and in my opinion, she belongs in the same legendary conversation as the Chinese family behind P.F. Chang's (especially Philip Chiang's mother). This recipe is simple to make, whether you serve it as a satisfying appetizer or a filling meal!

Three Vegetarian Lettuce Wraps loaded with seasoned TVP-based filling, served on a pink plate.

Did you know the main protein for the original lettuce wrap recipe was minced pigeon? Lettuce wraps, or sometimes called san choy bow in Cantonese, are said to have come from the Machu people, who have an affinity for hunting and enjoy the taste of wild pigeons.

Cover of “Pei Mei’s Chinese Cook Book, Volume I” and a page showing the Minced Pigeon dish.

My version swaps in Textured Vegetable Protein (TVP), egg, and edamame for a satisfying vegetarian filling, and I use fresh jicama for crunch instead of canned water chestnuts. The result is a fresh, savory, protein-forward dish.

Recipe page of the Minced Pigeon dish from “Pei Mei’s Chinese Cook Book, Volume I” in Chinese, titled Sheng Tsai Ko Sung.
Recipe page of the Minced Pigeon dish from “Pei Mei’s Chinese Cook Book, Volume I” in English.
Jump to:
  • Recipe Testing Notes
  • What Is TVP and Why Use It?
  • Key Ingredients
  • How To Make These Vegetarian Lettuce Wraps

Recipe Testing Notes

  • Dark soy sauce in the sauce is a must! I tested this recipe multiple times, and across all the variables I tried, dark soy sauce in the sauce was the key differentiator.

    It gives the dish not only a dark, rich brown color, but also a deeper, more savory flavor that neither regular Japanese soy sauce nor reduced-sodium soy sauce comes close to. The Woks of Life has an in-depth article about dark soy sauce that echoes my sentiment.

    All that being said, however, I would not use dark soy sauce as part of the TVP marinade, as it would make the whole dish too dark.

  • Air-fried mung bean noodles were a flop! To save on calories, I tried air-frying mung bean noodles (what I had at home) to emulate the crispy, fried rice noodles.

    The first time, I tried air frying them without oil; the second time, I used 1 Tablespoon of oil. Both came out terrible, lol! If you told me they were plastic strips, I would have believed you. (Testing using actual rice noodles pending.)

    However, egg noodles work wonderfully (they remind me of the crispy Japanese ramen snack)! I did not include them for aesthetic reasons, but see the recipe notes for how to make them.

  • Omit the cornstarch! I tried both having and not having cornstarch (part of Pei Mei's recipe), and not having it did not seem to make a difference. So, I am leaving it out of this recipe.

What Is TVP and Why Use It?

Textured Vegetable Protein (TVP) is defatted soy flour. It's protein-packed, cost-effective, shelf-stable (I use Bob's Red Mill's TVP, and it has a 1.5-year shelf life from the manufacture date), has a meaty texture once rehydrated, and takes on flavoring really well. In an effort to increase the protein content per serving in my Vegan Mapo Tofu, I compared it against five other plant-based protein candidates, and TVP was the winning pick!

Key Ingredients

Find the complete list of ingredients with measurements on the recipe card below.

Jump to Recipe
A flat lay of labeled ingredients needed to make Vegetarian Lettuce Wraps.
  • The "Meat" - Textured Vegetable Protein (TVP) and nutritional yeast. Nutritional yeast is very un-Chinese, but trust me on this one! I learned how to use it when I was vegan, and have since kept it in my pantry because I love its savory, umami taste, which is useful in mimicking the "meat" taste.
  • The Marinade - Water, reduced-sodium soy sauce (you can use regular soy sauce), sugar, and Shaoxing wine. I would not skip using Shaoxing wine unless you are not able to consume alcohol.
  • Egg - I tried using only the yolk (per Pei Mei's recipe) as well as the whole egg, and I couldn't tell the difference, so whole egg it is! Omit it to make this recipe vegan.
  • Peas and Shelled Edamame - They add a nice contrast of dark and light green to the dish, as well as some protein.
  • The Aromatics - Onions and shiitake mushrooms.
  • Jicama - I love how crunchy water chestnuts are, but I prefer fresh whenever possible! If jicama is not readily available for you, use water chestnuts or bamboo shoots, as written in Pei Mei's recipe.
  • The Sauce - Water, dark soy sauce, sesame oil, and black pepper. Dark soy sauce is a must, as mentioned above in the Recipe Testing Notes section.
  • Salt - Personally, I find the recipe to be just fine as is (i.e., no salt), but my taste tester (aka my fiancé) prefers it to be a little more salty. So, to taste!
  • Lettuce - Use any lettuce you like, as long as it can hold the filling! I like using Little Gem Lettuce because they are more bite-sized.
  • Green Onions - Sprinkle onto your lettuce cups as garnish!

How To Make These Vegetarian Lettuce Wraps

Here is a quick visual rundown! Find the full instructions with ingredients below.

Jump to Recipe

Preparation

A bowl with yellow nutritional yeast and light brown TVP sits on a wooden surface.

Step 1: In a mixing bowl, add Textured Vegetable Protein (TVP) and nutritional yeast.

A bowl of dry TVP and nutritional yeast, mixed, on a wooden surface.

Step 2: Mix until combined.

A bowl of marinated TVP and beaten egg mixture on a wooden surface.

Step 3: Add the marinade liquid and mix well. Then, add the beaten egg mixture and mix until combined.

A bowl of marinated TVP and beaten egg, mixed, on a wooden surface.

Step 4: Let it sit for 10 minutes to rehydrate.

A four-image collage (top left to bottom right): diced onions, diced shiitake mushrooms, diced jicama, and a bowl of prepared sauce.

Step 5: While you wait for the TVP to rehydrate, prepare the other ingredients: dice onions, shiitake mushrooms, and jicama; have the shelled edamame and peas ready; and make the sauce.

Cooking

Step 1: First, stir fry the onions on medium-high heat.

Stir fry until they are soft and translucent, about 3-4 minutes.

Step 2: Then, add shiitake mushrooms.

Stir fry until they are soft, about 1-2 minutes.

Step 3: Turn the heat to high, add the marinated TVP.

Stir fry until the moisture has mostly evaporated, about 2-3 minutes.

Step 4: Add shelled edamame, peas, and jicama.

Mix everything with your spatula.

Step 5: Finally, add the sauce.

Stir fry until everything is evenly browned, before turning off the heat, about 1 minute.

Print Pin Save Saved! Email
Three Vegetarian Lettuce Wraps loaded with seasoned TVP-based filling, served on a pink plate.
5 from 1 vote

Protein-Forward Vegetarian Lettuce Wraps (TVP, Egg, Edamame)

By Joyce Shangkuan
These Vegetarian Lettuce Wraps are packed with meaty TVP, light green edamame, dark green peas, crunchy jicama, umami shiitake mushrooms, and sweet onions...in fresh lettuce cups! An easy, refreshing yet protein-forward appetizer or meal!
Each serving (175 g) makes about 8-12 Little Gem Lettuce wraps.
Servings 5 Servings
Prep 35 minutes mins
Cook 10 minutes mins
Total 45 minutes mins
Full Nutrition Label Hide
Nutrition Facts
Protein-Forward Vegetarian Lettuce Wraps (TVP, Egg, Edamame)
Serving Size
 
1 /5 of dish (175 g)
Amount per Serving
Calories
236.5
% Daily Value*
Fat
 
8.3
g
13
%
Saturated Fat
 
1.2
g
8
%
Cholesterol
 
37.3
mg
12
%
Sodium
 
437.8
mg
19
%
Potassium
 
918.4
mg
26
%
Carbohydrates
 
22.1
g
7
%
Fiber
 
9
g
38
%
Sugar
 
6.7
g
7
%
Protein
 
18.2
g
36
%
Calcium
 
92.6
mg
9
%
Iron
 
3.6
mg
20
%
* Percent Daily Values are based on a 2000 calorie diet.
Nutrition Disclosure

Equipment

  • 1 small saucier or saucepan for making TVP marinade liquid
  • 1 wok or large skillet I use a 12-inch (30-cm) wok

Ingredients
 
 

For the Filling: TVP & Marinade

  • 1 Cup Textured Vegetable Protein (TVP)
  • 2 Tablespoons Nutritional Yeast
  • ½ Cup Water
  • 1 Tablespoon Soy Sauce I use reduced-sodium
  • ½ teaspoon Sugar
  • 2 Tablespoons Shaoxing Wine
  • 1 Whole Egg beaten

For the Rest of the Filling

  • 1 Tablespoon Cooking Oil I use peanut oil
  • 1 cup Onions diced
  • 1 cup Shiitake Mushrooms diced
  • 1 cup Jicama diced
  • 1 cup Peas frozen or fresh; make sure to soak frozen peas in hot water or boil fresh peas before use
  • 1 cup Shelled Edamame

For the Sauce

  • 1 Tablespoon Water
  • 1 Tablespoon Dark Soy Sauce I use the Pearl River Bridge brand
  • 1 Tablespoon Sesame Oil
  • ¼ teaspoon Black Pepper
  • Salt to taste

For Assembly and Serving

  • 1-2 heads Little Gem Lettuce use any lettuce you like, as long as it can hold the filling
  • 1-2 stalks Green Onions for garnish; optional
Prevent your screen from going dark

Instructions
 

To Rehydrate and Marinade the TVP

  • In a mixing bowl, add 1 Cup Textured Vegetable Protein (TVP) and 2 Tablespoons Nutritional Yeast, then mix until combined.
  • In a small saucepan or saucier, add ½ Cup Water, 1 Tablespoon Soy Sauce, and ½ teaspoon Sugar, then bring to a boil. Once boiling, turn off the heat, add 2 Tablespoons Shaoxing Wine, and gently mix. You can also use a water kettle and a small mixing bowl instead.
  • Pour the marinade liquid over the TVP, mix until well combined. In a separate bowl, crack and beat 1 Whole Egg, then add it to the TVP. Let it sit for 10 minutes to rehydrate.

To Prepare the Other Filling Ingredients

  • While you wait for the TVP to rehydrate, dice 1 cup Onions, 1 cup Shiitake Mushrooms, 1 cup Jicama, and have 1 cup Peas and 1 cup Shelled Edamame ready.

To Prepare the Sauce

  • In a small bowl, add 1 Tablespoon Water, 1 Tablespoon Dark Soy Sauce, 1 Tablespoon Sesame Oil, and ¼ teaspoon Black Pepper, then mix well.

To Cook the Lettuce Wrap Filling

  • Heat a wok on medium-high heat, add 1 Tablespoon Cooking Oil and 1 cup Onions (diced). Stir fry the onions until they are soft and translucent, about 3-4 minutes.
  • Add 1 cup Shiitake Mushrooms (diced) and stir fry until they are soft, about 1-2 minutes.
  • Turn the heat to high, add the marinated TVP and stir fry until the moisture has mostly evaporated, about 2-3 minutes.
  • Add 1 cup Jicama, 1 cup Peas, 1 cup Shelled Edamame, and mix everything with your spatula.
  • Add the sauce and stir fry until everything is evenly browned before turning off the heat, about 1 minute.
  • Taste test and see if the dish needs more Salt.

To Assemble and Serve

  • Spoon the filling into lettuce cups and garnish with green onions.

Notes

  • Air-Fried Egg Noodles:
    • Cook a bundle of noodles per the package instructions.
    • Drain well, place the noodles in a stainless steel or silicone tray, and mix in 1 Tablespoon of oil (I like to use sesame oil).
    • Use food-grade scissors to cut the noodles into shorter sections (they will be harder to cut when they are crispy).
    • Place the tray in the air fryer and air fry the noodles at 385 °F (196 °C) for 15 minutes, checking 1-2 times in between and rearranging the noodles for even browning.
  • Nutrition calculated does not include lettuce or green onions.
  • Each Tablespoon of filling is about 15-25 g, and each Little Gem Lettuce holds about 1-2 Tablespoons of the filling; each serving (175 g) makes about 8-12 Little Gem Lettuce wraps.

Nutrition

Serving: 1/5 of dish (175 g) | Calories: 236.5kcal | Carbohydrates: 22.1g | Protein: 18.2g | Fat: 8.3g | Saturated Fat: 1.2g | Cholesterol: 37.3mg | Sodium: 437.8mg | Potassium: 918.4mg | Fiber: 9g | Sugar: 6.7g | Calcium: 92.6mg | Iron: 3.6mg

Nutrition is hand-calculated using Cronometer, and should be treated as an estimate only. Values can vary based on the ingredients, brands, and quantities you use. For the most accurate results, please calculate the nutrition using the exact ingredients you use, or consult a qualified healthcare professional or registered dietitian.

Cronometer.com
Nutrition Disclosure
I hope you enjoy this recipe!Don't forget to leave a rating and review, and tag me on social @atypicalfare—I'd love to see your version! ☺

Comments

  1. KK says

    April 22, 2026 at 4:56 pm

    5 stars
    This is a very complete and considerate recipe, not just how to cook but covering the nutrition , the size of the dish we try to serve, so considerate, great recipe ! Thank You !

    Reply

Cancel reply

Your email address will not be published. Required fields are marked *

Recipe Rating




Hi! I'm Joyce

I've been a vegetarian since 2012, but I only learned how to eat. 🤪 I created this blog to document my learnings from the supermarket to the kitchen—join me as I learn!

More about me

Popular

  • Three Vegetarian Lettuce Wraps loaded with seasoned TVP-based filling, served on a pink plate.
    Vegetarian Lettuce Wraps (TVP, Egg, Edamame)
  • Two slices of golden-brown Chinese Omelette with Basil on a plate, with a skillet in the background.
    Basil Omelette (九層塔烘蛋)
  • A three cup chicken-inspired vegetarian dish of stir-fried king oyster mushroom, basils, and three cup sauce served in an oval plate on a wooden surface.
    Vegetarian Three Cup Chicken using King Oyster Mushrooms (三杯杏鮑菇)
  • A bowl of rice cooker clay pot rice topped with sliced vegan sausage, mushrooms, gai lan, and green onions, with a small glass bowl of sweet soy sauce on the side.
    One-Pot Rice Cooker Meal—Vegan Clay Pot Rice (炊飯機素煲仔飯)

Footer

↑ back to top

About

  • Privacy Policy
  • Accessibility Policy

Newsletter

  • Sign Up! for emails and updates

Contact

  • Contact

As an Amazon Associate I earn from qualifying purchases.

Copyright © 2026 Atypical Fare

Rate This Recipe

Your vote:




A rating is required
A name is required
An email is required