> ## Documentation Index
> Fetch the complete documentation index at: https://docs.triw.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Hermes Agent

> Install Hermes Agent and add Triw as a provider in config.yaml.

Hermes Agent is Nous Research's terminal agent. Providers are declared in `~/.hermes/config.yaml`, either through the dashboard's Models page or by editing the file.

## Requirements

| Item | Note |
| - | - |
| OS | macOS, Linux, Windows |
| Python | bundled by the installer; no manual setup needed |

## Install

Use the desktop installer from [hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com/docs/getting-started/installation) for macOS or Windows, or install the CLI:

```bash Linux / macOS / WSL2 theme={null}
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
```

```powershell Windows theme={null}
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
```

```bash theme={null}
hermes --version
```

On an existing install, `hermes update` keeps the CLI and config schema current.

## Configure

Add a provider entry and point the main model at it:

```yaml ~/.hermes/config.yaml theme={null}
providers:
  triw:
    api: https://router.triw.io/v1
    api_key: sk-...

model:
  provider: triw
  default: claude-sonnet-4-5
  base_url: https://router.triw.io/v1
  api_mode: chat_completions
```

```bash theme={null}
export TRIW_API_KEY="sk-..."   # then use api_key: ${TRIW_API_KEY} if you prefer
```

Field notes:

| Field | Meaning |
| - | - |
| `providers.<name>.api` | Base URL of the endpoint |
| `providers.<name>.api_key` | Credential; literal or `${ENV_VAR}` |
| `providers.<name>.extra_headers` | Optional headers added to every request |
| `model.provider` | Provider id used for new sessions |
| `model.api_mode` | `chat_completions` for `/v1/chat/completions` |

Legacy configs used a top-level `custom_providers:` list with `base_url`; it still loads and is migrated on update.

## Verify

```bash theme={null}
hermes "reply with the single word: ready"
```

Then check Triw **Logs**. Inside a session, `/model` switches models and shows which provider serves them.

## Troubleshooting

| Symptom | Cause | Fix |
| - | - | - |
| `401` | Key not visible to the process | Export the variable in the launching shell, or inline the key |
| Model list empty | Provider not selected | Set `model.provider: triw` |
| Anthropic-style stream breaks | `api_mode` wrong | Use `chat_completions` for `/v1/*` |
| Config ignored | Editing a different profile | Confirm `~/.hermes/config.yaml` is the active profile |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.