camelAI Documentation

Coding Agents

Use Hermes Agent

Point Hermes Agent at camelStream for unlimited frontier intelligence

Hermes Agent can use any OpenAI-compatible /v1/chat/completions endpoint as a custom provider.

Providercustom:camel-stream
Modelauto
Base URLhttps://stream.camelai.com/v1
KeyCAMEL_API_KEY
Context window260K tokens guaranteed (see the fleet)

Hermes is a third-party agent. camelStream provides the model. Review the Hermes security policy before connecting a key.

1. Install Hermes

Terminal
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.zshrc

See the Hermes installation guide if you use bash or install from source.

2. Create a Stream key

Generate an API key in the Stream console. It is shown once. Put it in Hermes' env file, not in config.yaml.

~/.hermes/.env
CAMEL_API_KEY=qaml_live_...

3. Point Hermes at Stream

The fastest path is the built-in wizard, the same one OpenRouter documents:

Terminal
hermes model

Choose Custom endpoint, then enter:

FieldValue
URLhttps://stream.camelai.com/v1
API modeChat Completions
Keyyour CAMEL_API_KEY
Modelauto
Context length262144

Or add a named custom provider to ~/.hermes/config.yaml:

~/.hermes/config.yaml
custom_providers:
  - name: camel-stream
    base_url: https://stream.camelai.com/v1
    key_env: CAMEL_API_KEY
    api_mode: chat_completions
    models:
      auto:
        context_length: 262144

model:
  provider: custom:camel-stream
  default: auto
  context_length: 262144

4. Start and verify

Terminal
hermes chat --provider custom:camel-stream --model auto

In a session you can switch with /model custom:camel-stream:auto.

Terminal
hermes doctor

hermes doctor should see the custom provider. If auth fails, confirm CAMEL_API_KEY is in ~/.hermes/.env.

Subagents and one stream

To run Hermes on one stream, cap delegation so only one subagent runs at a time:

~/.hermes/config.yaml
delegation:
  max_concurrent_children: 1
  max_spawn_depth: 1
  orchestrator_enabled: false

Capping beats disabling subagents outright: subagents do useful work, like keeping the main agent's context compact, and a cap keeps that. A child still runs alongside its parent, so some queueing remains and subagent-heavy prompts run slower than on a multi-stream account.

If requests still get killed, you can also raise Hermes' timeouts so queued requests outlast the wait:

~/.hermes/.env
HERMES_API_TIMEOUT=3600
HERMES_API_CALL_STALE_TIMEOUT=3600
HERMES_STREAM_READ_TIMEOUT=3600
HERMES_STREAM_STALE_TIMEOUT=3600

This gives every request an hour to clear the queue. It's a backstop rather than a fix: the queue is just as long, and a genuine outage also looks like a hang for up to an hour.

Set the timeouts in .env, not per provider in config.yaml. Hermes normalizes named custom providers before some timeout lookups, so request_timeout_seconds and stale_timeout_seconds under custom_providers may not apply.

What's next?