code: def get_visible_commands_starting_with(ctx, starts_with):
      
      for c in ctx.command.list_commands(ctx):
          if c.startswith(starts_with):
              command = ctx.command.get_command(ctx, c)
              if not command.hidden:
                  yield command
docs: :param ctx: context associated with the parsed command
      :starts_with: string that visible commands must start with.
      :return: all visible (not hidden) commands that start with starts_with.