[{"content":"","date":"16 June 2026","externalUrl":null,"permalink":"/tags/ai-agent/","section":"Tags","summary":"","title":"Ai-Agent","type":"tags"},{"content":"All my articles and thoughts.\n","date":"16 June 2026","externalUrl":null,"permalink":"/posts/","section":"Blog","summary":"","title":"Blog","type":"posts"},{"content":"","date":"16 June 2026","externalUrl":null,"permalink":"/tags/hermes/","section":"Tags","summary":"","title":"Hermes","type":"tags"},{"content":"When I first ran Hermes, I figured, \u0026ldquo;Okay, console agent, I\u0026rsquo;ll set everything up myself.\u0026rdquo; Turns out it ships as a full platform: CLI, TUI with tabs, a web dashboard on port 9119, a gateway for 20 platforms, cron, MCP, memory, a desktop app, editor integrations and about 70 built-in skills.\nBut when you actually use it seriously \u0026ndash; you hit the limits. After a month and a half of fine-tuning, it\u0026rsquo;s not a \u0026ldquo;console agent\u0026rdquo; anymore. It\u0026rsquo;s a personal ecosystem.\nWhat Hermes Gives Out of the Box # I\u0026rsquo;m not going to list everything \u0026ndash; just what I actually use.\nInterfaces. CLI (hermes chat) with a multiline editor, TUI and a web dashboard for config and sessions. The gateway supports Telegram, Discord, Signal, Email and about 15 others \u0026ndash; but it\u0026rsquo;s turned off out of the box.\nSystem features that came in handy:\nBuilt-in cron \u0026ndash; I\u0026rsquo;m running 11 tasks on it MCP \u0026ndash; TwentyCRM and Apple Notes Subagent delegation \u0026ndash; I farm out tasks to child agents sometimes Context compression (I turned it off) Browser automation \u0026ndash; for QA Six terminal backends \u0026ndash; I use local and SSH What I changed from the defaults:\nModel: empty string -\u0026gt; DeepSeek v4 Flash (direct API) Gateway: off -\u0026gt; Telegram 24/7 Compression: on -\u0026gt; off (DeepSeek handles the context, the aux model just wastes tokens) Streaming: true -\u0026gt; false Cron: 0 tasks -\u0026gt; 11 MCP: 0 -\u0026gt; 2 Profiles: 1 -\u0026gt; 5 tool_progress: false -\u0026gt; true (I see every call) Memory: Where It All Started # This is the single biggest change. Hermes comes with two memory levels out of the box \u0026ndash; MEMORY.md (2,200 chars) and USER.md (1,375). Both are loaded into the system prompt of every session. It\u0026rsquo;s fine for basic use, but when you start using it actively, they fill up fast. And the optimization script loses data when it overwrites them.\nI expanded this to eight levels:\nLevel 0: memory-map.md -- read-only map for the agent (chmod 444) ⬇ Level 1: MEMORY.md -- just pointers to storage (5,000 chars) ⬇ Level 2: USER.md -- preferences and profile (4,000 chars) ⬇ Level 3: Fact Store -- structured facts (about 270) ⬇ Level 4: ChromaDB -- semantic search (2,023 documents) ⬇ Level 5: Obsidian -- my notes in PARA structure ⬇ Level 6: NotebookLM -- temporary research ⬇ Level 7: SSH -- heavy computation and local LLMs on Omarchy How it works. The agent reads the memory-map, sees the storage hierarchy, checks MEMORY.md (the pointers) and then goes to Fact Store or ChromaDB for the details. Everything that doesn\u0026rsquo;t need to be in every prompt lives on the lower levels. Saves tokens without losing data.\nFact Store is a structured fact database with entity resolution and trust scoring. The agent writes here instead of MEMORY.md. Right now it has about 270 facts and can grow without limits.\nChromaDB indexes three sources: Obsidian (303 docs), Apple Notes (645) and Python projects (1,409). That\u0026rsquo;s 2,023 documents, about 20 MB. I write \u0026ldquo;find where I wrote about Jellyfin\u0026rdquo; and the agent finds it, even if the query doesn\u0026rsquo;t have the exact words from the title.\nApple Integration: From \u0026ldquo;It\u0026rsquo;s on the List\u0026rdquo; to \u0026ldquo;It Works\u0026rdquo; # Hermes ships with five Apple skills. The skills are there, but they\u0026rsquo;re not configured.\nApple Notes \u0026ndash; the biggest change. Out of the box, the agent reads notes through the memo CLI on Python + JXA: 6.5 minutes for 644 notes, 697 duplicates, crashes periodically. I swapped it for apple-notes-mcp \u0026ndash; a Rust server on ScriptingBridge. 15x faster: 26 seconds, zero duplicates, stable. On top of that, I have incremental indexing into ChromaDB every 12 hours via cron.\niMessage. The skill exists, CLI (imsg) is installed. I added the integration to the gateway \u0026ndash; now I can send an iMessage directly from the Telegram chat.\nApple Reminders. Works through remindctl with specific lists. I can add a reminder by voice through Telegram.\nFindMy. AirTag tracking. Handy for \u0026ldquo;where\u0026rsquo;s my backpack.\u0026rdquo;\nThe whole Apple stack is accessible through a unified search script along with Obsidian and Python projects.\nArchitecture: Two Machines, One Agent # Hermes runs on my MacBook locally. For the heavy tasks, there\u0026rsquo;s Omarchy \u0026ndash; Arch Linux on a desktop with a TITAN X Pascal (12GB VRAM). I set up SSH for the agent there.\n┌─────────────────────┐ SSH ┌──────────────────┐ │ macOS MacBook │ ──────────▶ │ Omarchy (Arch) │ │ │ │ │ │ • Hermes Agent │ │ • Ollama (LLMs) │ │ • Telegram gateway │ │ • ChromaDB │ │ • Apple stack │ │ • TwentyCRM MCP │ │ • Obsidian vault │ │ • PenPot │ │ • Local files │ │ • Heavy tasks │ └─────────────────────┘ └──────────────────┘ Two machines, one agent. I type in Telegram \u0026ndash; it works where it needs to. Heavy indexing and LLMs are on Omarchy. Daily tasks are local.\nTransparency: I See Every Step # I configured the system so no call goes unnoticed. Without transparency, the agent is a black box.\nSetting Mine Effect tool_progress_command: true On Every terminal call in Telegram streaming: false Off No streaming text over tool calls approvals.manual: true On Dangerous commands (rm -rf, git reset) require approval security.redact_secrets: true On API keys are redacted from output Plus cron mode: deny \u0026ndash; scheduled tasks don\u0026rsquo;t execute dangerous commands. If something goes wrong, I just write \u0026ldquo;stop.\u0026rdquo;\nHats: Roles Instead of Profiles # The original inspiration is Garry Tan\u0026rsquo;s gstack \u0026ndash; about 30 slash commands for Claude Code, each with a methodology. I adapted the roles I needed and called them hats. One agent, one profile \u0026ndash; it switches roles based on the task.\nI have 13 hats \u0026ndash; eight individual roles and five combined cycles:\nIndividual roles:\nStrategist \u0026ndash; strategic thinking with forcing questions: who will pay? what can we ship tomorrow? Architect \u0026ndash; architecture before code: data flow, state transitions, failure modes, ADR CSO \u0026ndash; security audit: from secrets in git history to OWASP Top 10 and STRIDE Debugger \u0026ndash; iron law: don\u0026rsquo;t fix until you find the root cause QA \u0026ndash; smoke test, forms, empty states, HTML integrity Reviewer \u0026ndash; code review: SQL injection, race conditions, scope drift Shipper \u0026ndash; release engineer: sync, test, version, changelog, PR Documenter \u0026ndash; documentation by Diataxis after merge Combined cycles (run through several roles):\nfull-cycle: Strategist -\u0026gt; Architect -\u0026gt; Dev -\u0026gt; Reviewer -\u0026gt; Shipper -\u0026gt; Documenter fix: Debugger -\u0026gt; QA -\u0026gt; Documenter quick-ship: Strategist -\u0026gt; Architect -\u0026gt; Dev -\u0026gt; Shipper -\u0026gt; Documenter research: Strategist -\u0026gt; Architect -\u0026gt; Documenter audit: Architect -\u0026gt; CSO -\u0026gt; Architect v2 I load /skill strategist and the Strategist methodology appears in the prompt: six questions, premise challenge, reference patterns. Until I take off the hat.\nOther Details # 50+ custom skills. None of them are from the hub \u0026ndash; all written for my own tasks: from a morning ritual with weather to Docker stacks and tailnet.\n11 cron tasks. LLM tasks (free model via OpenRouter): morning weather + productivity, idea reminders, evening daily note. Script-only: Obsidian indexing (every 6h), Apple Notes (every 12h), Python projects (daily), memory optimization, cost dashboard.\nFive profiles. default (DeepSeek), zai (formerly GLM), orchestrator (multi-agent), local (Ollama on Omarchy), developer (for experiments).\nTelegram-first. I write in the chat \u0026ndash; the agent replies. I don\u0026rsquo;t open the terminal or poke around in the dashboard.\nPenPot via MCP \u0026ndash; open-source Figma on Omarchy. The agent creates and edits designs from the chat.\nMagicPath \u0026ndash; search and install UI components via AI. Officially doesn\u0026rsquo;t support Hermes, I hooked it up manually through npx.\nTL;DR # Aspect Default Mine Interface CLI + dashboard Telegram-first Gateway Off Telegram 24/7 Model Not set DeepSeek v4 Flash Compression On Off Memory 2 levels 8 levels Custom skills 0 ~50 Cron 0 11 tasks MCP 0 2 servers Profiles 1 5 tool_progress Hidden Everything visible The biggest difference is Telegram as the entry point. I don\u0026rsquo;t open the terminal to ask about the weather, set an idea reminder or trigger indexing. I just write in the chat.\nThe second is multi-level memory. Without it, the agent loses context between sessions. Now it knows where everything lives and uses the right level for each type of information.\nThe third is cron automation. The default Hermes does nothing until you type something. Mine wakes up, checks the weather, indexes notes, reminds me of ideas.\nThe fourth is the Apple stack. Not \u0026ldquo;skill exists but isn\u0026rsquo;t configured\u0026rdquo; \u0026ndash; actual working tools: Apple Notes in ChromaDB, iMessage from the chat, Reminders by voice.\nJune 16, 2026. Setup keeps evolving.\n","date":"16 June 2026","externalUrl":null,"permalink":"/posts/hermes-agent-setup/","section":"Blog","summary":"","title":"Hermes Agent: From Default to Production — My Setup","type":"posts"},{"content":"","date":"16 June 2026","externalUrl":null,"permalink":"/tags/homelab/","section":"Tags","summary":"","title":"Homelab","type":"tags"},{"content":"","date":"16 June 2026","externalUrl":null,"permalink":"/tags/setup/","section":"Tags","summary":"","title":"Setup","type":"tags"},{"content":"","date":"16 June 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"In IT since 2015. Operations → management → software development.\nNow building with AI agents.\nExplore my About Me or check out recent posts below.\n","date":"16 June 2026","externalUrl":null,"permalink":"/","section":"Welcome","summary":"","title":"Welcome","type":"page"},{"content":" Professional Summary # In IT since 2015. Started in operations, moved into project management, then switched to software development in 2022. Currently growing as a software engineer — building backend systems and using AI agents to expand into full-cycle development. Available for remote project-based work.\nGet in Touch # Telegram · GitHub · Codeberg · Email\nTechnical Skills # Category Skills Backend Development Django, DRF, FastAPI, Express.js, REST API design AI \u0026amp; Agentic Systems AI agent configuration, Prompt Engineering, AI-assisted workflows, OpenAI API Cloud \u0026amp; DevOps AWS (EC2, S3, Route 53), DigitalOcean, Docker, Nginx, Linux Databases PostgreSQL, MongoDB, SQLite Languages Python (Advanced), JavaScript/TypeScript (Intermediate) Engineering Practices OOP, Design Patterns, TDD, Clean Code, Code Review Work Experience # Software Engineer 2025 — Present Delivering end-to-end software solutions — from requirements and system architecture through development, deployment, and maintenance. Building Python-based backends, integrating AI services, and managing cloud infrastructure on AWS and DigitalOcean. LotemX (Lotem Group) 2022 — 2024 Software Engineer WiX Application: Built order data transfer system with FastAPI, deployed on DigitalOcean with Nginx and Let\u0026rsquo;s Encrypt. RESTful API design for e-commerce integration.\nMedia Player: Maintained an embedded media player system deployed across ~300 Hardkernel Odroid N2+ units. Managed a reverse proxy server on AWS (EC2, Route 53) connecting all players to a single admin panel. Relocated the Python 2 media player application from old to new hardware (Hardkernel Odroid N2+) — no Python version upgrade. Wrote and maintained system documentation.\nReefer Market: Backend endpoint development and offers system for an e-commerce store using Node.js, Express, MongoDB.\nMateacademy Jan — May 2022 Python Developer (Bootcamp) Taxi Service: Full web application with authentication and taxi service simulation. Stack: Django, MVT, PostgreSQL, Bootstrap.\nCinema: Ticketing service API with Django REST Framework and Swagger documentation.\nRoku Specialist (Freelance) 2019 — 2021 Video content preparation and processing for Roku platform. Python scripts for workflow optimization and automation. OffVariance (Gameleon team) 2019 Project Manager Managed 5-person content production team. Remote IT product development management. Released \"xG manager\" desktop app for Windows and created \"xTalk\" section on company website. Education # Degree Institution Year Status PhD in Materials Science Donbass State Engineering Academy 2021 Incomplete (3.5/4 years, war-interrupted) Master\u0026rsquo;s in Applied Mechanics (Welding) Donbass State Engineering Academy 2018 Completed Bachelor\u0026rsquo;s in Technologies and Equipment of Welding Donbass State Engineering Academy 2016 Completed Languages # Russian — Native Ukrainian — Native English — Intermediate (B1-B2, reading \u0026amp; listening comprehension, basic conversational) ","externalUrl":null,"permalink":"/about/","section":"Welcome","summary":"","title":"About Me","type":"page"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]