Heat ghee in large Dutch oven or skillet over medium-high heat. Add chicken in batches of two or three so you don't overcrowd the pan. Cook until browned on each side, about 3 minutes per side. Remove chicken and set aside.
Add chopped onion and cook for 5 minutes or until translucent. Add ginger, garlic and whole green chilis and cook for 1 minute. Stir in tomatoes and spices and cook for an additional minute. Add chicken back to skillet.
Bring to simmer then cook for 15 minutes. Once slightly reduced, stir in yogurt and simmer for another 2-3 minutes to thicken. Garnish with green chilis, cilantro and ginger.
Use fresh tomatoes. They cook down quickly, making a rich and rustic sauce.
If you like more spice, slice some chilis with the seeds.
You can replace the paprika with kashmiri red chilli if you can find it. Paprika works fine however.
Never cover the skillet/pan when simmering if you want to be traditional. It is considered a sin to cook karahi with a lid on!
You know the chicken is cooked when it reaches 165°F with an instant-read thermometer or if you cut into the chicken and the juices run clear and there is no pink. Honestly, I always just cut the chicken to see when it is done. If it isn’t just cook slightly longer.
Leftovers will store well in the fridge for 2-3 days in an air-tight container or be frozen for 3 months.