Hermes & Honcho

Yesterday, while reviewing AI tools, I came across Hermes. Today, I started setting it up. Rather than simply using cURL to download and install, I took a shortcut through the already installed Ollama, so that it would already be configured to use Ollama.

ollama launch hermes

At first, I scratched my head, wondering why Hermes was included in Ollama, since Ollama is specifically for running various models. Hermes isn’t a model; it’s more of an orchestrator. What else can Ollama launch? A quick ollama launch command reveals the answer: OpenCode, Chat, OpenClaw, Cline, Oh My Pi, Droid, DeepSeek Harness, Pi, Poolside, Qwen Code, etc. Apparently, Ollama has expanded beyond running models.

Hermes was up and running on the terminal in no time. I noticed the ASCII graphics made the interface more pleasant to use, and they used colors beyond the standard 16 colors you normally see in colored output. It used various emojis to look closer to a graphical interface. Still, you couldn’t interact with the mouse or anything. It was a chat interface.

I started asking it a few questions, like how it differed from OpenClaw and what capabilities it offered. I wasn’t getting very far with its responses. While OpenClaw appears to use multiple agents, Hermes seems to be a single agent that can spawn processes to do different tasks. Somehow, it observes what it has been doing and creates its own feature tools to speed up the same actions in the future. It also actively manages context in a different way to stay focused on the task at hand.

I tried to get it to come up with a name for itself, but it seemed to be fighting me, so I asked ChatGPT to suggest a few. We settled on Mercury Quill.

Hermes Dashboard

I also set up the Hermes dashboard with a web interface exposed on port 9119.

# runs in forground
hermes dashboard --host 0.0.0.0 --port 9119
# runs in background and writes a log file
hermes dashboard --host 0.0.0.0 --port 9119 > \
~/.hermes/dashboard.log 2>&1 & disown
# Setup a service to come online on its own
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/hermes-dashboard.service
# ---------------------[ START ]
[Unit]
Description=Hermes Dashboard
[Service]
Type=simple
WorkingDirectory=/home/ai
Environment=HOME=/home/ai
EnvironmentFile=/home/ai/.hermes/.env
ExecStart=/home/ai/.local/bin/hermes dashboard --host 127.0.0.1 --port 9119 --no-open
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
# ---------------------[ END ]
systemctl --user daemon-reload
systemctl --user enable --now hermes-dashboard.service
sudo loginctl enable-linger ai

A few things to note: the server is bound to all IP addresses via 0.0.0.0, rather than a loopback address, so Tailscale can connect from the network. It needs further lockdown. Also, the “ai” account’s home directory is not ideal to use here. Most of this is just getting things set up and working before locking it down.

When installing the dashboard, Hermes chose a password for me, so this should be changed.

By default, I set up Hermes to use the downloaded model for Laguna XS 2.1:Q4 K M. The model is fast enough to be useful, so I don’t have to send content across the wire to frontier models in the cloud. I found that it was an easy install to setup Telegram, having been through it once already.

The web interface provided a nice overview of the agent and had different profiles set up. I created credentials in Forgejo, and it connected and interacted with the API. However, it simply left an empty comment on a PR review rather than leaving anything substantial or approving/rejecting it.

Hermes Desktop

I tried to download the macOS desktop for Hermes, but every time I double-clicked the Hermes-Setup.dmg file, nothing happened. Nothing showed up as a mounted volume. I didn’t get any messages about a file downloaded from the internet being quarantined. Eventually, I went down a rabbit hole and found many stale attached volumes, including five copies of Hermes setup files. I couldn’t force the disk to be detached, so I rebooted the computer and was able to open the file to install Hermes Desktop.

hdiutil info | grep -E 'image-path|/dev/disk'
/dev/disk27 GUID_partition_scheme
/dev/disk27s1 48465300-0000-11AA-AA11-00306543ECAC
image-path : /Users/lewismoten/Downloads/Hermes-Setup.dmg
/dev/disk30 GUID_partition_scheme
/dev/disk30s1 7C3457EF-0000-11AA-AA11-00306543ECAC
/dev/disk31 EF57347C-0000-11AA-AA11-00306543ECAC
/dev/disk31s1 41504653-0000-11AA-AA11-00306543ECAC
image-path : /Users/lewismoten/Downloads/Hermes-Setup (1).dmg
/dev/disk32 GUID_partition_scheme
/dev/disk32s1 7C3457EF-0000-11AA-AA11-00306543ECAC
/dev/disk33 EF57347C-0000-11AA-AA11-00306543ECAC
/dev/disk33s1 41504653-0000-11AA-AA11-00306543ECAC
image-path : /Users/lewismoten/Downloads/Hermes-Setup (2).dmg
/dev/disk34 GUID_partition_scheme
/dev/disk34s1 7C3457EF-0000-11AA-AA11-00306543ECAC
/dev/disk35 EF57347C-0000-11AA-AA11-00306543ECAC
/dev/disk35s1 41504653-0000-11AA-AA11-00306543ECAC
image-path : /Users/lewismoten/Downloads/Hermes-Setup (4).dmg
/dev/disk38 GUID_partition_scheme
/dev/disk38s1 48465300-0000-11AA-AA11-00306543ECAC
image-path : /Users/lewismoten/Downloads/Hermes-Setup.dmg
sudo hdiutil detach -force /dev/disk38

After the installation, I ran into another problem. The desktop tried to install a script, but it got too many requests.

I retried the install, and it seemed to start progressing through various steps. I got the impression that it was running the GCC compiler on the downloaded source code.

Hermes desktop feels completely separate from the web dashboard and the console interface. One thing I did like is that you could search Hugging Face for models, and it would show what would fit on your GPU. With only 16GB of unified memory, I could hold a little more than my gaming server as a GPU, but I was still fairly limited because the gaming server had system RAM that the models could spill over into. I couldn’t run Laguna. With RAM capacity and bandwidth/speed to that RAM, I can’t help but feel that one day, there will be a breakthrough with the models that is able to distribute models across multiple machines, and/or take a different approach to loading the ram. Perhaps some kind of compression is in order as well.

I loaded up Qwin 3.5:8B, typed “hi”, and waited… One interesting thing I noticed was a progress bar while it processed my prompt. I realized this wasn’t actually a progress bar for processing my prompt, but simply the model loading into memory. After my fans started spinning, the model was pretty responsive.

What frustrated me was that I had only two options: run it locally or use a commercial provider. I couldn’t find an option to run it with my own Ollama server that wasn’t on my local machine. Eventually, I found it. Custom Providers. Usually, I go to /api/tags to list all available models when testing whether the server is reachable. I proceeded to try a variety of different endpoints, but finally discovered that the endpoint is simply /v1

From here, I can load larger models and let the server in the basement handle all the processing.

The thing is – you are not controlling a remote Hermes installation. The model is simply being processed by another server to perform actions on your desktop.

I found a local gateway in the lower-left corner of the status bar. You could click on it and configure a Remote gateway to connect to. You could connect via SSH or via the dashboard with OpenID. I went in circles a few times trying to get the OpenID sign-in saved, but eventually I had everything configured so I could switch the gateway from my local computer to Kaylee and run Hermes there. I said “hello”, and they immediately introduced themselves as Mercury Quill. Now I have an interface to manage a fleet from one location.

Honcho

Normally, models save their memories in markdown files for later use. Some keep building context from your full conversation and send it with your latest question until the context fills up. At that point, there is a process to compact the conversation into a smaller summary, as the seed of the conversation, and start over again.

Honcho does something a bit different. It starts by optimizing what to send as context based on your current prompt and conversation history. It looks for relevant information and provides it to keep the model focused and reduce the input token count. I cant also give profiles their own evolving identity over time.

Honcho itself still needs a model to process conversations.

curl -fsSL https://get.hermes.dev | sh

It’s late. I’d go over it more, but I need sleep.

Discover more from Lewis Moten

Subscribe now to keep reading and get access to the full archive.

Continue reading