This chocolate hummus recipe has develop into my most-requested occasion dip! What sounds uncommon at first turns into pure magic—a wealthy, chocolatey deal with that’s excellent for dipping all the pieces from strawberries to pretzels.

After I first heard about chocolate hummus years in the past, I used to be each skeptical…and curious. Chickpeas and chocolate? It gave the impression of a kind of bizarre well being meals experiments gone mistaken. However one chunk utterly modified my thoughts—it was wealthy, creamy, and satisfying: extra like a fruit dip than hummus! I couldn’t cease fascinated about it, and I knew I needed to recreate it at residence.
After a number of take a look at batches tweaking the sweetness and texture, this chocolate hummus recipe was born. Now it’s develop into one in every of my favourite snacks for events—children love the chocolate taste, adults recognize that it’s more healthy than typical dessert dips, and I like how easy it’s to make! Over time, it’s develop into a fan favourite recipe. Let’s make it!
Learn a 5 star evaluate
“That is AWESOME! I truly use it to dip grapes and berries in as a substitute for consuming ice cream. It’s additionally sooo straightforward and filling. Woo hoo!” -Jamie

Ideas for making chocolate hummus
This recipe couldn’t be easier, however a couple of methods guarantee the very best outcomes (or leap to the recipe beneath):
1. Put together your substances.
Drain the chickpeas and reserve that treasured liquid (aquafaba) in a measuring cup. This liquid is your secret weapon for attaining the proper creamy consistency.
Professional tip: In case your tahini has separated within the jar, give it a superb stir earlier than measuring to make sure a easy mix.
2. Mix to perfection.
Add chickpeas, tahini, maple syrup, cocoa powder, vanilla, salt, and some tablespoons of aquafaba to your meals processor. Mix for 30 seconds, scrape down the perimeters, then style and regulate.
3. Modify to your style.
That is the place you make it yours! Add extra maple syrup should you favor it sweeter, or extra aquafaba if you would like it creamier. The ultimate consistency ought to be easy and spreadable, just like a thick chocolate frosting or nut butter.

Ingredient highlight: tahini
What’s tahini? Tahini is a paste fabricated from sesame seeds, sometimes utilized in Center Jap or Mediterranean dishes. The substances are merely sesame seeds and salt, making the paste vegan and gluten-free.
The preferred use for tahini is basic hummus, however it’s additionally nice for baking. If in case you have tahini left over from making this do-it-yourself hummus recipe, attempt our high tahini recipes.
Taste variations
When you grasp the fundamental chocolate hummus, attempt these variations I’ve developed:
- Brownie batter hummus: See our Brownie Batter Hummus recipe.
- Chocolate peanut butter hummus: Substitute tahini with pure peanut butter for a taste mixture that tastes like a wholesome Reese’s cup.
- Mexican chocolate hummus: Add ⅛ teaspoon cinnamon and a pinch of chili powder for warming spice notes.
- Darkish chocolate hummus: Use Dutch course of cocoa powder as an alternative of standard cocoa for a deeper, richer chocolate taste with much less sweetness.
- Mocha hummus: Add 1 teaspoon of prompt espresso for a delicate espresso notice that enhances the chocolate.
Dutch course of cocoa powder is accessible within the baking aisle at your native grocery. Or you should purchase it on-line: our favourite manufacturers are Hershey’s Particular Darkish Cocoa Powder or Ghirardelli Dutch Course of Cocoa Powder.
Methods to serve chocolate hummus
Chocolate hummus is extra just like a fruit dip than basic hummus. So for dipping, attempt fruits, pretzels and candy crackers. Listed here are a couple of concepts:
- Contemporary fruit: Strawberries, apple slices, pineapple chunks, grapes, and banana slices all pair nicely with the wealthy chocolate taste.
- Candy and salty choices: Pretzels are my private favourite—that sweet-salty mixture is addictive! Graham crackers and vanilla wafers additionally work nicely.
- Particular events: Attempt serving with cubes of angel meals cake or pound cake for an enjoyable dessert unfold.
- Enjoyable presentation: Make fruit skewers for a lovely occasion presentation that’s straightforward for friends to seize.
Storing leftovers
Retailer in an hermetic container for five to 7 days. The flavors truly enhance after a day as they meld collectively. The hummus might thicken barely when chilled. Merely let it come to room temperature for quarter-hour earlier than serving.
That is excellent for occasion prep since it may be made a number of days prematurely. Simply put together your dippers contemporary on the day of serving.
Dietary notes
This chocolate hummus recipe is vegetarian, vegan, gluten-free, plant-based, dairy-free, naturally candy, and refined sugar free.
Straightforward Chocolate Hummus
This chocolate hummus recipe has develop into my most-requested occasion dip! What sounds uncommon at first turns into pure magic—a wealthy, chocolatey deal with that’s excellent for dipping all the pieces from strawberries to pretzels.
- Prep Time: 0 minutes
- Cook dinner Time: 5 minutes
- Whole Time: 5 minutes
- Yield: 8
- Class: Snack
- Methodology: Meals Processor
- Delicacies: American
Components
- 15-ounce can chickpeas (1 ½ cups cooked)
- ¼ cup tahini*
- 1/3 to 1/2 cup maple syrup or agave syrup
- ⅓ cup cocoa powder (Dutch course of / darkish chocolate cocoa powder, if desired)
- 1 teaspoon vanilla extract
- ¼ teaspoon kosher salt
Directions
- Drain the chickpeas right into a glass measuring cup and reserve the can liquid (aquafaba).
- To the bowl of a meals processor, add the chickpeas, tahini, maple or agave syrup, cocoa powder, vanilla, kosher salt, and a pair of tablespoons aquafaba. Puree for 30 seconds, then scrape down the bowl. Style; if needed, add a bit extra syrup to sweeten the style even additional. Add further 1 to 2 tablespoons aquafaba and puree once more to return to a creamy consistency. Retailer refrigerated for five to 7 days.
- Serve with pretzels, pineapple, inexperienced apple slices, and strawberries.
Notes
*Or, use peanut butter for a enjoyable variation. Recipe up to date 5/30/25 to replace sweetener and cocoa powder portions to handle reader feedback.
Vitamin information calculated primarily based on about 3 tablespoons per serving.
Dutch course of cocoa powder is accessible within the baking aisle at your native grocery. Or you should purchase it on-line: our favourite manufacturers are Hershey’s Particular Darkish Cocoa Powder or Ghirardelli Dutch Course of Cocoa Powder.
(perform(){
window.addEventListener( ‘message’, perform( occasion ){
if ( ( ‘https://nutrifox.com’ !== occasion.origin && ‘https://nutrifox.take a look at’ !== occasion.origin ) ||
typeof occasion.knowledge !== ‘string’ ) {
return;
}
var payload = JSON.parse( occasion.knowledge );
swap ( payload.occasion ) {
case ‘setHeight’:
var iframe = doc.getElementById( ‘nutrifox-label-‘ + payload.recipeId );
iframe.fashion.top = payload.top + ‘px’;
break;
}
} );
}());
window.trCommon={“minRating”:6,”ajaxurl”:”https://www.acouplecooks.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:13189};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
doc.addEventListener( ‘click on’, ( e ) => {
let anchor = e.goal;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}
if ( ! anchor || ! anchor.classList.comprises( ‘tasty-recipes-scrollto’ ) ) {
return;
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const component = doc.querySelector( selector );
if ( ! component ) {
return;
}
component.scrollIntoView( { habits: ‘easy’ } );
}
};
doc.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = doc.querySelectorAll(this.cookModeSelector);
if (cookModes.size > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘enter[type=”checkbox”]’).addEventListener(“change”, occasion => {
this.checkboxChange(occasion.goal);
}, false);
} else {
cookMode.fashion.show = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = doc.querySelectorAll(this.cookModeSelector + ‘ enter[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
attempt {
this.wakeLock = await this.wakeLockApi.request(“display screen”);
this.wakeLock.addEventListener(“launch”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.launch();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(perform(callback) {
if (doc.readyState !== “loading”) {
callback();
} else {
doc.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
component: null,
tooltipElement: null,
deleting: false,
init( component ) {
if ( this.deleting ) {
return;
}
this.component = component;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.take away( ‘opened’ );
setTimeout( () => {
this.tooltipElement.take away();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = doc.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
doc.physique.replaceChild( tooltipElement, currentTooltipElement );
} else {
doc.physique.appendChild( tooltipElement );
}
this.tooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
},
present() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.component.getBoundingClientRect().high
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().top;
const tooltipLeft = this.component.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.component.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘fashion’, ‘high:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.take away( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, knowledge, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.ship( this.preparePostData( knowledge ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.standing === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( knowledge ) {
const formData = new FormData();
for ( const key in knowledge ) {
formData.append( key, knowledge[key] );
}
return formData;
},
};
window.TastyRecipes.rankings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const rankings = doc.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( rankings.size {
occasion.preventDefault();
this.defaultRating = occasion.goal.closest( ‘.checked’ ).dataset.ranking;
this.setCheckedStar( occasion.goal );
this.maybeSendRating( this.defaultRating, occasion.goal );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click on’, e => {
// Bailout (do not take away the tooltip) when the clicked component is a ranking star, or it is the tooltip itself.
if ( e.goal.closest( ‘.tasty-recipes-rating’ ) || e.goal.classList.comprises( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( ranking ) {
const ratingInput = doc.querySelector( ‘#reply .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click on();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = doc.querySelectorAll( ‘enter.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click on’, currentEvent => {
const selectedRating = currentEvent.goal.getAttribute( ‘worth’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( ranking ) {
if ( ranking < this.minRating ) {
doc.physique.classList.take away( 'tasty-recipes-selected-minimum-rating' );
return;
}
doc.physique.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( ranking ) {
const commentTextarea = doc.getElementById( 'remark' );
if ( ! commentTextarea ) {
return;
}
if ( ranking {
window.TastyRecipes.staticTooltip.changeMessage( response.knowledge.message );
window.TastyRecipes.staticTooltip.present();
this.updateAverageText( response.knowledge, recipeCardElement );
this.maybeFillCommentForm( response.knowledge );
// Cover the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.knowledge, ranking );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( knowledge, recipeCardElement ) {
if ( ! knowledge.common ) {
return;
}
this.setRatingPercent( knowledge );
if ( ! knowledge.depend ) {
return;
}
const quickLink = doc.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, knowledge );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = knowledge.common;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), knowledge );
},
setTextInContainer( container, knowledge ) {
if ( ! container ) {
return;
}
if ( knowledge.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = knowledge.label;
}
return;
}
const averageElement = container.querySelector( ‘.common’ );
if ( averageElement ) {
averageElement.textContent = knowledge.common;
}
const countElement = container.querySelector( ‘.depend’ );
if ( countElement ) {
countElement.textContent = knowledge.depend;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( knowledge ) {
this.defaultRating = knowledge.common.toFixed( 1 );
const components = knowledge.common.toFixed( 2 ).toString().break up( ‘.’ );
this.currentRatingPercentage = components[1] ? components[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( goal ) {
const cardRatingContainer = goal.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = goal.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( knowledge ) {
if ( ! knowledge.remark || ! knowledge.remark.content material ) {
return;
}
const commentForm = doc.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.worth ) {
return;
}
// Add remark particulars for modifying.
commentBox.innerHTML = knowledge.remark.content material;
if ( knowledge.remark.identify ) {
commentForm.querySelector( ‘[name=author]’ ).worth = knowledge.remark.identify;
commentForm.querySelector( ‘[name=email]’ ).worth = knowledge.remark.e mail;
}
},
maybeResetTooltip( recipeCardElement, knowledge, ranking ) {
if ( this.savingRating === ranking ) {
this.resetTooltip( recipeCardElement, knowledge );
}
},
resetTooltip( recipeCardElement, knowledge ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default ranking.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( knowledge && knowledge.common ) ? knowledge.common.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, knowledge );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = doc.querySelector( ‘#reply .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.show.contains( ‘flex’ ) ) {
ratingsButtons.fashion.route = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Choose the ranking that was beforehand chosen in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click on’, occasion => {
if ( ratingSpan === occasion.goal ) {
return;
}
ratingSpan.previousElementSibling.click on();
} );
}
}
};
(perform(callback) {
if (doc.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.rankings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
Different wholesome chocolate recipes you would possibly get pleasure from
Listed here are a couple of extra chocolate recipes to attempt: