hermes.el is an Emacs client for the Hermes AI agent. It turns each session into a plain Org buffer, with streaming responses, tool calls, background tasks, and subagents represented as Org structure rather than an opaque terminal UI.

Design§

Each turn is an Org heading with properties, so chats remain portable text files and edits survive across resumes. Tool output is rendered as Org subtrees with status keywords, inline diffs, and named blocks; images can be pasted or attached and render inline. Background prompts run in their own buffers, and subagent trees appear in place with their goals, thinking traces, tools, and results.

The client talks to Hermes over JSON-RPC 2.0 through the agent's tui_gateway. Models, toolsets, and session options can be changed interactively, and slash commands use tab completion.

Status§

The project works but is explicitly unstable and under active development. It requires Emacs 27.1+, a reachable Hermes agent, and an API key for the chosen provider. The repository documents the setup, keybindings, and optional Doom, Evil, and other modules.