Recipes

Local-first multi-agent studio wiring Hermes Agent into visual workflows with approval gates

Discovered from README cross-links · 2 days ago

Research & KnowledgeSoftware & DevOps

Self-hosted workspace that runs Hermes Agent and coding CLIs in one chat

What they did

They stood up Ekko Studio as a self-hosted web console (npm global install, then `ekko-studio-web start`) rather than the desktop build, so the backend would live on the same machine as their coding CLIs. In Agent Manager they registered Hermes Agent alongside the built-in Ekko Agent, then added Claude Code and Codex in scoped mode so each runner used the Studio-selected provider and model instead of the CLI's global config. From there they built a visual workflow: a research step, a coding step, and a review step, with a human approval gate inserted before the coding step so nothing touched the repo until they clicked through. They also opened a group-chat room so the Hermes profile and a coding agent could see the same conversation, and used the file browser and web terminal to inspect generated files and tool traces between runs. Skills were enabled selectively from the Skills browser, and usage and logs were checked after each run to see per-turn cost.

How it went

The workflow ran end to end locally: research output fed the coding step, the approval gate held the run until confirmed, and generated files were previewable in the workspace. Tool traces and per-turn usage made it easy to see where tokens went. Polish is good for a local tool, though the setup is configuration-heavy and the demo screenshots in the README use demo data, so real behavior depends on which CLIs are installed.

Worth knowing

Coding agents run on the machine hosting the Studio backend, so their CLIs must be installed there; Cursor, Antigravity, and ZCode need manual installation. Scoped versus global configuration changes which provider and model actually get used, and getting that wrong silently routes requests to the CLI's own config. The project was renamed from Hermes Studio/Hermes Web UI, so older docs and the legacy `hermes-web-ui` package may confuse setup. No auth hardening for exposing the web console beyond localhost is described here.

Wiring

Install with `npm install -g ekko-studio` and start the backend with `ekko-studio-web start`; the desktop and Docker builds bundle a Hermes runtime, while npm installs discover an existing Hermes installation. All agents share one catalog across single chat, group chat, and workflows. Coding agents execute on the Studio backend host, so their CLIs must be present there. Agent Manager handles installation and updates for npm-installable runners (Claude Code, Codex, Pi, Grok, OpenCode, DSH, Qwen Code, Kimi Code, CodeBuddy, Copilot CLI); Cursor, Antigravity, and ZCode are manual. Scoped mode isolates session config and lets supported runtimes use the Studio-selected provider/model; global mode uses the CLI's own configuration. Workflows chain agent steps and insert approval gates, and MCP servers plus platform channels connect external tools.

Try it yourself

Set up Ekko Studio locally as a self-hosted web console on this machine. Install it globally with npm, start the web server, and confirm the UI loads. Then register Hermes Agent in Agent Manager and add Claude Code and Codex in scoped mode so they inherit the Studio provider and model rather than their global CLI config. Build one visual workflow with three steps: research, code, review, with a human approval gate before the code step. Run it against a small task in this repo, show me the tool traces and per-turn usage, and list which CLIs were detected versus missing.

Source

Tools in this stack