Skip to content
Ben's Tech
Go back

Building a Second Brain for the Homelab

Edit page

Over the last few days I have been turning my home lab from a collection of useful services into something I can actually remember and operate more easily. The project started as a question about what else a second brain could do. It ended with a working system that combines Obsidian, Hermes, Discord, and Home Assistant.

The goal is not to automate every decision or build a complicated dashboard for its own sake. I want a place where projects, infrastructure notes, daily information, and useful actions can work together without losing the human-readable notes that make the whole thing useful.

Obsidian as the memory layer

The center of the system is an Obsidian vault organized around the PARA method: Projects, Areas, Resources, and Archives. That structure gives active projects a home while keeping long-term reference material from becoming a pile of disconnected markdown files.

I added notes for the homelab infrastructure, computers, edge devices, services, and the projects that are currently in progress. The important part is that these notes are plain Markdown. They are easy to search, easy to back up, and easy to update from other tools.

The vault now works as more than a place to write things down. It is becoming an operational reference. A project note can explain why a service exists, how it fits into the rest of the system, and what I planned to do next. When I forget how a piece of the lab works six months from now, I should be able to search for the answer instead of reconstructing it from memory.

I also set up a daily briefing workflow that writes useful information into the vault. That creates a running record of the day rather than treating each briefing as a disposable message. The same notes can later become project history, troubleshooting context, or a starting point for a new post here on Ben’s Tech.

Hermes as the working assistant

Obsidian is good at storing knowledge, but it does not operate the system by itself. Hermes provides the working layer.

Hermes is using an API to access the language models rather than running the main model directly on my hardware. I started with the Google AI API and later moved to an OpenCode Go subscription. That change gave me another model source to use while keeping Hermes as the interface for the work.

I also experimented with running a model on the laptop’s own video card. That is still an open question. I have not found a local model that gives me the same combination of quality, speed, and tool-use reliability that I want from Hermes, so the local GPU remains an experiment rather than the primary backend.

Hermes can read the vault, add or update notes, run scripts, inspect services, and help connect a question to the documentation already stored in the second brain. It can also maintain durable memory for preferences and stable facts while keeping detailed project information in Obsidian, where it remains visible and editable.

That separation matters. A short preference or recurring convention belongs in assistant memory. A homelab diagram, a service explanation, or a record of how a project was built belongs in the vault. Keeping those roles separate makes both systems easier to maintain.

The setup also exposed a practical limitation of agentic tools: an assistant that can take action needs clear boundaries. During the work, I had to stop a processing loop that was continuing to work on an old request. Restarting the gateway cleared the stuck task, but the larger lesson was more useful: autonomous processing needs a reliable way to inspect, interrupt, and reset work.

Discord as the remote interface

The Discord integration gives Hermes a convenient interface when I am away from the desktop. Instead of opening a terminal or the Hermes desktop application, I can send a request through a dedicated chat channel and get the response there.

This is especially useful for short questions, status checks, and voice-assisted requests. Discord is not replacing the vault or the desktop interface. It is the front door for quick interactions, while Obsidian remains the long-term record and Hermes remains the agent doing the work.

Getting the integration working involved the usual combination of permissions, channel configuration, gateway state, and session cleanup. The final setup is simple from the user side, but there is a lot happening behind that message: Discord receives the request, Hermes processes it, tools perform any approved actions, and the result comes back through the same conversation.

The integration also reinforced a security rule I want to keep: chat is an interface, not a place to store secrets. Credentials and connection details should stay in protected configuration, while notes and posts should describe the architecture without publishing anything that could be used to access it.

Home Assistant as an extension of Hermes

Home Assistant is one of the capability extensions Hermes can use. It already knows about the devices and automations in the house, while Hermes provides a conversational way to inspect those entities, explain their current state, and make approved changes through Home Assistant.

One example from this week was extending a kitchen lighting automation. A previously unused button was assigned to control a group of overhead switches, and another switch was added to the same automation afterward. The useful part was not the individual toggle. It was being able to describe the desired behavior in natural language, inspect the available devices, make the change, and verify that the automation was enabled.

The same pattern worked with the bird-monitoring services in the homelab. I could ask Hermes about the birds being detected, and it was able to look beyond the conversation and inspect the other services producing that information. Instead of treating the bird detections as isolated messages, Hermes could connect the question to the running monitoring services and use their data as part of the answer.

This creates a useful division of labor:

The system still needs safeguards. An assistant should not guess at a device, change an automation without checking the target, or expose private details in a response. Discovery before action and verification afterward are just as important for a light switch as they are for a server configuration.

What I have now

After a few days of connecting these pieces, the second brain feels less like a note-taking experiment and more like a practical operating system for the homelab.

Obsidian gives the system a durable memory. Hermes makes that memory useful during real work. Discord makes the assistant available from a familiar chat interface. Home Assistant and the other homelab services give Hermes more systems to inspect and use.

There is still plenty to improve. I want to keep refining the vault structure, add better documentation as new services come online, and make the daily briefings more useful without filling the vault with noise. The important change is that new work now has somewhere to go. A question can become a note, a note can guide an action, and the result can be recorded for later.

That is what I wanted from a second brain: not a replacement for thinking, but a reliable place to put the parts of the system I do not want to forget.


Edit page
Share this post on:

Previous Post
LoRa Wiki Bot: Answering Meshtastic Messages with Hermes
Next Post
BirdNET-Go: Backyard Bird Identification over RTSP