make remote browser listing more simpler when giving --browser ip only shows remote browsers
Testing / test (push) Successful in 22s

This commit is contained in:
2026-05-02 12:42:21 +02:00
parent 22f39a1a77
commit f1734cd2c1
2 changed files with 65 additions and 5 deletions
+27 -3
View File
@@ -31,6 +31,8 @@ from browser_cli.client import (
active_browser_targets,
display_browser_name,
save_remote_token,
remote_target_for_alias,
remote_browser_targets,
)
from browser_cli.platform import install_base_dir, is_windows
from browser_cli.registry import load_registry
@@ -242,12 +244,34 @@ def clients_group(ctx):
all_clients = []
browser_alias = (ctx.obj or {}).get("browser")
remote = (ctx.obj or {}).get("remote") or os.environ.get("BROWSER_CLI_REMOTE")
if remote:
token = (ctx.obj or {}).get("token") or os.environ.get("BROWSER_CLI_TOKEN")
if not remote and browser_alias:
# --browser <host> without --remote: resolve host alias to a remote endpoint,
# then show ALL clients from that remote (not just the one resolved profile).
resolved = remote_target_for_alias(browser_alias)
if resolved:
resolved_token = token or resolved.token
try:
targets = remote_browser_targets(resolved.remote, resolved_token)
except (BrowserNotConnected, RuntimeError) as e:
console.print(f"[red]Error:[/red] {e}")
sys.exit(1)
for target in targets:
try:
result = send_command("clients.list", profile=target.profile, remote=resolved.remote, token=resolved_token)
for c in (result or []):
c["profile"] = target.display_name
all_clients.append(c)
except (BrowserNotConnected, RuntimeError):
continue
elif remote:
try:
result = send_command("clients.list", profile=(ctx.obj or {}).get("browser"))
result = send_command("clients.list", profile=browser_alias, remote=remote, token=token)
for c in (result or []):
c["profile"] = c.get("profile") or (ctx.obj or {}).get("browser") or "remote"
c["profile"] = c.get("profile") or browser_alias or "remote"
all_clients.append(c)
except (BrowserNotConnected, RuntimeError) as e:
console.print(f"[red]Error:[/red] {e}")