Agentic AI
hermes-local-layer
A local layer around Hermes Agent that serves as my second brain.
Overview
This is the custom local layer I built around Hermes Agent, intended as my “second brain.” I wanted an agent that could help organize my thoughts and act as a knowledge archive because I am almost always multitasking and switching between knowledge domains. I interact with it through the CLI and Discord, mainly using it across six applications: wiki, feed, journal, tasks, repo-scout, and stock-screener.
Each application is supported by specific skills and accessible through a dedicated Discord channel. The channel selects the appropriate workflow, and each application’s harness controls its permitted operations. The applications are narrowly defined with explicit boundaries, but they can work together through limited, controlled paths. This separation prevents context and data contamination.
┌──────────────────────────────┐
│ UPSTREAM HERMES AGENT │
│ CLI · Gateway · Tools · Cron │
│ Skills · Memory · Plugins │
└──────────────┬───────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ LOCAL /home/hermes CUSTOM LAYER │
│ domain systems + harnesses + Discord UI │
└──────────────────────┬──────────────────────┘
│
harness-first rule: orient → validate → mutate → verify
│
┌───────────────────────────────────┼───────────────────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ JOURNAL │ │ TASKS │ │ WIKI │
│ thoughts │ │ commitments │ │ sourced facts│
│ journal_ops │ │ task_ops │ │ wiki_ops │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ read-only wiki context │ task/project signals │ concepts
│ │ │
└────────────────────────────┼────────────────────────────────────┘
▼
┌──────────────┐
│ FEED │
│ interest map │
│ feed_ops │
└──────┬───────┘
│ picks + generated page
▼
┌──────────────┐
│ /feed/ │
└──────────────┘
┌──────────────┐ ┌────────────────┐ ┌──────────────┐
│ REPO SCOUT │ │ STOCK SCREEN │ │ STATIC SITE │
│ GitHub finds │ │ OHLCV scans │ │ homepage/dist│
│ read-only │ │ /stocks/ │ │ /wiki /feed │
└──────┬───────┘ └───────┬────────┘ │ /stocks │
│ │ └──────┬───────┘
▼ ▼ ▲
┌──────────────┐ ┌────────────────┐ │
│ #repo-scout │ │#stock-screener │ │
└──────────────┘ └────────────────┘ │
│
┌───────────────────────────────────────────────────────────────────────┴──┐
│ DISCORD WORKSPACES │
│ #journal · #wiki · #tasks · #feed · #repo-scout · #stock-screener │
│ channel context chooses the workflow; each harness owns the safe write path│
└──────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────┐
│ SAFETY / REVIEW LAYER │
│ REVIEW_PROTOCOL.md · backup/documentation/security guards · audits │
│ protects backups, generated artifacts, docs, routes, and subsystem borders │
└──────────────────────────────────────────────────────────────────────────┘
Wiki
The idea of a self-improving wiki-LLM was popularized by Andrej Karpathy’s gist.
I added skills specifically for digesting long-form PDFs because I consume many academic papers and sell-side equity research reports, which often contain unwanted artifacts. The wiki is accessible through chat and also a custom website on the same private network as the agent. The site builds the Markdown files into static HTML, which is helpful for displaying mathematical equations, charts, and graphs that are harder to read in raw Markdown.
When I ask the agent a question, it uses the wiki’s semantic index and graph to identify the most relevant pages, then reads the underlying Markdown before composing an answer. These queries also create a feedback loop and guides improvements to the wiki over time.
Other features include a semantic graph that shows relationships among concepts, an activity log that records changes to the wiki, and a linting and review workflow that identifies opportunities for improvement.
Feed
This is a personalized twice-daily reading feed that recommends materials based on my interests. Its purpose is to keep me up to date on topics that interest me while broadening my scope with content I might not otherwise encounter. Each digest contains five items: three related to my existing interests and two exploratory picks intended to introduce less familiar topics. The interest profile is updated using recent signals from the wiki, journal, and tasks, as well as explicit feedback on exploratory recommendations. The feed draws from a curated list of approved sources.
Journal
This is a smart notepad for capturing unstructured thoughts. I am still a big fan of the iOS Notes app, but the thoughts I capture there can be messy, scattered, and lacking context. This application turns them into clean, structured thought cards while preserving my original wording. It then categorizes and saves each entry so I can query the agent and reflect on how my ideas have evolved over time. It can also consult the wiki through a read-only harness for possible interpretations or connections, while keeping that external context clearly separate from what I originally wrote.
Tasks
This is a smart reminder and task manager that accepts natural-language commands and manages pending tasks, due dates, priorities, recurrence, tags, reminders, and completion history. For example, “send xmas cards dec 1” creates a pending task due on December 1. Automated watchdogs then post reminders in the Discord #tasks channel at the requested times.
Repo-scout
Repo-scout is a read-only GitHub project discovery tool that finds interesting projects. It applies various filters and ranks the resulting shortlist against my interests. Feedback on previous suggestions can adjust later rankings. Repo-scout only produces recommendations and takes no further action.
Stock-screener
Stock-screener is a standalone weekly workflow that runs technical scans and helps me identify potential investment opportunities. It is still under development, with room for more sophisticated screening features.