91³Ô¹ÏÍø

Watch CBS News

"People kibble" trend aims to simplify meal prep and nutrition. Dietitians have some thoughts.

If you've ever struggled with planning nutritious meals on the daily, a TikTok user has shared his viral solution — a vat of finely chopped vegetables, grains and proteins that others online have dubbed "people kibble."

The meal prep method, of which has garnered 6.2 million views, has divided others on the app. Some love the simplicity while others dislike it for the same reason.

"I was just complaining the other day that I wish people kibble existed bc I'm sick of trying to figure out what to eat, this is pretty dang close!" one user commented. Another wrote, "No spices!?"

In the video, said he's been eating this way for five years, adding he follows this method because he dislikes vegetables but wanted them in his diet. 

@myfoodisme

While dietitians say the mixture looks nutritionally balanced and may be helpful for some, it's likely not be a viable or satisfying option for most people.

"I don't recommend eating the same things every day, but for people who want to simplify their meal prep and increase their intake of whole foods, this type of meal prep can be helpful," Kelsey Kunik, a registered dietitian and creator at nutrition platform , told CBS News. "I would recommend choosing a handful of each — vegetables, grains, and legumes — and swapping the proteins each time you make it to add variety in flavor and nutrients."

Amanda Holtzer, a registered dietician based in New Jersey, pointed out a few positives about his food, including high fiber from vegetables and whole grains, lean protein from chicken breast and tofu and a variety of vitamins, minerals and antioxidants from the 11 different types of vegetables he used. 

But Kunik notes that eating the same thing every day would get boring for her and others. 

"As a dietitian, I believe food is fuel, but it is also so much more, including a source of connection, pleasure and fun! Some people are happy to eat the same things day after day, but for the majority of people, this way of eating would not be satisfying or fit into their lifestyle," she said. 

Holtzer agrees "healthy" and "delicious" are not mutually exclusive adjectives.

"Both can happen at the same time. I think there are definitely things we can add to this meal to bump up the flavor," she said, including adding herbs, spices, sauces or other condiments.

"For example, you could add teriyaki sauce, hummus, tahini or a delicious homemade dressing," she suggested.

For people who exercise or work outdoors, this meal may be too low in sodium if not using salt, Kunik pointed out, suggesting soy sauce or hot sauce as another option for both balance and flavor.

The creator also preps a lot of food at once, but it's hard to determine his portion sizes the video — so if you're wanting to try this trend, Holtzer advises adjusting the quantity based on your size, activity level and nutritional needs.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });