I'm not sure how to use IB's TWS to the fullest as I mainly use the API. The procedure would consist of two steps. In the API I would define an instrument and request contract details. The definition of the instrument would on purpose be a bit wide, such that I get many results (e.g. only a symbol name, plus currency, and security type). When you submit a request there is a setting which allows you to include expired contracts in the list you are asking for. Recently IB created a new command specifically for getting information on option chains. IB's server returns a full list of all available contracts that match your criteria. The second step would then be to download all historical data for each of the contracts. You may have to throttle your download requests to avoid that IB will throttle it. I have not yet used this approach for options, but it works fine for futures.
I surely don't use the TWS to its fullest. At times, it's a bit overwhelming. Thanks for the directions. I'll save the info for a time, if it occurs, that I need some historical quotes.