Marco Dalla Stella

@mdallastella.functional.cafe.ap.brid.gy

Code alchemist, data juggler, chess player, poetry. Admin of https://functional.cafe. 🌉 bridged from ⁂ https://functional.cafe/@mdallastella, follow @ap.brid.gy to interact

New blog post. Hermes AI agent: How do I use it https://marco.dallastella.name/posts/hermes_how_i_use_it/

Hermes AI agent: How do I use it

## What Is Hermes? Hermes is an agentic AI, from Wikipedia: > In the context of generative artificial intelligence, AI agents (also referred to as compound AI systems or agentic AI) are a class of intelligent agents that can pursue goals, use tools, and take actions with varying degrees of autonomy. In practice, they usually operate within human-defined objectives, constraints, and available tools. In my specific case, it's a Docker container on one of my servers, and I chat with it via Telegram, but there are a lot of messaging gateways to choose from (Matrix, Slack, Signal…). It's powered by Deepseek v4 Flash through OpenRouter. What it does, basically, is to automate some tasks for you, limited by the tools you provide. In other words, it's my personal assistant. So no, I don't use it for code. ## Why I Use It Over the last 5-6 years, I've tried my best to keep notes on various topics, organize my thoughts and ideas, keep track of the tasks I'm working on, and pursue some sane habits like weekly and monthly reviews, distilling ideas, and trying to find connections between them (I'm a huge graph theory fan). The problem? I'm a _reeeeeally_ lazy person, and it looks like I'm allergic to keeping the motivation up. In my defense, the number of tools needed to achieve my dream workflow is quite high, and usually they don't integrate well together. A "Second Brain" or "PKM" is useful only if it's constantly maintained, that's probably why some people call it a "digital garden". I tried different approaches, but I can't rely on myself. A personal assistant keeps me in line, asks what I'm doing, keeps a record of my bookmark, reminds me to write down tasks or ideas… It's a motivator, or at least, I use it this way. It doesn't do the heavy lifting for me: I still have to read the articles, watch the videos, write down notes, ideas, reminders, and keep track of what I'm doing, but Hermes facilitates the flow. ## My Daily Tools So, as I said, Hermes lives on one of my servers. Along with it, I use the following tools: * Silverbullet: this is the core of my notes. Silverbullet is a Programmable, Private, Browser-based (with PWA for Mobile), Open Source, Self Hosted, Personal Knowledge Database. It's easy to selfhost (Docker again), uses pure Markdown, supports bi-directional links, can be extended with Lua, and it has a query language similar to Obsidian Bases. In other words, it's wonderful. Here I have some macro-categories: Ideas, Bookmarks, Journal, Projects, Resources, Companies, and People. The categories are quite self-explanatory: * **Journal** : some kind of daily scratchpad where I take notes about my day in a random fashion. A daily inbox, if you want, works as my main entry point. * **Ideas** : it's where I keep ideas and thoughts that pop into my mind about a topic. * **Bookmarks** : a random collection of links I want to read/watch/keep along with a brief summary of what they are about. * **Projects** : here I keep a single file for each project I'm working on. For example, I may take notes of a meeting in a Journal note, tagging the relevant Project and then summarize the meeting notes there. * **Resources** : this is where I keep nested notes on topics that I'm interested in. For example, I have a "Programming" resource with sub-notes, like "Programming/Clojure", "Programming/Go", or "Programming/Algorithms". When I distill Ideas, Bookmarks, or Journals, that's where I keep the important and general bits. * **Companies** and **People** : that's where I keep record of the customers and suppliers, and some kind of "contacts" of the people I work with. This way I keep some history of the interactions or pending tasks with them. For example: Project Foo is linked with Company Bar and the contact is Person Baz. * TickTick: this is where I organize tasks per project, setting priorities, and reserving some time every day to consume the bookmarks I saved. Why a different application? I learnt that applications that do one thing and one thing only are more usable and practical than generic purpose ones. An improvement would be adopting a CalDAV server and save the tasks there, just to have ownership over my data without extra costs. I have yet to find an MCP server or a skill good enough to manage a CalDAV server. * Letterly: I was lucky enough to get a lifetime subscription to this via AppSumo. It's simply a transcription app that has a native MCP server, and it's quite good. I use it to record my notes and meetings with multiple speakers. * Clockify: this is an old companion to keep track of my time spent on each task. Thanks to their OpenAPI, I vibecoded an MCP server to let Hermes interact with it, you can find it here. I have never been able to find a selfhosted solution good enough to replace it. Anyway, I use the free plan and it's more than enough for my purposes. ## How Hermes Helps Me Hermes has access to all of these tools and orchestrates them via MCP servers, so I can either interact with each tool directly or ask Hermes to do it for me via Telegram. My daily workflow looks like this: * In the morning, I record all my thoughts, tasks, ideas, whatever using Letterly while I drive to work. Once there, I ask Hermes to get the transcription, identify and extract each "context" and write them down in my journal (or in Silverbullet, generally speaking). It also creates the corresponding tasks in TickTick and prepares the time entries in Clockify. * In the meantime, Hermes has a cronjob that checks pending tasks in TickTick, reschedules them and takes notes in the daily journal. I don't let Hermes decide when to do what, I spend the first 15 minutes at my desk to review what it did and schedule everything to my taste. * Every 30 minutes Hermes checks if there are a running timer on Clockify, if not it reminds me to start one or to tell it on which one I'm working and forget to start, so it does it for me. Hermes knows my working hours, the "cronjob" doesn't bother me when I'm not at work, but I should probably refine this skill to bother me if there are pending tasks and what to do with them. Is it maybe too much? 🤔 * Whenever I send Hermes a link, a new bookmark is created and noted in the journal. As I said, it also grabs some info and provides a small summary. * At the end of the day, Hermes checks the closed tasks and the timers and summarizes everything in the journal, so I can jump back to any day and see what I have done and how much time I spent on tasks. It's not a metric about productivity: I track everything, not only the scheduled tasks but also interruptions, calls, meetings, coffee breaks, whatever. Helps me keep up with strategies to work only on what I really want to. "How many times have I been interrupted this week?" is a common question I submit to Hermes. Every Sunday, Hermes does another summary job for the whole week. Plus, it includes links to ideas I've worked on, bookmarks I collected, resources I improved. One last useful skill I use is "Learning from Notes": Hermes asks me questions about a topic I covered in my notes and suggests where I should dig deeper and writes down what I forgot and must review. As you can see, Hermes interacts mostly in the daily journal. It is my responsibility to refine and distill everything that happens during the day or week. I need a tool that holds the pieces and scraps of information together, but I'm the one that should explore and consume them. That's all for now, it's already a quite long post.

marco.dallastella.name

New post: Week 28/26 https://marco.dallastella.name/posts/week_28_26/

Week 28/26

So, what happened since May? Not much really, let's recap the interesting bits (if any). ## Work I juggled between different projects, mostly internal—focusing on system integrations, reports, dashboards/portals, and MCP servers for our internal AI. The merge between the two companies is going ok, but there's a lot of room for improvement in cooperation and communication: sometimes it's hard to tell who is doing what and why, so there's always some level of uncertainty. There's an Italian proverb that goes: "A dog with two owners dies of hunger.". See also: Diffusion of responsibility. ## Personal Summer isn't the best time of the year for anxious people: the heat mimics the symptoms of anxiety quite well: shortness of breath, sweating, dizziness, and palpitations. It's easy for a hypervigilant amygdala to get fooled and start a "fight-or-flight" response. But don't worry, I have my countermeasures, and it's going fine. Also, there is no shame if sometimes I can't stand a situation; it's my right. I used to think I couldn't afford a single failure, that would become another crack in an already cracked pot, but it's not like that. I should be more forgiving of myself and love myself a little more. Moving on to something more interesting, a couple of months ago I installed a Hermes instance on my servers. It's the most useful thing involving AI that I've ever used; I'm probably going to write a post about it. Currently, I'm reading "A History of Western Philosophy" for the second time: even if it's inaccurate and opinionated, I personally feel a strong connection with the way Russell thinks. Outside of work, I don't sit in front of a computer too much these days. I prefer reading, playing "No Man's Sky", playing the guitar, or experimenting with Strudel.

marco.dallastella.name

New post, catching up with the last weeks. https://marco.dallastella.name/posts/up_to_week_43/

Up to week 43

### Personal In the last weeks there were some ups and downs, I had to deal with some anxiety, but it has been much better than week 39. The change of season and the switch from DST to Standard Time always takes a toll on my mental health. That said, I'm not a hermit. I'm still enjoying going out with my girlfriend and friends. My agoraphobia kicks in only when I'm alone. In the past weeks, in random order: #### Conegliano & The Winged Lion We visited some friends in Conegliano (one of the birthplaces of Prosecco wine), we visited the "Winged Lion" made by Marco Martalar. Martalar's sculptures are made with the wood of the fallen trees caused by the Storm Vaia in 2018. There are a few of these sculptures. You can see them here. Martalar's Lion After a short hike, we had lunch together at Andreetta restaurant: fine wines and delicious food. Probably the next sculpture we are going to visit will be the "Winged Dragon" in Lavarone. #### Halloween The last time I did something fun on Halloween night was in 2010. That night, one of the main rivers in Vicenza (my hometown), flooded our district, Borgo San Pietro. We went to a treasure hunt that night, dressed up as monsters. The next day we woke up with 30cm of brown water inside the house. By the end of that morning the water rose to about 1m, so we fled and got hospitality from family members and friends. We moved back in our home a year after. 2010 flood So no, I don't really like Halloween, and for years after I couldn't enjoy the sound of the rain. This year we celebrated Halloween after 15 years, I dressed as a vampire (quite easy), and my gf as a voodoo queen. We met with some friends at a local club and "enjoyed" a cover band of Nightwish and Epica (not really my music genre). I was tense at the beginning, but after a couple of Americano I started to enjoy the evening. Me and my friend Carmine on the left, my gf on the right ### Code #### LLM I discovered OpenRouter and cancelled my OpenAI plan. OpenRouter allows to get access to multiple LLM models thanks to a unified API and it also automatically routes your prompts to the "best" model based on cost, latency and availability. (I'm not related with OpenRouter in any way, I just think it's a wonderful service). Thanks to OpenRouter I managed to: * Deploy an instance of OpenWebUI, to have a "personal" Chat and RAG experience, choosing between 500+ models. * Implement a couple of useful n8n workflows, such as transforming documents, photos, or vocal memos directly to org-mode, ready to be copied and pasted through a Telegram bot. * Start to use Claude Code cli tool. Thanks to Claude Code Router (ccr), I can use OpenRouter models instead of Anthropic models (they're not cheap). At the moment I'm really enjoying GLM 4.6 from Z.ai for coding and Gemini 2.5 Flash for quick tasks. * I also added claude-code.el by Steve Molitor to my Emacs configuration. It's nice to have an AI assistant inside the editor. I don't do any vibe-coding sessions, but it's helpful for tedious tasks. I tried ECA and Aider before, but I wasn't completely satisfied with the integrations and the configuration. I will keep a look at ECA, anyway, in case Claude Code will stop working with ccr. #### Go After giving up with Rust, I took a look at Zig, but I don't think the ecosystem is mature yet for production and, like Rust, it's too low level for my needs. Instead, I started to study Go. I'm still not a fan of imperative programming, but I find Go better than Python TBH. First of all, Go can be compiled to a single portable binary: this is useful with docker images, where with Python I need to produce huge images with all the project dependencies. Go does not need external libraries or funny tricks for async or concurrency, and does not have Python GIL limitations. Also, thanks to Clojure core.async, I'm already familiar with the CSP model. ### Notable links * Anthropic: A small number of samples can poison LLMs of any size * E.W.Dijkstra Archive: Home page * Big Tech Is Faking Revenue - YouTube

marco.dallastella.name

New post: Week 38. https://marco.dallastella.name/posts/week_38/

Week 38

### Personal Another boring week, the weather in Italy has been nice but between work and personal issues I didn't have time to enjoy it. I did some gardening on the weekend, so it was "work" plus "fun". I'm still going on with the "Gone" series: after "Hunger", I started with "Plague". I have to admit that, against my predictions, the series gets darker and more mature as it goes. As someone said "What would happen if Stephen King wrote Lord of the Flies?" I haven't mentioned yet that I own a Steam Deck. I used to own a PS4 and a PS5, and the only games I played were Destiny and Destiny 2, so quite a casual gamer. Some COD and Warframe as well. Then one day I thought I was wasting my time, and time is precious: I sold the PS5 and bought a Steam Deck. Mostly because: * It's a handheld device; I can play everywhere inside and outside the house. * It has a battery, which naturally limits my playtime. * It runs Arch Linux :smile: These days I mostly play another great love of mine, Titanfall 2. However, I think I'm going to start playing something cozier and more immersive, like Cult of the Lamb or No Man's Sky. ### Code Last week was full of supply-chain attacks on NPM, and the situation is quite scary. I don't know all the details, but something certainly needs to change. The constant updates and "new features," the lack of code verification, and the complete absence of big companies—who make billions relying on plenty of open source code without bothering to contribute—are all concerning. We programmers, as well, have responsibilities when we publish our code. I don't know, the Gordian knot here is: how can we produce high-quality code and let people enjoy it freely without being paid? Who are these wonderful people who "sacrifice" themselves to provide free code for us, asking for nothing in return, nor seeking help or support? Is this sustainable in the long run? I think we will get an answer soon. ### Notable links * Practical guide to SHAP analysis: Explaining supervised machine learning model predictions in drug development - PMC * Lisp in 2025: A Practical Guide to the One True Programming Language * Why We Spiral - by Gregory M. Walton - Behavioral Scientist * CubeSats are fascinating learning tools for space | Jeff Geerling

marco.dallastella.name

Week 34 https://marco.dallastella.name/posts/week_34/

Week 34

### Personal life I turned 44 on Sunday 24, so now I'm officially older than my grandfather. It's funny thinking that me and my father are older than he was. He lived through the '40s to the '70s, saw a world war and the reconstruction of a nation… He probably lived more lives in his 43 years on this earth that I'll ever live. Time is relative for sure. If you have a PhD in physics, sorry for the joke. The "Gone" book I'm reading is not that bad, but it's reeealllyy teenager material: I'm going to finish this one, but I'm not going on with the series: I don't think is going to grow and get more mature alongside the reader like Harry Potter books. I bought myself a pair of Moondrop Space Travel 2: they sound really good for their low price. ### Code It was a quiet week, a lot of people were still on holiday leaves. Still working on a Python/Vue project and man, it really hurts. I don't get why Python is so popular: the syntax is verbose, it's slow as hell, concurrency is a joke… and yet is the number one language for AI… go figure. On the other hand, Vue is one of the worst framework I have ever worked with: it's hard to figure out who changed a ref, computed hides its reactive dependencies, errors in the browser console are hard to understand. I don't like it at all. I keep going on with my Rust studies, even if I find quite hard to understand why programming should be so hard. I mean, it's obviously hard to solve a complex problem by itself, why should I have also to struggle against the language? I also worked a bit on another Babashka script for waybar widgets, a tailscale simple monitor. I'm going to publish a git repo with all these scripts on week 35. ### Notable links of the week * Weaponizing image scaling against production AI systems -The Trail of Bits Blog * Why LLM predictions are dangerous for Finance? - DEV Community * What are OKLCH colors?

marco.dallastella.name