Prep the brisket: Pat the brisket pieces dry with paper towels. Season generously with salt and pepper.
This helps with browning and flavor.
Sear the meat: Heat the oil in a large Dutch oven over medium-high heat. Working in batches, brown the brisket on all sides, about 6–8 minutes per batch. Don’t crowd the pot.
Transfer browned pieces to a plate.
Sauté the aromatics: Lower heat to medium. Add onion, bell pepper, and jalapeño. Cook until softened and lightly browned, 5–7 minutes.
Stir in garlic and cook 30 seconds until fragrant.
Build the base: Add tomato paste and cook, stirring, for 1 minute to caramelize slightly. Sprinkle in chili powder, cumin, smoked paprika, chipotle, and oregano. Stir to coat the vegetables and toast the spices for 30 seconds.
Deglaze: Pour in a splash of beef broth and scrape up any browned bits from the bottom.
Those bits add deep flavor.
Add liquids and simmer: Return the brisket and any juices to the pot. Add diced tomatoes, remaining beef broth, and the bay leaf. Bring to a gentle boil, then reduce to a low simmer.
Slow cook until tender: Cover partially and simmer on low for 2.5–3 hours, stirring occasionally, until the brisket is fork-tender.
Add the optional zucchini in the last 30 minutes if using.
Finish and thicken: Remove the bay leaf. Stir in apple cider vinegar or lime juice. Simmer uncovered for 10–15 minutes to thicken, if needed.
Adjust salt, pepper, and chipotle to taste.
Serve with keto-friendly toppings: Ladle into bowls and top with sour cream, shredded cheese, avocado, cilantro, and a squeeze of lime.