skip to content
OpenClaw, Hermes & droid

Your tools

OpenClaw, Hermes & droid

Three supported agents Conifer knows how to wire but does not install for you.


These three are in the agent catalog with status: supported, so Conifer ships a full spec for each: the wire it speaks, the config that points it at your machine, and the context floor below which it will not work. What Conifer does not ship is an install recipe — each is installed the upstream way, and conifer agents show says so plainly instead of running someone else’s installer behind your back.

The context floor matters here

All three send a large tool preamble before your first word, so a small local model has no room left to answer. Conifer records the floor each one needs:

AgentWireMinimum context
OpenClawAnthropic Messages8,750 tokens
droidAnthropic Messages13,500 tokens
HermesOpenAI chat18,000 tokens

Pick a model whose window clears the floor with room for the conversation.

OpenClaw

Anthropic Messages wire. Needs Node 22.19 or newer — the common 22.14 default fails. Install it from docs.openclaw.ai.

openclaw.json
{
  "models": { "providers": { "conifer": {
    "baseUrl": "http://127.0.0.1:8080",
    "apiKey": "conifer-proxy",
    "api": "anthropic-messages",
    "request": { "allowPrivateNetwork": true },
    "models": [{ "id": "<model-name>", "name": "Conifer", "contextWindow": 32768, "maxTokens": 8192 }]
  } } },
  "agents": { "defaults": {
    "model": { "primary": "conifer/<model-name>" }
  } }
}
terminal
export OPENCLAW_CONFIG_PATH=/path/to/openclaw.json
openclaw chat --local

Set contextWindow to your model’s real window. OpenClaw sizes its own truncation off the number you give it, so an invented one produces truncated turns rather than an error.

Hermes

OpenAI chat wire, from Nous Research. The upstream installer builds from source and pulls ffmpeg through Homebrew, which is why Conifer ships no recipe for it — run it yourself from the Hermes docs.

config.yaml
model:
  provider: "custom"
  base_url: "http://127.0.0.1:8080/v1"
  default: "<model-name>"
terminal
export HERMES_MANAGED_DIR=/path/to/config-dir   # holds config.yaml
hermes

HERMES_MANAGED_DIR names the directory holding config.yaml, not the file. This wire keeps the /v1 suffix.

Factory droid

Anthropic Messages wire. Install from docs.factory.ai/cli. droid takes its settings as a launch flag rather than an environment variable:

conifer-droid-settings.json
{
  "customModels": [
    {
      "provider": "anthropic",
      "baseUrl": "http://127.0.0.1:8080",
      "apiKey": "conifer-proxy",
      "model": "<model-name>",
      "displayName": "Conifer"
    }
  ],
  "model": "custom:Conifer-0"
}
terminal
droid --settings /path/to/conifer-droid-settings.json

"model": "custom:Conifer-0" selects the first entry of customModels by its display name and index. Rename the entry and that selector has to change with it.

Or let the CLI write these

Every config on this page is the one Conifer generates itself. If you would rather not hand-maintain them, the CLI holds the same specs — see the agent catalog for what it knows and how to inspect it.