Hermes Agent - Current Functionalities

Created: 2026-05-16 | Tags: hermes, infrastructure, reference

Hermes Agent (Nous Research) is an open-source AI agent framework running on Linux via Telegram gateway. This page documents current setup and capabilities.

Architecture Overview

  • Host: Linux 6.8.0-generic (bare metal VPS)
  • Model: DeepSeek Chat via DeepSeek provider
  • Interface: Telegram DM (primary), CLI (secondary)
  • Installation: Git clone at ~/.hermes/hermes-agent/
  • Config: ~/.hermes/config.yaml, secrets in ~/.hermes/.env

Core Capabilities

Conversation & Memory

  • Persistent cross-session memory (2,200 char limit, auto-consolidates)
  • User profile store (1,375 char limit)
  • Session search across past conversations (FTS5-backed SQLite)
  • Context compression at token limit threshold

Toolsets (always enabled)

ToolsetPurpose
terminalShell commands, process management, builds, git
fileRead, write, patch, search files
browserBrowser automation (local Chromium via Browserbase)
webWeb search and content extraction
skillsBrowse, install, manage skills
memoryCross-session persistent memory
session_searchSearch past conversation transcripts
delegationSubagent task spawning (leaf + orchestrator)
cronjobScheduled task management
clarifyAsk user clarifying questions
messagingCross-platform message sending
todoIn-session task planning and tracking

Multi-Platform Gateway

Connected to Telegram (primary). Supported platforms include: Discord, Slack, WhatsApp, Signal, Matrix, Email, SMS, Mattermost, Home Assistant, DingTalk, Feishu, WeCom, BlueBubbles (iMessage), Weixin (WeChat), API Server, Webhooks.

Scheduled Cron Jobs

JobScheduleTypeDelivery
GitHub Daily: flutter/flutterDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: flutter/packagesDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: flutter/websiteDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: dart-lang/sdkDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: dart-lang/languageDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: google/dart-neatsDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: simolus3/driftDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
GitHub Daily: google/protobuf.dartDaily 07:00 UTCLLM (github-daily-digest skill)Telegram
ArXiv Weekly: Graphics + UIMonday 07:00 UTCLLM (arxiv-weekly skill)Telegram
XMPP PR MonitorEvery 3 days 09:00 UTCLLMTelegram

Style preference for digest: title (with link), author, date, code changes stats, summary. No emoji, consistent formatting.

Skills System

Agent-created procedural knowledge stored as SKILL.md files in ~/.hermes/skills/. Organized by category:

  • autonomous-ai-agents/ -- hermes-agent, claude-code, codex, opencode
  • creative/ -- architecture-diagram, ascii-art, excalidraw, manim-video, p5js, pixel-art, sketch
  • data-science/ -- jupyter-live-kernel
  • devops/ -- data-processing-toolkit, kanban-orchestrator, kanban-worker, self-hosted-gitops, self-hosted-services, webhook-subscriptions
  • github/ -- codebase-inspection, github-auth, github-code-review, github-issues, github-pr-workflow, github-repo-management
  • media/ -- youtube-content, spotify, gif-search
  • mlops/ -- huggingface-hub, llama-cpp, vllm, etc.
  • note-taking/ -- mdbook-wiki, obsidian
  • productivity/ -- google-workspace, notion, linear, airtable, nano-pdf, ocr-and-documents, powerpoint
  • software-development/ -- plan, spike, test-driven-development, writing-plans, subagent-driven-development, systematic-debugging, requesting-code-review

Skills auto-curated: stale skills archived, usage tracked, backed up before deletion.

Subagent Delegation

Spawn child agents with isolated context and terminal session:

  • Single: delegate_task(goal, context, toolsets)
  • Batch: up to 3 concurrent children (configurable)
  • Roles: leaf (default, cannot delegate further) or orchestrator (can spawn workers, depth limited)
  • Durable fallback: use cronjob or terminal(background=True) for work that must outlive session

Spawning Extra Hermes Instances

Independent Hermes processes via tmux for long-running missions:

  • One-shot: hermes chat -q '...'
  • Interactive: tmux session with hermes + worktree (-w) for parallel agents
  • Use case: independent coding agents working on separate branches

MCP (Model Context Protocol)

Native MCP client: connect stdio or HTTP MCP servers via config.yaml; tools auto-discovered.

Profiles

Isolated Hermes instances with separate config, sessions, skills, memory. Clone from defaults, switch at runtime.

Security Features

  • Command approval: manual (default), smart (AI-assisted), off (yolo)
  • Secret redaction: off by default, API key masking via config
  • PII redaction: hashes user IDs in gateway context
  • Website blocklist: restrict browsing domains
  • Read-only rootfs (planned for containerized deployment)

Voice

  • STT: auto-transcribe voice messages (local faster-whisper, Groq, OpenAI, Mistral)
  • TTS: Edge (free default), ElevenLabs, OpenAI, MiniMax, Mistral, NeuTTS (local)
  • Voice-to-voice mode: /voice on

Gateway Features

  • Multi-session management within Telegram (DM topics)
  • Home channel configuration
  • Message queuing for busy agents
  • Command approval prompts over DM
  • Cross-platform fan-out delivery

Key Paths

~/.hermes/config.yaml                Main configuration
~/.hermes/.env                        API keys and secrets
~/.hermes/skills/                     Installed skills
~/.hermes/sessions/                   Session transcripts
~/.hermes/logs/                       Gateway and error logs
~/.hermes/auth.json                   OAuth tokens and credential pools
~/.hermes/hermes-agent/               Source code (git-installed)
~/.hermes/migration-plan-reference.md Infrastructure migration plan