Skip to content

Hermes Integration Reference

Configuration details, troubleshooting, and advanced topics for the Hermes integration

Configuration Reference

SettingWhereRequiredDescription
memory.providerHermes configYesSet to byterover to activate the provider

Context-tree directory: $HERMES_HOME/byterover — profile-scoped, created automatically on first use. All brv commands run against the .brv/ context tree inside this directory.

Troubleshooting

brv_query or brv_curate returns [error]

Cause: The brv binary cannot be found, or the ByteRover daemon is not running.

**Steps to diagnose:**

1. Check that `brv` is installed and in your PATH:
   ```bash
   which brv
   brv --version
   ```

2. If `brv` is missing, install it:
   ```bash
   curl -fsSL https://byterover.dev/install.sh | sh
   # or
   npm install -g byterover-cli
   ```
   Then restart your shell (or run the `export PATH` line the installer prints).

3. If `brv` is installed but the error persists, check that the daemon is running:
   ```bash
   brv status
   ```
   If it is not running, any `brv` command will start it automatically on the next call.

4. If `brv` is installed in a non-standard location (e.g. `~/.brv-cli/bin/`, `~/.npm-global/bin/`), the plugin searches these paths automatically. Confirm the binary resolves:
   ```bash
   ls ~/.brv-cli/bin/brv
   ```

Memory provider not active / brv tools not available to agent

Cause: The ByteRover provider is not selected in Hermes config.

**Solution:** Run the interactive setup or set it manually:

```bash
hermes memory setup
# — or —
hermes config set memory.provider byterover
```

Verify the active provider:

```bash
hermes config get memory.provider
```

Expected output: `byterover`

brv_query times out or returns no results

Cause: The query exceeded the 10-second timeout, or the context tree is empty.

**Solution:**

1. Check that an LLM provider is configured for ByteRover (required for query and curation):
   ```bash
   brv providers list
   ```
   If no provider is connected, add one:
   ```bash
   brv providers connect byterover        # Free tier, requires ByteRover login
   brv providers connect anthropic --api-key sk-ant-...
   ```

2. If the context tree is empty (new project), seed it first:
   ```bash
   cd $HERMES_HOME/byterover
   brv curate "Initial project context: <description>"
   ```

brv_curate returns [error] or takes too long

Cause: Curation has a 120-second timeout. Failures are usually due to a missing LLM provider or network issues when using a cloud provider.

**Solution:**

1. Verify your LLM provider is reachable:
   ```bash
   brv providers list
   ```

2. Run a manual curation to see the full error output:
   ```bash
   cd $HERMES_HOME/byterover
   brv curate "test"
   ```

ByteRover CLI is missing

Cause: The brv command is not in your PATH.

**Solution:** Install the ByteRover CLI:

```bash
curl -fsSL https://byterover.dev/install.sh | sh
# or
npm install -g byterover-cli
```

See the full [installation guide](/index) for platform-specific instructions.

File Reference

PathDescription
~/.hermes/configHermes configuration (memory.provider: byterover)
~/.hermes/.envEnvironment variables (BRV_API_KEY)
$HERMES_HOME/byterover/ByteRover working directory (profile-scoped)
$HERMES_HOME/byterover/.brv/ByteRover context tree storage
$HERMES_HOME/byterover/.brv/context-tree/Hierarchical knowledge files

Advanced

How it works: provider lifecycle

The ByteRover memory provider hooks into the Hermes agent loop at four points:

* **Before each LLM call** (`prefetch`) — Runs `brv query` with the user's message (10s timeout) and injects the results as additional context into the system prompt.
* **After each turn** (`sync_turn`) — Runs `brv curate` in the background (non-blocking, 120s timeout) to extract and store valuable knowledge from the conversation turn.
* **Before context compression** (`on_pre_compress`) — Extracts insights from the full message history before it is summarized, ensuring nothing is lost during compaction.
* **On built-in memory writes** (`on_memory_write`) — Mirrors writes to Hermes' built-in memory store into the ByteRover context tree automatically.

The `brv` binary is resolved once per session (thread-safe cache) by searching your `PATH` first, then checking well-known install locations: `~/.brv-cli/bin/`, `/usr/local/bin/`, `~/.npm-global/bin/`.

Migrating existing Hermes memory data

If you have existing Hermes session notes or memory files, migrate them to the ByteRover context tree:

```bash
cd $HERMES_HOME/byterover
brv curate "curate the data in the folder ~/.hermes/memory by reviewing each file one by one."
```

ByteRover reads each file, extracts valuable insights, and organizes them into the context tree:

```
update .brv/context-tree/architecture/api_design/auth_flow.md
update .brv/context-tree/decisions/database_schema.md
✓ Context curated successfully.
```

TIP

You can point to any directory that contains .md memory files.

Uninstalling / switching providers

To stop using ByteRover, switch to a different provider or disable memory:

```bash
hermes memory setup
# — or —
hermes config unset memory.provider
```

The `.brv/` context tree in `$HERMES_HOME/byterover/` is preserved and can be reactivated at any time.

Next Steps