Food
Cacio e Pepe
Three ingredients, thirty years of practice
Prep
5 min
Cook
15 min
Servings
2
There is a particular cruelty in a dish that appears so simple. Three ingredients — cheese, pepper, pasta — and a technique that takes years to execute reliably. Every Roman grandmother who has made this for fifty years will tell you it is nothing, and she is lying, and she knows she is lying, and she is doing it deliberately.
The problem, if cacio e pepe has a problem, is that it looks like it should be forgiving. It isn't. The cheese must be very finely grated — microplane-level, almost a powder — or it will clump into elastic strings. The pasta water must be warm but not hot, because protein seizes above 70°C and you will have scrambled eggs in pasta form. The pan must be off the heat when the cheese goes in, or barely on it. The ratio of pasta water to cheese is a moving variable you are adjusting throughout the final two minutes of cooking, which requires attention that cannot be divided.
And then, when it works — and it will work — it is one of the most complete dishes in European cooking. The pepper is not a garnish. It is structural. Properly toasted and coarsely cracked, it blooms in the fat of the cheese, creating a warmth that is not heat but something more like presence. The Pecorino Romano is sharp, saline, ancient-tasting. The pasta should be tonnarelli if you can find it: a Roman square-cut spaghetti with more surface area and a satisfying resistance.
No cream. No butter — or a small amount, which is allowed but not traditional. No garlic. The restraint is the point.
Scale Recipe
1
10
20
or
Base
Instructions
0/7 complete
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"cacio-e-pepe","rating":1}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 1 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"cacio-e-pepe","rating":2}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 2 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"cacio-e-pepe","rating":3}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 3 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"cacio-e-pepe","rating":4}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 4 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
<button
type="button"
class="group/star p-0.5 transition-transform hover:scale-110 focus:outline-none focus-visible:ring-2 focus-visible:ring-citrus-400 rounded"
hx-post="/api/community/rate"
hx-vals='{"slug":"cacio-e-pepe","rating":5}'
hx-target="#engagement-section"
hx-swap="outerHTML"
aria-label="Rate 5 out of 5"
>
<svg
class="w-7 h-7 text-salt-300 group-hover/star:text-citrus-300 transition-colors"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
/>
</svg>
</button>
Be the first to rate