This post may contain affiliate links. Please read our disclosure policy.
These vegan fish fillets, or as I like to call them, “feesh” fillets, feature a super tender and flaky texture and come with a slightly crispy skin! Each fillet packs 8g of protein, and the best part? They’re ready to enjoy in less than 30 minutes! This is one of the closest fish alternatives I’ve ever tasted!

After experimenting with vegan chicken, vegan burger, and even plant-based bologna, I’m super excited to introduce you to my latest creation – vegan fish fillets! It took me countless trials and a lot of dedication to get the texture and flavor just right. Today, I’m so happy to share it with you!
Now, just to clarify, these are not the tofu salmon fillets that you might have seen trending lately. I have tried those recipes myself, and while they do look convincing, the taste is just…meh. The texture is completely off, and honestly, it’s a bit of a letdown.
Let’s set the record straight: I’m not claiming these vegan fillets are an exact replica of fish, because they’re not. They won’t fool anyone into believing it’s the real thing. However, I truly think that is one of the best plant-based alternatives to fish fillets you can make at home.
My vegan fish fillets have a very nice flaky texture and a subtle sea flavor, and they taste amazing paired with the black pepper sauce I am sharing as well. In my opinion, they definitely outshine those tofu-based versions in the texture department. Hope you will love them!
Sam, a reader, said: “Tried this. I followed your instructions on the process exactly, but used my own seasoning along with some oil in the mix. The best no-fish fish that I have ever had. And the protein content is amazing too. ★★★★★”
Bev, a reader, said: “This is now my go-to vegan fish recipe! I have purchased something very similar from an Asian market, which we have enjoyed. I’m so happy to have a recipe that is delicious and fun to prepare! ★★★★★”
⭐️ Why You Will Love It
Super flaky!
My vegan fish fillets are super tender and incredibly flaky! Imagine a texture that is not quite like salmon or cod, but more like a soft, flaky canned tuna.
Coming up with a flaky texture that doesn’t crumble was not an easy task. I started with a base of TVP slices, which already has a layered and flaky texture. The problem was that it crumbled very easily during cooking, and it’s almost impossible to cook the fillets in a sauce. After experimenting, I ended up relying on a combination of tofu and flour to hold everything together. The result is tender fillets that are flaky but hold together well enough to be cooked in your favorite sauce! They even soak up the sauce and become juicy!
Versatile.
You can use the fillets in many different ways! You can serve them with a simple lemon butter sauce, incorporate them into curries, or even use them as a filling for tacos – the options are limitless. Plus, I’m sharing two different methods for shaping them!
🧄 Ingredient Notes

TVP
The base of this recipe is TVP, also known as Textured Vegetable Protein. It is a dry product that comes in many different shapes, like cutlets, chunks, etc. It first needs to be rehydrated before being used as a meat substitute.
In this recipe, I use TVP in the form of large slices. Those are often sold under the name “Pork slices” or “Chicken slices.” All of them are basically the same thing.

Brand recommendations: The TVP I generally use is from the brands Au Lac or An Nhien. Both are Vietnamese brands that I buy at my local Asian supermarket. I found two products online that seem to be similar to the ones I use. You can check this one or this one. Otherwise, ask your local Asian supermarket! If they don’t stock it, they can usually order it for you.
Note: If you cannot find large slices, smaller ones also work. In that case, I highly recommend checking the metric measurements in the recipe card to ensure you are using the correct weight.
Warning: Do not try using soy curls or TVP chunks, as you won’t get the same texture. Slices have a different texture with fibrous layers, which you would not get with the other kinds.
Tofu
In addition to the TVP, I use firm tofu. It adds tenderness and, when combined with flour, prevents the filets from crumbling.
Vegan fish sauce
While vegan fish sauce doesn’t add any fish flavor, it brings umami, saltiness, and more complex flavors.
Where to buy: Vegan fish sauce can be found in Asian stores, or you can buy it online. Alternatively, you can check out my recipe for vegan fish sauce here.
Substitute: If you do not have fish sauce on hand, you can try using soy sauce. It’s not the best substitute, but it should work.
Aromatics
I rely on a combination of different aromatics to season the fillets. Garlic, onion powder, and ground black pepper make the base, creating a fragrant aroma.
Then, dill brings lemony and herbaceous notes. Plus, since dill is often associated with fish, it helps create the illusion of a fish flavor.
Note: You can replace the dried dill with about 1/2 tsp of chopped fresh dill.
Sugar
To balance with the saltiness. Any type of sugar will work here, so use what you have on hand.
Dulse or wakame
To add even more ocean flavor, I blend the mixture with rehydrated seaweed. You can use dried wakame or dulse flakes – both work.
Flour
A few tablespoons of all-purpose flour help absorb some of the moisture and prevent the “fish” mixture from crumbling during cooking. Although I haven’t tried it yet, I think a 1:1 gluten-free flour blend should work.
Nori sheet
And lastly, nori sheets not only enhance the fillets with a rich sea flavor but also mimic the appearance of fish skin.
🥣 How to Make It
- Soak the TVP slices. Add the TVP slices to a large bowl or plate and cover with boiling water. Let them sit for about 30 minutes or until the slices are soft. You can soak the TVP slices overnight in the refrigerator as well.
- Drain them. Drain the TVP slices and squeeze them to remove as much water as possible. Rinse them 2-3 times and squeeze them again. Don’t worry if you slightly mash them, it’s okay. Set aside.
- Rehydrate the seaweed. Add the wakame (or dulse) to a small bowl and cover with hot water. Allow the seaweed to rehydrate for at least 20 minutes. Drain and set aside.
- Blend the tofu. Pat the tofu dry using kitchen paper towels. Next, transfer it to a food processor and add the vegan fish sauce, sugar, onion powder, black pepper, dried dill, garlic, vinegar, salt, and rehydrated wakame/dulse. Process for 20-30 seconds or until smooth.
- Add the TVP. Next, add the rehydrated TVP slices to the food processor and process for about 5 seconds or until the TVP is evenly sliced and the mixture has a flaky texture. Note: Do not process for too long, or you will lose the texture of the TVP.
- Add the flour. Transfer the mixture to a large mixing bowl and add the flour. Mix until it forms a paste. It should hold together when you squeeze it between your hands, but it should still be slightly crumbly.
- Assemble. Cut the nori sheets into rectangles of about 2×4 inches (5.5×10 cm). Then, measure about 6 tablespoons of the tofu mixture and shape it into a thick rectangle of the same size between your hands. Press the mixture firmly onto a sheet of nori. Repeat with the remaining nori and tofu mixture.
Another Way to Shape!
When it comes to shaping, you have two options. You can either make fillets as shown above. Those look more like real fish and are great to serve as a main meal with your favorite sauce.
Or, you can make rolls. Rolls are great for braised dishes as they hold up better than a fillet. To make rolls, cut the nori sheet into rectangles of about 2×4 inches (5.5×10 cm). Then, place about two tablespoons of the mixture on the bottom, and roll it out into a roll. Dissolve a teaspoon of cornstarch in about two teaspoons of water, and slightly wet the end of the nori sheet before closing it. This way, the nori sheet will stick, and your rolls won’t “unroll” during cooking.
- Pan-fry. Heat 2 tablespoons of oil in a non-stick skillet over medium heat. Once hot, carefully transfer your fish fillets to the skillet with the nori sheet facing down. Shallow-fry for 4-5 minutes or until the nori sheet is crispy. Flip the fillets and cook for another 4-5 minutes on the other side. Remove from the skillet and set aside.
- Sauté the aromatics. Heat two tablespoons of oil in a non-stick skillet over medium heat. Once hot, add the minced shallots and garlic and sauté for 2-3 minutes.
- Pour in the remaining ingredients. Next, in a small bowl, combine the soy sauce, sugar, ground black pepper, water, and cornstarch. Pour into the skillet and let simmer for about 1 minute or until the sauce has thickened.
- Add the fish fillets. Finally, add the vegan fish fillets and toss to coat with the sauce. Cook for another minute and serve immediately!
📔 Tips
Do not over-process.
It’s essential that you do not over-process the TVP slices, as this can cause them to lose their flaky texture. Usually, a quick processing time of 4-5 seconds or just a few pulses is enough. Ideally, the TVP should be sliced into 1/2-inch (1.2 cm) pieces – not smaller!
Air fry.
Instead of pan-frying the fillets, you can air fry them. To do so, preheat your air fryer to 350°F (175°C). In the meantime, generously brush the fillets with oil before arranging them in the air fryer basket. Air fry for 14 minutes, flipping them once halfway through air frying.
Serve with a sauce!
Although the fillets are already seasoned, they truly shine when served with a sauce. You don’t have to stick to the black pepper sauce I’m sharing; feel free to choose any sauce you like. Consider serving them with garlic butter sauce, lemon parsley sauce, or white wine sauce!
🍚 What to Serve Them With
You can serve these fillets with basically everything! Here are some ideas:
- Grains: My favorite option is to serve the fillets and the black pepper sauce with white rice, but you can definitely serve them with quinoa, farro, or even pasta.
- Vegetables: Serve them with a generous side of vegetables such as sautéed spinach, green beans, kale, garlic winged beans, or heartier options like smoked potatoes, mashed sweet potatoes, or caramelized zucchini!
- Salad: For a lighter meal, serve the fillets with a side of arugula, Romaine lettuce, ginger carrot & kale salad, or shaved Brussels sprout salad.
You can even use them as a filling for tacos (vegan fish tacos!), sandwiches, burgers, or banh mi!
❄️ Storing and Freezing
- To store: You can store these fillets for up to 3 days in the refrigerator.
- To reheat: Reheat with the sauce for 5-7 minutes in a skillet over medium heat. You might have to add a splash of water if the sauce has thickened too much. You can also reheat the fillets in a 350°F (175°C) preheated air fryer for 5 minutes.
- To freeze: These fillets also freeze very well! You can freeze them uncooked for up to 3 months. Thaw overnight in the refrigerator before cooking them in a pan or air fryer.

💬 FAQ
You only need to press the tofu using kitchen paper towels to remove most of the moisture. You do not need to use a tofu press or press it for several minutes.
I’m afraid this is going to be difficult, as all of the brands of TVP slices I have found seem to contain gluten.
I do not recommend using a blender as you won’t be able to process the mixture evenly. A food processor really works best for this recipe.

I hope you will love these vegan fish fillets! They are tender, flaky, and well-seasoned. And while they won’t fool anyone, they are an amazing alternative to fish!
🍔 More Meat Alternatives
⭐️ Did you like this recipe? Let us know in the comments below, and tag us on Facebook, Instagram, or Pinterest!


Want to Save This Recipe?
Enter your email below & we’ll send it straight to your inbox! Plus, you will receive new recipes every week!
I’d like to receive more tips & recipes from Full of Plants.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Vegan Fish Fillets
Ingredients
Fish Fillets
- 8 large (100 g) TVP slices
- 1 tsp dried wakame or dulse flakes
- 5.6 ounces (160 g) firm tofu
- 2 tsp (10 ml) vegan fish sauce (or soy sauce)
- 1 and 1/2 tsp (6 g) sugar
- 2 tsp onion powder
- 1/4 tsp ground black pepper
- 1/4 tsp dried dill (or 1/2 tsp fresh dill)
- 2 cloves of garlic
- 1 tsp (5 ml) white vinegar
- 1/2 tsp salt
- 5 tbsp (40 g) all-purpose flour
- 1 nori sheet
Black Pepper Sauce
- 2 tbsp (30 ml) oil
- 2 small shallots
- 2 cloves of garlic
- 2 tbsp (30 ml) soy sauce
- 2 tbsp (25 g) sugar
- 1 tsp ground black pepper
- 1/2 cup (120 ml) water
- 1 tsp (2 g) cornstarch
Instructions
- Soak the TVP slices. Add the TVP slices to a large bowl or plate and cover with boiling water. Let them sit for about 30 minutes or until the slices are soft. You can soak the TVP slices overnight in the refrigerator as well.
- Drain them. Drain the TVP slices and squeeze them to remove as much water as possible. Rinse them 2-3 times and squeeze them again. Don’t worry if you slightly mash them, it’s okay. Set aside.
- Rehydrate the seaweed. Add the wakame (or dulse) to a small bowl and cover with hot water. Allow the seaweed to rehydrate for at least 20 minutes. Drain and set aside.
- Blend the tofu. Pat the tofu dry using kitchen paper towels. Next, transfer it to a food processor and add the vegan fish sauce, sugar, onion powder, black pepper, dried dill, garlic, vinegar, salt, and rehydrated wakame/dulse. Process for 20-30 seconds or until smooth.
- Add the TVP. Next, add the rehydrated TVP slices to the food processor and process for about 5 seconds or until the TVP is evenly sliced and the mixture has a flaky texture. Note: Do not process for too long, or you will lose the texture of the TVP.
- Add the flour. Transfer the mixture to a large mixing bowl and add the flour. Mix until it forms a paste. It should hold together when you squeeze it between your hands, but it should still be slightly crumbly.
- Assemble. Cut the nori sheets into rectangles of about 2×4 inches (5.5×10 cm). Then, measure about 6 tablespoons of the tofu mixture and shape it into a thick rectangle of the same size between your hands. Press the mixture firmly onto a sheet of nori. Repeat with the remaining nori and tofu mixture.
- Pan-fry. Heat 2 tablespoons of oil in a non-stick skillet over medium heat. Once hot, carefully transfer your fish fillets to the skillet with the nori sheet facing down. Shallow-fry for 4-5 minutes or until the nori sheet is crispy. Flip the fillets and cook for another 4-5 minutes on the other side. Remove from the skillet and set aside.
- Sauté the aromatics. Heat two tablespoons of oil in a non-stick skillet over medium heat. Once hot, add the minced shallots and garlic and sauté for 2-3 minutes.
- Pour in the remaining ingredients. Next, in a small bowl, combine the soy sauce, sugar, ground black pepper, water, and cornstarch. Pour into the skillet and let simmer for about 1 minute or until the sauce has thickened.
- Add the fish fillets. Finally, add the vegan fish fillets and toss to coat with the sauce. Cook for another minute and serve immediately!
- You can store these fillets for up to 3 days in the refrigerator.
Notes
Do not over-process.
It’s essential that you do not over-process the TVP slices, as this can cause them to lose their flaky texture. Usually, a quick processing time of 4-5 seconds or just a few pulses is enough. Ideally, the TVP should be sliced into 1/2-inch (1.2 cm) pieces – not smaller!Air fry.
Instead of pan-frying the fillets, you can air fry them. To do so, preheat your air fryer to 350°F (175°C). In the meantime, generously brush the fillets with oil before arranging them in the air fryer basket. Air fry for 14 minutes, flipping them once halfway through air frying.Serve with a sauce!
Although the fillets are already seasoned, they truly shine when served with a sauce. You don’t have to stick to the black pepper sauce I’m sharing; feel free to choose any sauce you like. Consider serving them with garlic butter sauce, lemon parsley sauce, or white wine sauce!Regarding the nutritional information
Keep in mind that calories per fillet may be a little bit higher than noted since the fillets are pan-fried with oil.Nutrition
Note: This recipe was first released in June 2021 and updated with new process shots and detailed instructions in June 2025. You can find the original photos below.

About the Author
Thomas Pagot is the founder, photographer, and recipe developer behind Full of Plants. He created the blog in 2016 as a personal cookbook for vegan recipes. Through years of recipe development, Thomas has successfully grown Full of Plants into a trusted resource for plant-based recipes.
Leave a Comment
I’ve made this many times and it’s always delicious. I really your black pepper sauce too. Such a perfect combo! It actually tastes even better the next day after reheating, since the vegan fish fillets absorb more of the sauce.
Thanks Yukiko! We have also noticed that it tastes better the next day as flavors have time to merge 🙂
Could I just use the TVP slices for this recipe or is the tofu absolutely necessary?
You can just use TVP but you have to be aware that the fillets will be more crumbly. Also, you will have to reduce slightly the amount of seasonings.
Cool! Thank you! 🙂
Hi this looks amazing. Trying to source tvp slices in Australia and I’ve spent 2 hours on google. All those available instore or online seem to have gluten. To save me some heart ache can you say if gluten is why the layers? I might try and build this with dried bean curd if so. Thanks in advance.
Hi Cass,
I am unsure if it’s possible to find those slices without any gluten. You may be right, it might be the gluten that create the flaky texture.
Bean curd sheets might work but you will have to completely change the recipe. I do plan to try with those sheets in the future as well 😉
Tried this. I followed your instructions on the process exactly but used my own seasoning along with some oil in the mix.
The best no-fish fish that I have ever had. And the protein content is amazing too.
Glad you liked this recipe Sam! Thanks for your feedback and rating 🙂
How many grams is the 8 pieces of tvp slices?
the amazon link to the fish sauce Red Boat Fish Sauce and the associated labels pictured there defines the ingredients as anchovy and sea salt. Definitely NOT vegan.
Yes, Amazon doesn’t always redirect to the right product if you are located outside the US.
Of course, I would NOT put a link to a non-vegan product voluntarily…
This is now my go-to vegan fish recipe! I have purchased something very similar from an Asian market which we have enjoyed. I’m so happy to have a recipe that is delicious and fun to prepare!
Thank you Bev! I’m glad you like this vegan fish recipe 🙂
Love your recipes, but I’m a bit frustrated by the links to Amazon. I know you need to earn a little, but it would be more helpful if the links could take you to an actual product. I can’t find TVP slices, for example, but your link simply takes me to a page of TVP products rather than the specific one (and no slices to be seen!).
I’d hope that clicking on the vegan fish sauce and sweet chilli sauce links would take me to your homemade recipes for these, but just Amazon again.
I’m sorry to be picky, but it’s such a great site otherwise.
Thanks for your feedback Becca! I am assuming you are not located in the US? Amazon tends to redirect to the wrong products sometimes when visiting from a different country.
Regarding the other links, we have been working on our inter-linking recently.
Do you know one website called Google? It is usually quite useful for finding all sorts of stuff
Made these tonight. Mine kinda fell apart, but we ate them anyways. Delicious to us. Served as per your recommendation with garlic and shallots. Going to make again.
Trina
Thanks for your feedback! Next time, try processing the mixture a bit longer, and press it down firmly onto the nori sheet. After pan-frying it should hold together.
Hi Thomas,
Any chance to use you veg chicken recipe instead of this tvp? Maybe a bit revisited for different texture.. It’s really complicated to find TVP here 🙁
This being said, great recipe
Hi Manuele,
The texture would certainly be different and I’m not actually sure it would hold together.
Have you considered food-processing/flaking some hearts of palm and adding them into the mix? That might help with both the texture and the sea flavor.
I haven’t tried this recipe yet, but I think I will – with the addition of the hearts of palm!
I haven’t, but let me know if you try it!
This looks incredible. I have lots of Butler Soy Curls. Could I use them rather than the others mentioned without too much textural difference?
Thanks Leigh! I’m afraid it won’t work as explained in the recipe post. Soy curls don’t have the same layers of texture.
I made a similar salmon steak using slabs of tofu. It was then marinated in a sauce with beet and turmeric for colour and flavour. I love your recipes and often use them, but “It Doesn’t Taste Like Chicken” makes a mean crab cake and as stated, a great salmon steak. Thanks for all your fab recipes.
Jeannie
Kind of rude to not even leave a review of the recipe and just talk about a different recipe developer’s salmon.