HKUDS/nanobot · error · TuiUnavailableError

no native TUI archive is published for nanobot {__version__}

Error message

no native TUI archive is published for nanobot {__version__} on this platform; current source installs must be editable and keep their checkout and Bun available, while released packages need a matching GitHub release archive; use `nanobot agent --classic` if intentional

What it means

Error "no native TUI archive is published for nanobot {__version__} on this platform; current source installs must be editable and keep their checkout and Bun available, while released packages need a matching GitHub release archive; use `nanobot agent --classic` if intentional" thrown in HKUDS/nanobot.

Source

Thrown at nanobot/cli/tui_launcher.py:196

    source_dir = _source_checkout_tui_dir()
    if source_dir is not None:
        bun = shutil.which("bun")
        if not bun:
            raise TuiUnavailableError(
                "this source checkout requires Bun to run its matching TUI; "
                "install Bun, then run `nanobot agent` again"
            )
        return _resolve_source_tui_command(source_dir, bun)

    packaged = Path(__file__).resolve().parents[1] / "tui" / "bin" / asset
    if packaged.is_file():
        return [str(packaged)]

    downloaded = _download_release_tui(asset)
    if downloaded is not None:
        return [str(downloaded)]

    raise TuiUnavailableError(
        f"no native TUI archive is published for nanobot {__version__} on this platform; "
        "current source installs must be editable and keep their checkout and Bun available, "
        "while released packages need a matching GitHub release archive; use "
        "`nanobot agent --classic` if intentional"
    )


def _source_checkout_tui_dir() -> Path | None:
    """Return this checkout's TUI source, never a neighboring unrelated directory."""
    return _tui_source_dir(Path(__file__).resolve().parents[2])


def _tui_source_dir(project_root: Path) -> Path | None:
    project_root = project_root.resolve(strict=False)
    source_dir = project_root / "tui"
    if (project_root / "pyproject.toml").is_file() and (source_dir / "package.json").is_file():
        return source_dir
    return None

View on GitHub (pinned to 42f37dc4c0)

When it happens

Trigger: Thrown at nanobot/cli/tui_launcher.py:196 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26). Data as JSON: /api/errors/37b3e558c30c88de. Report an issue: GitHub.