Preheat your oven to 325°F (165C) for slow-roasting the short ribs.
In a large oven-safe Dutch oven, melt the butter over medium-high heat. Add the thinly sliced onions and cook for about 10 minutes, stirring occasionally until the onions soften and start to caramelize. Season with black pepper.
Stir in the sliced shallots, garlic, thyme, sage, and red chili flakes. Nestle the short ribs into the onion mixture, making sure they are partially submerged in the onions.
Pour 6 cups of chicken broth over the short ribs, enough to nearly cover the meat. Stir in the tamari or soy sauce. Add the bay leaves and star anise for additional depth of flavor. Cover the pot with a lid.
Transfer the Dutch oven to the preheated oven and roast for 2 1/2 to 3 hours, or until the short ribs are tender and falling off the bone. In the last 1-2 hours of cooking, add the baby carrots.
Once the short ribs are tender, remove the Dutch oven from the oven. Discard the bay leaves and star anise. Remove the bones from the short ribs and shred the meat using two forks. Return the shredded meat to the soup and keep warm on low heat. Adjust the seasoning with salt if needed.
While the soup simmers, preheat the oven to 425°F (220C). Arrange the French bread slices on a baking sheet and toast for 10 minutes until crispy.
Switch the oven to broil. Top each slice with a generous amount of shredded Gruyère cheese and broil for 2-3 minutes, until the cheese is bubbly and golden. Watch carefully to avoid burning.
Ladle the rich short rib and onion soup into bowls. Top each bowl with a cheesy Gruyère toast slice. Garnish with fresh thyme and black pepper, and serve immediately.