# NousResearch/hermes-agent · Add hermes gateway list command for profiles

## Open now

- Nothing open on GitHub.

These members concern adding a new \`hermes gateway list\` command that displays gateway status across all profiles. The work includes a feature request and at least two implementation attempts.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #21225. Verify it addresses your case.
- **Recommended:** read PR #21225 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-21225`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #19127: \[Feature\]: \`hermes gateway list\` — show all profiles and their gateway status

## Prior & competing PRs

- **#21225: feat(gateway): add hermes gateway list to show all profiles' status (salvage #19129)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `hermes_cli/gateway.py`, `hermes_cli/main.py`
  - fix hunks:
  - `hermes_cli/gateway.py`

    ```diff
    @@ -830,6 +830,46 @@ def _print_other_profiles_gateway_status() -> None:
             pass
     
     
    +def _gateway_list() -> None:
    +    """List all profiles and their gateway running status.
    +
    +    Provides a single-command overview of every known profile and whether
    +    its gateway is currently running, so multi-profile users don't have to
    +    check each profile individually.
    +    """
    +    try:
    +        from hermes_cli.profiles import list_profiles, get_active_profile_name
    +    except Exception:
    +        print("Unable to list profiles.")
    +        return
    +
    +    profiles = list_profiles()
    +    if not profiles:
    +        print("No profiles found.")
    +        return
    +
    +    current = get_active_profile_name()
    +
    +    print("Gateways:")
    +    for prof in profiles:
    +        marker = "✓" if prof.gateway_running else "✗"
    +        label = prof.name
    +        if prof.name == current:
    +            label += " (current)"
    +        parts = [f"  {marker} {label:<24s}"]
    +        if prof.gateway_running:
    +            try:
    +                from gateway.status import get_running_pid
    +                pid = get_running_pid(prof.path / "gateway.pid", cleanup_stale=False)
    +                if pid:
    +                    parts.append(f"PID {pid}")
    +            except Exception:
    +                pass
    +        else:
    +            parts.append("not running")
    +        print(" — ".join(parts))
    +
    +
     def kill_gateway_processes(force: bool = False, exclude_pids: set | None = None,
                                all_profiles: bool = False) -> int:
         """Kill any running gateway processes. Returns count killed.
    ```

    ```diff
    @@ -4798,6 +4838,9 @@ def _gateway_command_inner(args):
             # Show other profiles' gateway status for multi-profile awareness
             _print_other_profiles_gateway_status()
     
    +    elif subcmd == "list":
    +        _gateway_list()
    +
         elif subcmd == "migrate-legacy":
             # Stop, disable, and remove legacy Hermes gateway unit files from
             # pre-rename installs (e.g. hermes.service). Profile units and
    ```
  - `hermes_cli/main.py`

    ```diff
    @@ -8690,6 +8690,9 @@ def main():
             help="Target the Linux system-level gateway service",
         )
     
    +    # gateway list
    +    gateway_subparsers.add_parser("list", help="List all profiles and their gateway status")
    +
         # gateway setup
         gateway_subparsers.add_parser("setup", help="Configure messaging platforms")
     
    ```
- **#19129: feat(gateway): add \`hermes gateway list\` to show all profiles' gateway status**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`

## Fix status

- Merged to main in PR #21225 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-05-07`.
