docs: def create(self, group_view=False):
          """ Update with current tools """
          self.add_handlers({'^T': self.quit, '^Q': self.quit})
          self.add(npyscreen.TitleText,
                   name='Select which tools to ' + self.action['action'] + ':',
                   editable=False)
          togglable = ['remove']
          if self.action['action_name'] in togglable:
              self.cur_view = self.add(npyscreen.TitleText,
                                       name='Group view:',
                                       value='all groups', editable=False,
                                       rely=3)
              self.add_handlers({'^V': self.toggle_view})
              i = 5
          else:
              i = 4
  
          if self.action['action_name'] == 'start':
              response = self.tools_inst.inventory(choices=['repos',
                                                            'tools',
                                                            'built',
                                                            'running'])
          else:
              response = self.tools_inst.inventory(choices=['repos', 'tools'])
          if response[0]:
              inventory = response[1]
  
              repos = inventory['repos']
  
              # dict has repo as key and list of core/non-core tools as values
              has_core = {}
              has_non_core = {}
  
              # find all tools that are in this repo
              # and list them if they are core
              for repo in repos:
                  core_list = []
                  ncore_list = []
  
                  # splice the repo names for processing
                  if (repo.startswith('http')):
                      repo_name = repo.rsplit('/', 2)[1:]
                  else:
                      repo_name = repo.split('/')
  
                  for tool in inventory['tools']:
                      tool_repo_name = tool.split(':')
  
                      # cross reference repo names
                      if (repo_name[0] == tool_repo_name[0] and
                              repo_name[1] == tool_repo_name[1]):
                          # check to ensure tool not set to locally active = no
                          # in vent.cfg
                          externally_active = False
                          vent_cfg_file = self.api_action.vent_config
                          vent_cfg = Template(vent_cfg_file)
                          tool_pairs = vent_cfg.section('external-services')[1]
                          for ext_tool in tool_pairs:
                              if ext_tool[0].lower() == inventory['tools'][tool]:
                                  try:
                                      ext_tool_options = json.loads(ext_tool[1])
                                      loc = 'locally_active'
                                      if (loc in ext_tool_options and
                                              ext_tool_options[loc] == 'no'):
                                          externally_active = True
                                  except Exception as e:
                                      self.logger.error("Couldn't check ext"
                                                        ' because: ' + str(e))
                                      externally_active = False
                          manifest = Template(self.api_action.manifest)
                          if not externally_active:
                              instance_num = re.search(r'\d+$',
                                                       manifest.option(
                                                           tool, 'name')[1])
                              if not instance_num:
                                  ncore_list.append(tool)
                              # multiple instances share same image
                              elif self.action['action_name'] not in self.no_instance:
                                  ncore_list.append(tool)
  
                  has_core[repo] = core_list
                  has_non_core[repo] = ncore_list
  
              for repo in repos:
                  self.tools_tc[repo] = {}
  
                  if self.action['cores']:
                      # make sure only repos with core tools are displayed
                      if has_core.get(repo):
                          self.repo_widgets[repo] = self.add(npyscreen.TitleText,
                                                             name='Plugin: '+repo,
                                                             editable=False,
                                                             rely=i, relx=5)
  
                          for tool in has_core[repo]:
                              tool_name = tool.split(':', 2)[2].split('/')[-1]
                              if tool_name == '':
                                  tool_name = '/'
                              self.tools_tc[repo][tool] = self.add(
                                  npyscreen.CheckBox, name=tool_name,
                                  value=True, relx=10)
                              i += 1
                          i += 3
                  else:
                      # make sure only repos with non-core tools are displayed
                      if has_non_core.get(repo):
                          self.repo_widgets[repo] = self.add(npyscreen.TitleText,
                                                             name='Plugin: '+repo,
                                                             editable=False,
                                                             rely=i, relx=5)
  
                          for tool in has_non_core[repo]:
                              tool_name = tool.split(':', 2)[2].split('/')[-1]
                              if tool_name == '':
                                  tool_name = '/'
                              self.tools_tc[repo][tool] = self.add(
                                  npyscreen.CheckBox, name=tool_name,
                                  value=True, relx=10)
                              i += 1
                          i += 3
          return