{"slug": "i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my", "title": "I Stopped Treating AI Agents Like Toys After Hermes Agent Started Running My Entire Week", "summary": "A solo developer from Indonesia has transformed his fragmented daily workflow by integrating Hermes Agent through Telegram as an operational layer for his entire development process. The developer, who builds AI tools for Indonesian warungs under the project Warung MiMo, found that context switching between coding, deployment, SSH management, and research was costing him approximately three hours per day in lost productivity. By treating Hermes Agent as infrastructure rather than a simple assistant, he now manages deployment, writing, server configurations, and hackathon research through persistent conversational memory, eliminating the mental tax of reconstructing state across disconnected applications.", "body_md": "*This is a submission for the Hermes Agent Challenge: Write About Hermes Agent*\n\nI am a solo developer from Indonesia.\n\nMost of my work revolves around building tools for Indonesian warungs, small neighborhood shops that still run a huge part of daily commerce here. My main project is called [Warung MiMo](https://warung-mimo.vercel.app), an AI assistant that understands natural Indonesian. It is built with Next.js 16, React 19, and TypeScript.\n\nAt first, I thought my biggest problem was code.\n\nIt was not.\n\nMy real problem was fragmentation.\n\nEvery day looked like this:\n\nOpen VS Code.\n\nOpen Telegram.\n\nOpen Vercel.\n\nOpen SSH session.\n\nOpen Dev.to draft.\n\nOpen browser tabs for hackathons.\n\nOpen another terminal for backups.\n\nOpen another terminal for monitoring.\n\nOpen notes because I forgot which VPS port I changed last month.\n\nThen repeat.\n\nPeople talk about productivity in a very shallow way. Usually it becomes some aesthetic discussion about morning routines, second monitors, or keyboard shortcuts. My issue was structural. I was constantly paying a mental tax every time I switched contexts.\n\nBy the end of the day, I was exhausted from orchestration, not engineering.\n\nThat changed after I started using [Hermes Agent](https://github.com/NousResearch/hermes-agent) daily through Telegram.\n\nThis article is not a getting started guide.\n\nThis is a real usage story from someone who accidentally turned an AI agent into an operational layer for almost everything.\n\nBefore Hermes Agent, I measured my work incorrectly.\n\nI thought I spent most of my time coding. After paying attention for a week, I realized coding was maybe half the job.\n\nThe rest was coordination.\n\nDeploying projects. Checking logs. Remembering server configs. Writing articles. Researching hackathons. Installing security tooling. Backing up infrastructure. Running cron jobs. Managing environment variables. Switching devices. Finding files. Reopening old terminal sessions. Rebuilding context from scratch.\n\nThe worst part was context switching.\n\nI would be deep inside an Indonesian NLP parser bug, then suddenly remember I forgot to rotate backups. Then I would notice a Vercel deployment issue. Then I would remember a Dev.to draft was still unpublished.\n\nBy the time I returned to the parser, my brain cache was gone.\n\nI genuinely think I lost around three hours per day just reconstructing state.\n\nNot coding. Not debugging. Reconstructing state.\n\nThat is the problem Hermes Agent solved for me.\n\nNot \"AI productivity\".\n\nOperational continuity.\n\nMost people approach agents like assistants.\n\nI use Hermes more like infrastructure.\n\nTelegram became my command center. Hermes became the layer connecting everything else.\n\nInstead of treating deployment, writing, SSH management, and research as separate tasks across disconnected apps, I started treating them as conversations with persistent operational memory.\n\nThat distinction matters.\n\nA chatbot answers questions.\n\nAn agent maintains continuity.\n\nMonday is usually research day.\n\nI look for hackathons, AI challenges, and developer competitions that fit my projects. Before Hermes, this process was terrible.\n\nI would open Devpost. Then HackerEarth. Then random Discord announcements. Then I would forget submission requirements because every challenge has different formats.\n\nNow I do most of it through Telegram.\n\nI ask Hermes something like:\n\n\"Find active developer hackathons with prize pool above $1k and deadlines within 30 days.\"\n\nHermes searches APIs, parses challenge pages, extracts requirements, and summarizes the important parts.\n\nThe interesting part is not search itself. Search is easy.\n\nThe interesting part is that Hermes remembers my preferences.\n\nIt knows I prefer challenges friendly to solo developers, public GitHub repos, AI or infrastructure categories, and working prototypes over pitch decks.\n\nThat memory changes the quality of results dramatically.\n\nAt one point Hermes even started decoding submission templates automatically. Instead of just giving me a link, it would tell me exactly which sections I needed to fill in, compare my existing drafts against the template, and point out what was missing.\n\nThat sounds small until you realize how much hidden cognitive work disappears when the agent already understands your operating style.\n\nTuesday was classic Warung MiMo chaos.\n\nI found a bug in the Indonesian number parser. The parser understood \"empat puluh dua\" but failed in certain compound phrases when users mixed shorthand inventory context with numeric words.\n\nIndonesian NLP gets messy fast because people rarely speak formally. Warung owners say things like \"tinggal tiga\", \"setengah dus\", \"habis\", \"sisa dua\", \"empat puluh dua ribu\". Those phrases contain implied meaning that generic NLP systems often miss.\n\nHere is part of the actual compound number logic from my project:\n\n``` js\nconst NUMBER_WORDS: Record<string, number> = {\n  nol: 0, satu: 1, se: 1, dua: 2, tiga: 3, empat: 4,\n  lima: 5, enam: 6, tujuh: 7, delapan: 8, sembilan: 9,\n  sepuluh: 10, sebelas: 11,\n  \"dua belas\": 12, \"tiga belas\": 13, \"empat belas\": 14,\n  \"lima belas\": 15, \"enam belas\": 16, \"tujuh belas\": 17,\n  \"delapan belas\": 18, \"sembilan belas\": 19,\n  \"dua puluh\": 20, \"tiga puluh\": 30, \"empat puluh\": 40,\n  setengah: 0.5, seperempat: 0.25,\n  \"1/2\": 0.5, \"1/4\": 0.25, \"3/4\": 0.75,\n};\n\nfunction parseIndonesianNumber(text: string): number | null {\n  const lower = text.toLowerCase().trim();\n  const sortedKeys = Object.keys(NUMBER_WORDS).sort((a, b) => b.length - a.length);\n\n  // Direct word match first\n  for (const key of sortedKeys) {\n    if (lower === key) return NUMBER_WORDS[key];\n  }\n\n  // Compound: \"empat puluh dua\" -> 42\n  let compound = 0;\n  let matched = false;\n  const parts = lower.split(/\\s+/);\n  for (const part of parts) {\n    if (NUMBER_WORDS[part] !== undefined) {\n      if (part === \"puluh\") continue;\n      const idx = parts.indexOf(part);\n      if (idx < parts.length - 1 && parts[idx + 1] === \"puluh\") {\n        compound += NUMBER_WORDS[part] * 10;\n        matched = true;\n      } else if (idx > 0 && parts[idx - 1] === \"puluh\") {\n        compound += NUMBER_WORDS[part];\n        matched = true;\n      } else {\n        compound += NUMBER_WORDS[part];\n        matched = true;\n      }\n    }\n  }\n  if (matched && compound > 0) return compound;\n\n  // Pure digit fallback\n  const digitMatch = lower.match(/^(\\d+(?:[.,]\\d+)?)$/);\n  if (digitMatch) return parseFloat(digitMatch[1].replace(\",\", \".\"));\n  return null;\n}\n```\n\nThe trick is the \"puluh\" logic. In Indonesian, \"empat puluh\" means forty (4 x 10). When the parser sees a word before \"puluh\", it multiplies by 10. When it sees a word after \"puluh\", it adds. \"Empat puluh dua\" becomes 4*10 + 2 = 42.\n\nNormally the workflow to fix and deploy this would be: open code editor, debug manually, commit, push, open Vercel, trigger deployment, watch logs, fix environment issue, repeat.\n\nInstead, the entire process became one flowing conversation.\n\nI asked Hermes to:\n\nAll inside Telegram.\n\nThe important part was context continuity. Hermes already knew the repo location, deployment setup, Vercel project config, preferred branch, and environment structure. I did not need to re-explain infrastructure every time.\n\nThat changes the emotional feel of solo development completely.\n\nWednesday is writing day.\n\nI publish technical articles because building in public keeps me sane as a solo developer.\n\nBefore Hermes, writing technical articles was annoying operationally. I would gather code snippets, open repo manually, copy examples, draft article, format markdown, upload images, publish manually, fix broken formatting.\n\nNow the workflow is dramatically different.\n\nHermes can read actual repo files, extract relevant snippets, structure articles, and publish directly through the Dev.to API.\n\nThat matters because generic AI writing often feels fake. It invents architecture details or produces sanitized tutorial content.\n\nHermes works differently because it reads the actual project.\n\nFor example, when I wrote about debt tracking in Warung MiMo, Hermes pulled the real regex patterns from the codebase:\n\n``` js\nconst debtPatterns = [\n  // \"bu sari utang 25 ribu\"\n  /(.+?)\\s+(?:utang|hutang|ngutang)\\s+(\\d+(?:[.,]\\d+)?)\\s*(ribu|rb|jt|juta)?/i,\n  // \"catat utang bu sari 25000\"\n  /(?:catat|tulis|tambah)\\s+(?:utang|hutang)\\s+(.+?)\\s+(\\d+(?:[.,]\\d+)?)/i,\n  // \"pak budi ngutang 15 ribu\"\n  /(\\w+(?:\\s+\\w+)?)\\s+ngutang\\s+(\\d+(?:[.,]\\d+)?)\\s*(ribu|rb|jt|juta)?/i,\n  // \"utang bu sari 50rb\"\n  /(?:utang|hutang)\\s+(.+?)\\s+(\\d+(?:[.,]\\d+)?)\\s*(ribu|rb|jt|juta)?/i,\n];\n\nconst settlePatterns = [\n  /bayar\\s+(?:utang|hutang)\\s+(.+)/i,\n  /(.+?)\\s+(?:bayar|lunasi|lunas)\\s+(?:utang|hutang)/i,\n  /(.+?)\\s+(?:sudah|udah)\\s+bayar/i,\n  /(?:utang|hutang)\\s+(.+?)\\s+(?:lunas|lunasi|sudah\\s*dibayar)/i,\n];\n```\n\nFour patterns for recording debt. Four patterns for settling debt. Each handles a different way Indonesians talk about money.\n\nThat instantly makes technical writing more grounded. The article stops sounding like AI generated filler and starts sounding like actual engineering notes from a real project.\n\nThen Hermes handled publishing through the API. No browser tabs. No copy paste marathon. No formatting cleanup.\n\nJust: \"Publish this to Dev.to with these tags.\"\n\nDone.\n\nThursday was infrastructure maintenance.\n\nMy VPS runs Ubuntu 24.04 with SSH on port 22022. Before Hermes, I constantly forgot little operational details: which backup directory I changed, which cron schedule I updated, which SSH config belonged to which machine.\n\nThose tiny memory leaks accumulate badly over months.\n\nHermes remembers them.\n\nThat sounds trivial until you realize how much engineering time disappears into remembering operational trivia.\n\nOne Thursday I needed to archive project backups, SCP them locally, rotate old snapshots, verify cron execution, and restart a monitoring service.\n\nHermes handled most of it conversationally.\n\nI could literally say:\n\n\"Back up the current Warung MiMo deployment, compress logs, SCP to local machine, keep only seven daily snapshots.\"\n\nHermes created a tarball of my config, memories, SOUL file, and project files, then SCP'd it to my local machine through a non-standard SSH port. I did not tell it the port number. It remembered from a previous session.\n\n```\n/root/hermes-backup-20260526.tar.gz (7.8KB)\nContents: memories/, config.yaml, SOUL.md, auth/, channel_directory/\nSCP'd to local:22022 ✓\n```\n\nThat is where the agent stopped feeling like a chatbot. It started feeling like a lightweight operations engineer.\n\nOne of the monitoring scripts Hermes generated looked like this:\n\n``` bash\n#!/bin/bash\n# VPS health check - runs every 2 hours via cron\n\necho \"=== Disk Usage ===\"\ndf -h / | tail -1\n\necho \"=== Memory ===\"\nfree -h | grep Mem\n\necho \"=== Uptime ===\"\nuptime\n\necho \"=== Hermes Gateway ===\"\npgrep -f \"hermes-gateway\" > /dev/null && echo \"Running\" || echo \"DOWN\"\n\necho \"=== Warung MiMo ===\"\ncurl -sf https://warung-mimo.vercel.app > /dev/null && echo \"Live\" || echo \"DOWN\"\n```\n\nAgain, none of this is impossible manually. That is not the point. The point is reducing operational overhead so I can focus on actual product work.\n\nFriday became security tooling day.\n\nI started experimenting with bug bounty workflows and reconnaissance automation.\n\nNormally setting up recon tooling is a tedious process: install Go dependencies, configure PATH, install nuclei, install subfinder, install httpx, create scanning scripts, configure rate limits, schedule recurring scans.\n\nHermes compressed most of this setup.\n\nI asked it to prepare a lightweight recon environment for VPS scanning experiments. It generated install scripts, organized directories, and built wrapper commands for recurring scans.\n\n```\n# Quick scan a single URL\n./quick-scan.sh https://target.com\n\n# Full domain scan (subdomain enum + http probe + nuclei)\n./bb-scan.sh target.com\n```\n\nEven better, Hermes remembered the structure later. So instead of \"Where did I put that nuclei config?\" I could ask \"Run the standard recon workflow against yesterday's target list.\"\n\nThe memory layer changes everything.\n\nA normal assistant answers isolated questions. An agent accumulates operational continuity over time.\n\nSaturday was meta because Hermes helped me research and draft this very article.\n\nNot by hallucinating generic praise. Actually helping.\n\nI asked it to analyze my real usage patterns, which workflows appeared repeatedly, which capabilities genuinely saved time, and which moments surprised me most.\n\nThen I reviewed, edited, rewrote sections, added my own perspective, and expanded the practical details.\n\nThat collaboration felt very different from generic AI writing tools. It felt more like working with an operational memory system than a text generator.\n\nPeople love using the word \"agentic\" now. Most of the time it means nothing.\n\nThese are the four capabilities that genuinely mattered for me.\n\nThis is the biggest one.\n\nHermes remembers my SSH port, VPS structure, preferred deployment flow, repo locations, writing style preferences, Dev.to publishing patterns, and toolchain setup.\n\nThe memory is stored in simple markdown files I can inspect and edit:\n\n```\n# USER.md\n- Solo developer from Indonesia\n- GitHub: iyop666\n- Main project: Warung MiMo (Indonesian NLP parser)\n- Prefers terminal + write_file over subagents\n- Never use em dashes in output\n\n# MEMORY.md\n- VPS: Ubuntu 24.04, IP: 104.207.76.95, SSH port: 22022\n- Warung MiMo deployed at warung-mimo.vercel.app\n- Dev.to draft API: use api-key header\n- Next.js + shadcn/ui preferred for demos\n```\n\nThat persistence removes an enormous amount of repetitive setup conversation.\n\nThis is where Hermes becomes genuinely powerful.\n\nTelegram becomes the interface. Hermes becomes the connector.\n\nOne workflow can touch Telegram, GitHub, VPS, Dev.to, Vercel, cron jobs, and APIs without breaking conversational continuity.\n\nThat orchestration layer feels much more valuable than isolated AI chat.\n\nHermes can execute recurring operational work. Monitoring. Backups. Health checks. Cron tasks.\n\n```\n# Hermes cron job config\nschedule: \"every 2h\"\nscript: ~/scripts/vps-health.sh\ndeliver: telegram\n```\n\nThat matters because operational fatigue is real for solo developers. Every recurring task steals attention. Automating the boring maintenance layer gives me more room for actual product work.\n\nThis capability surprised me the most.\n\nHermes reads actual project files instead of generating generic advice detached from reality.\n\nInstead of \"Here is a generic regex example\" it becomes \"Your debt parser conflicts with this existing inventory matcher in parser.ts.\"\n\nThat level of project awareness is extremely useful when working on evolving codebases.\n\nOne day I forgot which SSH port I migrated to months earlier. Hermes did not.\n\nThat sounds funny, but it exposed how much operational state developers carry mentally.\n\nThis was unexpected. I thought the main benefit would be speed. Actually, the biggest benefit was reduced resistance.\n\nTasks felt smaller because orchestration overhead disappeared. \"Deploying an update\" stopped feeling like twelve tiny chores.\n\nI expected coding help. I did not expect writing help to matter this much.\n\nBecause Hermes can pull real examples from real projects, technical writing became more grounded and less performative. That made me publish more consistently.\n\nBefore Hermes, I organized work around applications. Now I organize work around outcomes.\n\nThat sounds subtle but completely changes workflow design.\n\n**Before:**\n\n**After:**\n\nThis is not a productivity hack. That framing undersells what agents can become.\n\nFor me, this was a structural change in how work gets coordinated.\n\nThe interesting part is not replacing developers. The interesting part is reducing orchestration burden so developers can stay inside higher value thinking longer.\n\nBuilding Warung MiMo taught me something important about language.\n\nUsing Hermes taught me something important about context.\n\nLanguage without context becomes brittle. Context without continuity becomes exhausting.\n\nThat is why Hermes worked for me. Not because it produced magical AI moments. Because it maintained continuity across coding, infrastructure, writing, deployment, and research.\n\nThat continuity is what solo developers usually lack.\n\nAnd once you experience it, going back feels strangely primitive.", "url": "https://wpnews.pro/news/i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my", "canonical_source": "https://dev.to/iyop666/i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my-entire-week-22kn", "published_at": "2026-05-27 10:00:52+00:00", "updated_at": "2026-05-27 10:10:41.703551+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-products", "artificial-intelligence", "generative-ai"], "entities": ["Hermes Agent", "Warung MiMo", "NousResearch", "Indonesia", "Next.js", "React", "TypeScript", "Vercel"], "alternates": {"html": "https://wpnews.pro/news/i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my", "markdown": "https://wpnews.pro/news/i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my.md", "text": "https://wpnews.pro/news/i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my.txt", "jsonld": "https://wpnews.pro/news/i-stopped-treating-ai-agents-like-toys-after-hermes-agent-started-running-my.jsonld"}}