diff --git a/arcade/arcade/cli/display.py b/arcade/arcade/cli/display.py index 89027a47..b9aac4cd 100644 --- a/arcade/arcade/cli/display.py +++ b/arcade/arcade/cli/display.py @@ -16,6 +16,10 @@ def display_tools_table(tools: list[ToolDefinition]) -> None: """ Display a table of tools with their name, description, package, and version. """ + if not tools: + console.print("No tools found.", style="bold") + return + table = Table(show_header=True, header_style="bold magenta") table.add_column("Name") table.add_column("Description") diff --git a/arcade/arcade/cli/utils.py b/arcade/arcade/cli/utils.py index 6bc8aa17..86d68598 100644 --- a/arcade/arcade/cli/utils.py +++ b/arcade/arcade/cli/utils.py @@ -198,9 +198,14 @@ def get_tools_from_engine( client = Arcade(api_key=config.api.key, base_url=base_url) tools = [] - page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN) - for tool in page_iterator: - tools.append(ToolDefinition.model_validate(tool.model_dump())) + try: + page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN) + for tool in page_iterator: + tools.append(ToolDefinition.model_validate(tool.model_dump())) + except APIConnectionError: + console.print( + f"❌ Can't connect to Arcade Engine at {base_url}. (Is it running?)", style="bold red" + ) return tools