From 37961feb21208153bab745a703ef08f3f2f83725 Mon Sep 17 00:00:00 2001 From: Zhengshou Lai Date: Sat, 25 Jul 2026 00:42:56 +0800 Subject: [PATCH] feat: add myagents backends command (list supported agent backends) --- myagents/cli.py | 9 +++++++++ tests/test_cli.py | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/myagents/cli.py b/myagents/cli.py index b6fb813..9a74cb2 100644 --- a/myagents/cli.py +++ b/myagents/cli.py @@ -48,6 +48,15 @@ def cli(ctx: click.Context) -> None: ctx.exit(0) +@cli.command("backends") +def backends_cmd() -> None: + """List available agent backends (one per line, for machine consumption).""" + from myagents.launcher import _BACKENDS + + for name in _BACKENDS: + click.echo(name) + + cli.add_command(build_cli("claude"), name="claude") cli.add_command(build_cli("kimi"), name="kimi") cli.add_command(build_cli("codex"), name="codex") diff --git a/tests/test_cli.py b/tests/test_cli.py index 4384ff5..3b08818 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -40,6 +40,23 @@ class TestMyagentsHelp: assert result.exit_code == 0 assert "Usage:" in result.output + def test_backends_lists_all(self) -> None: + """``myagents backends`` lists all supported agent backends.""" + runner = CliRunner() + result = runner.invoke(cli, ["backends"]) + assert result.exit_code == 0 + assert "claude" in result.output + assert "kimi" in result.output + assert "codex" in result.output + assert "hermes" in result.output + + def test_help_lists_backends(self) -> None: + """--help should list backends subcommand.""" + runner = CliRunner() + result = runner.invoke(cli, ["--help"]) + assert result.exit_code == 0 + assert "backends" in result.output + class TestClaudeSubcommand: """Tests for ``myagents claude``."""