# Hermes Windows Ports: Hermes Agent plugin

> Answer "who holds this port" on Windows.

Canonical: https://hermeswatcher.com/plugins/hermes-windows-ports  
Tier: Community  
Official page (Nous Research): https://hermes-agent.nousresearch.com/docs/plugins/hermes-windows-ports  
Last updated in catalog: 2026-10-25

Answer "who holds this port" on Windows. win_port_owners reads the TCP and UDP owner tables through iphlpapi (the same rows netstat -ano prints, with the owning PID attached) and resolves each PID to its image name and path, returning one structured record per endpoint. Filters cover one port, several ports, a process substring, the protocol (tcp, udp or both), the TCP state (listen, established, any state name, or all; UDP rows report bound) and IPv6 inclusion, with a record cap and a per-process summary of the rows returned. Built for the failure mode that stalls agents on Windows: a gateway, backend or bridge that cannot bind, where the error names a port but not the process holding it. netstat -ano prints columns, not fields, and its PID still needs a second command (tasklist, or a PowerShell round-trip) to become an image name; this tool is one in-process call instead of a shell parse plus a join, with no child process and no dependency on PowerShell being installed or allowed by execution policy. A protected process whose image cannot be queried keeps its PID and reports a null process name instead of failing the call.

## Good to know before installing

The tool reports the local and remote addresses, ports, PIDs and process image paths that netstat -ano and Task Manager already show, and those values reach the model; treat the output like any other local diagnostic listing. Read-only: no socket is opened, bound or connected, the only process access is QueryFullProcessImageName with PROCESS_QUERY_LIMITED_INFORMATION to read an image name, and there is no memory reading, no handle inheritance and no injection. Stdlib-only (ctypes): no Python dependencies, no child processes, no network calls, no file writes, no self-update. Windows only.

From the plugin's catalog listing.

## How to install

1. Install it. Hermes asks for any API keys it needs, then asks whether to turn it on.

```bash
hermes plugins install hermes-windows-ports
```

2. Said no? Turn it on later:

```bash
hermes plugins enable hermes-windows-ports
```

3. Restart Hermes so it loads the plugin.

Some plugins also need a sign-in or settings: see the official page. Memory plugins ask whether to become your memory provider instead. Steps follow the official plugins guide: https://hermes-agent.nousresearch.com/docs/user-guide/features/plugins

## Facts

- Category: Coding & developer tools
- Maintained by: Yicheng-Mark (Community)
- Needs: No API keys declared
- Adds tools: `win_port_owners`
- Works on: windows
- Requires Hermes: `>=0.21.4`
- Version: 0.1.0
- In the catalog since: 2026-10-23, updated 2026-10-25

## Links

- [Full setup and settings (official page)](https://hermes-agent.nousresearch.com/docs/plugins/hermes-windows-ports)
- [Source code](https://github.com/Yicheng-Mark/hermes-windows-plugins/tree/main/windows-ports)
- [All plugins](https://hermeswatcher.com/plugins.md)

---

HermesWatcher is an independent guide. It is not affiliated with or endorsed by Nous Research. The [official Hermes Agent documentation](https://hermes-agent.nousresearch.com/docs) and [repository](https://github.com/NousResearch/hermes-agent) from Nous Research are the authority; each page here lists the official sources it was written from. If this site and the official docs disagree, trust the official docs. Index for agents: https://hermeswatcher.com/llms.txt
