All plugins

cdp-manager

Local Chrome CDP debug ports in the status bar (probe, launch, stop, recheck) plus a managed port Hermes keeps alive and the `cdp` agent tool, which also detects and repairs a Chrome profile-picker launch (wedged/unwedge). Disclosure: launches local Chrome on 127.0.0.1 only, with per-port profiles under the local app-data directory, and closes it with a clean Browser.close; state lives in the plugin's own config file. Windows only.

apoapostolov48Desktopv1.0.2Updated 1 month ago

About

Local Chrome CDP debug ports in the status bar (probe, launch, stop, recheck) plus a managed port Hermes keeps alive and the `cdp` agent tool, which also detects and repairs a Chrome profile-picker launch (wedged/unwedge). Disclosure: launches local Chrome on 127.0.0.1 only, with per-port profiles under the local app-data directory, and closes it with a clean Browser.close; state lives in the plugin's own config file. Windows only.

CDP Manager

Statusbar plugin plus cdp agent tool for managing local Chrome DevTools
Protocol (CDP) debug ports on 127.0.0.1.

What You Can Do

  • See every CDP port's health in the status bar: normal when down, bold when up, amber on issues, red when a port needs a reboot.
  • Launch, stop, and recheck each port from the dialog, with a Windowed or Headless launch mode per port. Changing the mode on a live port restarts it in the new mode.
  • Mark one port as managed: a backend supervisor keeps it up, auto-starting it when down and force-rebooting it after repeated launch failures.
  • Pick a profile per port: Hermes (isolated), a personal Chrome profile (your cookies, when that Chrome is closed), or Guest (ephemeral). The choice is remembered and reused on restart.
  • Use the cdp agent tool from chat (status, launch, stop, recheck, prefer, wedged, unwedge) with no shell. It targets the managed port when none is given. Launches always pass a startup URL, so an isolated profile never boots into Chrome's profile picker; wedged detects that stuck state and unwedge repairs it with a stop and relaunch.

Install

hermes plugins install apoapostolov/hermes-agent-awesome-plugins/public/cdp-manager

Then enable it:

hermes plugins enable cdp-manager --no-allow-tool-override

The desktop dialog needs a full Hermes quit and reopen the first time (the
Python backend routes mount with the dashboard server). The cdp tool is
usable from the next session after enabling.

Files

  • desktop/plugin.js - statusbar chip plus dialog
  • dashboard/plugin_api.py - FastAPI routes at /api/plugins/cdp-manager/
  • cdp_core.py - probe, launch, stop, health, supervisor
  • cdp_tools.py plus schemas.py - the cdp agent tool

Disclosure: this plugin launches local Chrome on 127.0.0.1 only, with
per-port profiles under the Hermes home directory, and closes it with a
clean Browser.close. A personal Chrome profile runs automation with your
cookies; pick it only when that Chrome is closed, and note one debug port
per profile. The supervisor only touches ports you explicitly
marked managed. State lives in the plugin's own config file. No Hermes
config writes, no credentials, no telemetry.

README from the reviewed commit b364f8d; it updates when the author re-pins.

More by apoapostolov

14 plugins by apoapostolov in the catalog.

apoapostolovbetter-capabilitiesDelete and package skills, browse their markdown files, and save per-profile on/off presets from one Settings page. Disclosure — deleting a skill from its page moves the skill folder out of `<HERMES_HOME>/skills` (on Windows to the Recycle Bin by running `powershell.exe`, elsewhere to `<HERMES_HOME>/better-capabilities-trash/`); applying a preset switches skills, toolsets and agent plugins on or off, including for other profiles the preset names.CommunityDesktop app48apoapostolovbetter-session-appearanceSet a color for each session and show an idle glyph to make rows easier to scan.CommunityDesktop app48apoapostolovdrag-to-pin-sessionPin or unpin sessions from their row with supported desktop SDK actions.CommunityDesktop app48apoapostolovhermes-jev-routingPer-turn model routing for the request that is about to go out. Jev reads the turn, picks the tier it deserves, and the plugin rewrites the provider request onto that model, including the reasoning level when the request carries one. Shadow by default, with notify, confirm and auto modes, a strip under the composer for the turn that was just routed, and a spend ledger. A pick on another provider is reported rather than sent, because a plugin cannot open a second provider client. Disclosure — once a routing JSON is configured, every turn (shadow mode included) sends the current message, up to 4,000 characters of recent user/assistant turns, the active model name, an estimated context size and the spend/budget snapshot to TypeSafe (api.typesafe.ai, endpoint overridable in that JSON), and the jev_route tool and /jev-routing route send their text the same way; in auto mode it rewrites the model and reasoning level on outgoing requests, and in Hermes Desktop the auto mode and the approve row also switch the session's model, including onto another provider (core's expensive-model confirmation is shown to the user, never answered automatically).Communitymodels48