def METHOD_NAME(**options):
    with fs.cd(options["project_dir"]):
        platform = None
        project_options = {}
        try:
            project_options = get_project_options(options["environment"])
            if "platform" in project_options:
                platform = PlatformFactory.new(project_options["platform"])
        except NotPlatformIOProjectError:
            pass
        options = apply_project_monitor_options(options, project_options)
        register_filters(platform=platform, options=options)
        options["port"] = SerialPortFinder(
            board_config=platform.board_config(project_options.get("board"))
            if platform and project_options.get("board")
            else None,
            upload_protocol=project_options.get("upload_protocol"),
            ensure_ready=True,
        ).find(initial_port=options["port"])
        if options["menu_char"] == options["exit_char"]:
            raise exception.UserSideException(
                "--exit-char can not be the same as --menu-char"
            )
        # check for unknown filters
        if options["filters"]:
            known_filters = set(get_available_filters())
            unknown_filters = set(options["filters"]) - known_filters
            if unknown_filters:
                options["filters"] = list(known_filters & set(options["filters"]))
                click.secho(
                    ("Warning! Skipping unknown filters `%s`. Known filters are `%s`")
                    % (", ".join(unknown_filters), ", ".join(sorted(known_filters))),
                    fg="yellow",
                )
        start_terminal(options)