# Ouroboros Runtime Guide: Hermes Agent

This guide covers how to use Ouroboros with the [Hermes Agent](https://github.com/NousResearch/hermes-agent) as an execution runtime.

## Installation

To use Hermes with Ouroboros, ensure you have the Hermes CLI installed (v0.8.0 or higher):

```bash
# Verify installation
hermes version
```

## Setup

Run the Ouroboros setup command and select the `hermes` runtime:

```bash
ouroboros setup --runtime hermes
```

This will:
1.  Configure `~/.ouroboros/config.yaml` to use the `hermes` backend.
2.  Install Ouroboros skills into `~/.hermes/skills/autonomous-ai-agents/ouroboros/`.
3.  Register the Ouroboros MCP server in `~/.hermes/config.yaml`.

## Usage

Once configured, Ouroboros will use Hermes as the orchestrator runtime backend. This does not rewrite `llm.backend`; interview, ambiguity scoring, and other LLM-only flows continue to use the configured LLM adapter.

### Executing Workflows

```bash
ouroboros run seed.yaml --runtime hermes
```

### Scripting with Hermes

You can use the `ooo` command prefix inside a Hermes session to trigger Ouroboros skills:

```bash
hermes chat -q "ooo interview 'Build a new CLI tool'"
hermes chat -q "ooo run seed.yaml"
```

Hermes uses the shared stateless `ouroboros.router` resolver for exact `ooo`
and `/ouroboros:` skill dispatch. Adding or changing a command only requires
updating the relevant `SKILL.md` frontmatter; the runtime keeps logging,
message assembly, and MCP invocation local. See
[Shared `ooo` Skill Dispatch Router](../guides/ooo-skill-dispatch-router.md).

## Configuration

You can customize the Hermes CLI path in `~/.ouroboros/config.yaml`:

```yaml
orchestrator:
  runtime_backend: hermes
  hermes_cli_path: ~/.local/bin/hermes
```

## Technical Details

### Session Management

Ouroboros tracks Hermes sessions using the `session_id` emitted by the Hermes CLI in quiet mode (`-Q`). This allows Ouroboros to resume conversations using the `--resume` flag.

### Output Parsing

Ouroboros parses the Hermes CLI output to extract the final response and session metadata. It automatically strips reasoning blocks and banners when running in programmatic mode.
