Voice Actions for Chrome allows you to control your browser by talking to it. In addition to searching, it allows you to look up web pages, maps, directions, and music with spoken commands. It can also help you find a specific tab if you have too many open.
I started this project in spring of 2013 after the experimental Chrome Speech API (now Web Speech API) was announced. My goal at the time was to copy the experience of the Android 2.x Voice Actions app. It used Android 2 icons, and later some Android 3 icons, but otherwise tried to conform to Chrome UI conventions. Speech recognition was not yet allowed in extension pop-ups, so I experimented with a variety of approaches. Funnily, a 24-hour period of being stuck in Chicago O'Hare airport gave me some unexpected time to prototype various approaches. I eventually shipped an implementation that created an inactive tab to process speech recognition and updated the pop-up via the extension message-passing API. The extension was initially distributed through Chrome's non-web-store update mechanism because the API was still experimental, thus not allowed in the Chrome Web Store, but it was moved to the Chrome Web Store as soon as it was possible.
In fall of 2019, I began visually redesigning the extension to adhere to Material Design guidelines, using a mix of Google's own Material icons and styles, my MaterialZ library, and custom icons I designed to fit with the design language. The redesign also included a new dark theme matched to Chrome's (as well as a slew of other features and quality-of-life improvements). The update rolled out at the beginning of February 2020, alongside a much-needed redesign of the banner graphic, which also took inspiration from Material app icons.
In early 2023, I finally implemented a long-time plan to overhaul the command handler (parts of which had remained largely unchanged since the original) to use an organized series of action regular expressions and handler functions. That laid the groundwork for the long-requested option to let users add custom commands.