Pour a little olive oil to cover the bottom of a large pot and heat on medium. Add the onion, celery, and green pepper, stirring occasionally, until onions are translucent. Reduce heat to medium-low and add the garlic and carrots along with the chili powder, cumin, oregano, basil, salt and optional cayenne pepper. Sauté for an additional two to three minutes.
Add the kidney beans, pinto beans, tomatoes, tofu and the vegetable broth or water to the pot. Bring everything to a boil over high heat, and then reduce the heat to a simmer. Cover and cook for 10 minutes. Remove the lid and cook uncovered for five to seven additional minutes, until the carrots are tender and the chili reaches your desired thickness. Stir occasionally, to make sure nothing sticks to the bottom of the pot.
Serve warm and top as desired. Leftovers can be stored in the refrigerator in an airtight container for up to five days. You can also store leftovers in Mason jars in the freezer, and pull out when you need a quick lunch or dinner.