July 28, 2026 · 7 min read
How I use Hermes Agent to automate my digital life
The question that kicked this off was simple: how do I automate my digital life without losing control of it?
I had tried the obvious things. Scripts, cron jobs, outsourcing. Nothing stuck. The problem was never the tools, it was the process. Blogging, taxes, and YouTube were eating my time, and I was spending more hours on logistics than on the work itself.
So I built Hermes Agent.
The manual workflows that were eating my week
Here is what the old routine looked like.
Blogging (ashkmb.com). Write a post in English. Translate it to German and Persian by hand, or pay a translator, which was slow and expensive. Proofread all three, fix inconsistencies, and make sure the voice matched. Commit, push, wait for Cloudflare Pages to deploy. Three to five hours per post.
YouTube (AgenticTube). Find a post worth turning into a video. Build the slides, record the narration, edit. Upload, write the description, add tags. Two to four hours per video.
Taxes (expenseTracker). Search Gmail for invoices. Pull out the vendor, date, and amount by hand. Save the PDFs, rename them, compile a spreadsheet. Ten hours or more per year.
I was drowning in logistics. I needed to automate the repetitive parts without giving up creative control.
What Hermes Agent handles
Hermes Agent is a workflow engine. It runs on my mini-PC (Linux), drives my Mac, and takes over the parts I do not need to touch:
| Workflow | What Hermes Agent does | My role |
|---|---|---|
| Blogging | Writes drafts, translates to DE/FA, manages Git worktrees, publishes to Cloudflare Pages. | Review drafts, approve the MR. |
| YouTube | Turns blog posts into Shorts and weekly digests, uploads to YouTube (private), pings me on Telegram. | Click “Approve” to publish. |
| Taxes | Scans Gmail for invoices, extracts the data, stores it in PostgreSQL, exports a tax-ready ZIP. | Run just export-year 2025. |
| Research | Summarizes technical deep dives (for example, “Sonnet 5 benchmarks explained”). | Read the summary. |
| Ops | Watches the mini-PC (disk, memory, GPU usage). | Get alerted when something breaks. |
How it works
The box, and why the agent runs natively
Everything runs on one always-on mini-PC, a Core i9 with 32GB that used to be my Proxmox host. I reinstalled it as plain Ubuntu and gave it a single job: being the agent’s home. My Mac is just a remote client; I talk to Hermes through the desktop app and Telegram, but the actual work happens on the box, which runs 24/7 and does not tie up my laptop.
The whole machine is provisioned with Ansible, one idempotent playbook, so the box is disposable. If it dies I rebuild it from the repo: base system, the agent, the model runtime, my CLIs and dotfiles, all as roles.
The decision I actually care about is that Hermes runs natively under systemd, as my own user, not in a container. That sounds like a footnote and it is the whole design. A containerized agent cannot see terraform, kubectl, aws, gh, psql, or my ~/.kube and ~/.aws configs, so “run terraform plan” just fails with command not found. Running native, the agent inherits the exact tooling I have in my own shell. It does my ops work, not a sandboxed imitation of it.
That comes with an honest trade-off. Native means the agent runs as a user with passwordless sudo, with no container wall around it. So the security boundary lives somewhere else on purpose: a Telegram allowlist for who is even allowed to talk to it, and a password on the dashboard. I treat those two as the fence, because they are the only fence.
In front of that, a Caddy reverse proxy handles the dashboard, and the whole thing reaches me through a Cloudflare Tunnel, so I never open an inbound port on my home network. Model inference runs on a hosted backend, not on the box: a tool- and vision-capable model for the reasoning, and a smaller vision model pinned for OCR and browser screenshots so the big model is not billed for every image. Scheduled jobs fire from cron and RSS polling; the interactive approve-and-publish loop comes in over Telegram. The box is mine and the orchestration is mine, but the model calls do leave it, so I keep the genuinely sensitive extraction scoped and reviewed rather than pretending nothing ever hits a cloud.
AgenticTube: blog to YouTube
Hermes Agent watches my blog’s RSS feed and turns posts into two things: daily Shorts (9:16, 45 to 65 seconds, narrated slides) and a weekly digest (16:9, 10 to 30 minutes, one segment per post).
The pipeline is six steps. It ingests the RSS feeds hourly, has a model pull out the key points in a neutral voice, generates a script (three slides for a Short, six or seven for a digest segment), renders with ffmpeg plus Pillow for the slides and Google TTS for narration, uploads through the YouTube API as private by default, and notifies me on Telegram with an “Approve” button. This post could become a Short or a digest segment without me lifting a finger.
expenseTracker: tax invoice automation
Hermes Agent scans my Gmail for German invoices, both PDF attachments and email bodies, and does three things: extracts the vendor, invoice number, date, and amount (net, VAT, gross); stores it in PostgreSQL under the financial_agent schema; and exports a ZIP my tax advisor can open directly.
cd ~/Documents/Projects/Personal/expenseTracker
just export-year 2025 # writes ./exports/export_2025-01-01_2025-12-31.zip
The ZIP holds documents/ (the PDFs and email bodies as HTML or text), manifest.csv (the clean invoices: vendor, date, amount), and manifest_needs_review.csv (anything the extraction was not confident about). The split matters: I only ever eyeball the second file.
ashkmb.com: multi-locale blog posts
Hermes Agent writes from what I actually do, not from a generic prompt. This post about Hermes Agent is drawn from the real workflows above. For each post it handles the translations (EN/DE/FA), isolates the work in a Git worktree so nothing lands on main early, keeps it in draft until I approve, and fills in the SEO metadata (OG tags, JSON-LD).
Publishing is a review, not a command. Hermes opens the MR; I read the diff and merge it:
gh pr diff # eyeball the EN/DE/FA changes
gh pr merge --merge # Cloudflare Pages deploys on merge to main
What it actually buys me
Hermes Agent does not do the thinking, it does the logistics around the thinking. It cuts blogging from hours to minutes, catches inconsistencies before they reach production, and leaves me with the part I care about: ideas, not plumbing.
That is the whole point. Automation here is not about replacing me, it is about clearing the repetitive work off my desk so the hours I spend are spent writing, thinking, and building rather than renaming PDFs.
What’s next
I am still refining the workflows. Three things are on the list: automated thumbnail and OG-image generation, scheduled publishing via cron instead of a manual merge, and using Hermes to analyze reader feedback and fold it back into posts.
If you want the technical details, how the subagents are wired, what the verification scripts check, say so and I will go deeper.