Hermes Agent praktiskais ceļvedis
Hermes ir Nous Research open-source autonomous AI agent, kas dzīvo uz tavas mašīnas vai servera, strādā caur CLI/TUI un gateway, atceras svarīgo, veido skills un var automatizēt atkārtotus darbus.
Personal operator
Viens aģents, kas zina tavu vidi, projektus, preferences un var turpināt darbu starp sesijām.
Server-native assistant
Palaid uz laptopa, VPS, GPU servera, Docker, SSH, Modal, Singularity, Daytona vai Termux vides.
Always-on gateway
Tas pats Hermes var dzīvot CLI un ziņapmaiņas platformās, saglabājot sesijas, approvals un automations.
Pirmās 10 minūtes
- 1.Uzstādi un konfigurē provider/model ar hermes setup vai hermes model.
- 2.Palaid vienu vienkāršu CLI query bez gateway un bez cron.
- 3.Atver TUI ar hermes --tui, lai pārbaudītu praktisku termināļa workflow.
- 4.Palaid hermes doctor un salabo tikai tās lietas, kas tiešām bloķē darbu.
- 5.Tikai pēc tam pieslēdz skills, gateway, webhooks vai automations.
hermes setup hermes model hermes chat -q "Say hello and explain what tools are available." hermes --tui hermes doctor
Praktiskā secība: vispirms lokāla saruna, tad TUI, tad memory/skills, un tikai beigās gateway vai automations. Tas palīdz atšķirt model/provider problēmas no platformu un drošības konfigurācijas.
No instalācijas līdz pirmajai stabilai sarunai
Uzstādi Hermes, pārlādē shell profilu, konfigurē modeli un pārbaudi vidi ar doctor. Tikai pēc tam pieslēdz gateway, cron, webhooks vai papildus toolsets.
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.bashrc # or source ~/.zshrc hermes setup hermes model hermes doctor
hermes chat -q "Check my current directory and tell me what looks like the main project file." hermes status --all hermes --tui
Setup noteikumi
- •Linux, macOS, WSL2 un Android/Termux ir atbalstīti; native Windows vietā lieto WSL2.
- •Secrets glabājas ~/.hermes/.env, bet parastā konfigurācija ~/.hermes/config.yaml.
- •Provider, OAuth/API key un default model konfigurē ar hermes model vai hermes setup.
- •Modelim vajag lielu context window; Hermes docs iesaka vismaz 64K context stabilam tool-calling darbam.
- •Pirms gateway, cron vai skills slēgšanas palaid hermes doctor un vienu vienkāršu CLI/TUI sarunu.
Soli pa solim: Local, Docker, SSH
Izvēlies backend pēc riska līmeņa. Local ir vienkāršākais, Docker dod sandbox izolāciju, bet SSH ļauj darbu pārcelt uz remote serveri. Sāc ar vienu režīmu un pārbaudi ar hermes doctor pirms slēdz nākamo.
Local
Ātrākais starts, personīgs dev darbs, laptop/VPS bez izolācijas prasības.
Prasības
- •Linux, macOS, WSL2 vai Termux
- •Shell piekļuve un model provider/API key
- •Sapratne, ka Hermes redz tos pašus failus, ko tavs user account
Svarīgi
- •Nav īpašas terminal backend konfigurācijas.
- •Drošākais mācību sākums, bet ne drošākais riskantām komandām.
- •Ja komandas nestrādā citos backendos, atgriezies uz local un pārbaudi pamatsetupu.
Docker
Sandboxing, CI/CD, izolēti eksperimenti un drošāka komandu palaišana.
Prasības
- •Docker Desktop vai Docker Engine installed and running
- •docker version strādā bez kļūdām
- •Apzināti mounti, ja Hermes jāredz host projekti vai dati
Svarīgi
- •Docker var būt terminal backend vai arī pats Hermes var skriet containerī.
- •Docker backend pēc noklusējuma nepadod visu host cwd containerī.
- •Forwardo tikai tās credentials, kas tiešām vajadzīgas, piemēram GITHUB_TOKEN.
SSH
Remote dev serveri, jaudīgāks hardware, GPU/VPS vai vide, kur aģentam nav jāmutē lokālais dators.
Prasības
- •Passwordless SSH jau strādā no tavas mašīnas
- •TERMINAL_SSH_HOST un TERMINAL_SSH_USER ir iestatīti
- •Remote hostā ir vajadzīgie runtime: bash, git, python/node pēc vajadzības
Svarīgi
- •Persistent shell SSH backendā ir ieslēgts pēc noklusējuma.
- •State kā cwd un export variables var saglabāties starp komandām.
- •Sudo/stdin gadījumos Hermes var pāriet uz one-shot command režīmu.
# 1) Install Hermes locally curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.bashrc # or source ~/.zshrc # 2) Configure model/provider and terminal backend hermes setup hermes config set terminal.backend local # 3) Verify the setup hermes doctor hermes chat -q "Run pwd and tell me where you are."
# 1) Verify Docker works docker version # 2) Use Docker as Hermes terminal sandbox hermes config set terminal.backend docker # Optional: mount project folder into /workspace hermes config edit # terminal: # backend: docker # docker_image: "nikolaik/python-nodejs:python3.11-nodejs20" # docker_mount_cwd_to_workspace: true # docker_volumes: # - "/home/user/projects:/workspace/projects" # 3) Test sandboxed terminal work hermes doctor hermes chat --toolsets terminal -q "Run node --version and python --version."
# Run Hermes itself inside Docker for setup mkdir -p ~/.hermes docker run -it --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent setup # Run persistent gateway container docker run -d --name hermes --restart unless-stopped -v ~/.hermes:/opt/data -p 8642:8642 nousresearch/hermes-agent gateway run
# 1) Confirm passwordless SSH works first ssh ubuntu@my-server.example.com 'echo ok && pwd' # 2) Configure Hermes terminal backend hermes config set terminal.backend ssh hermes config set TERMINAL_SSH_HOST my-server.example.com hermes config set TERMINAL_SSH_USER ubuntu # Optional hermes config set TERMINAL_SSH_PORT 22 hermes config set TERMINAL_SSH_KEY ~/.ssh/id_ed25519 # 3) Test remote execution hermes doctor hermes chat --toolsets terminal -q "Run hostname, pwd, and python3 --version."
Provider izvēle
Sāc ar vienu stabilu provider/model kombināciju. Vēlāk vari pārslēgt provider vai modeli bez visas instalācijas pārtaisīšanas.
Komandas, kas ikdienā tiešām noder
Hermes CLI nav web UI wrapperis — tas ir pilns termināļa workflow ar multiline editing, slash-command autocomplete, session resume, streaming tool output un modernu TUI režīmu.
Operator cheatsheet
hermes hermes --tui hermes chat -q "Hello" hermes chat --provider nous hermes chat --model "anthropic/claude-sonnet-4" hermes chat --toolsets "web,terminal,skills" hermes --continue hermes --resume <session_id> hermes -w -q "Fix issue #123" hermes logs -f hermes backup --quick --label "pre-upgrade"
CLI/TUI
3 praktiskas komandas šim workflow.
Model
2 praktiskas komandas šim workflow.
Tools
1 praktiskas komandas šim workflow.
Skills
2 praktiskas komandas šim workflow.
Sessions
2 praktiskas komandas šim workflow.
Worktree
1 praktiskas komandas šim workflow.
Debug
1 praktiskas komandas šim workflow.
Maintenance
3 praktiskas komandas šim workflow.
hermesStartē klasisko interaktīvo CLI sesiju terminālī.
hermes --tuiStartē moderno TUI ar modal overlays, mouse selection un non-blocking input.
hermes chat -q "Summarize this repo in 5 bullets"Vienreizējs non-interactive query no shell.
hermes chat --model "anthropic/claude-sonnet-4"Palaid sarunu ar konkrētu modeli.
hermes chat --provider openrouterPiespied konkrētu provider šai sesijai.
hermes chat --toolsets "web,terminal,skills"Startē ar konkrētiem toolsets, nevis visu uzreiz.
hermes -s hermes-agent-dev,github-authStartē interaktīvu sesiju ar vienu vai vairākām skills preloaded.
hermes chat -s github-pr-workflow -q "open a draft PR"Vienreizējs uzdevums ar konkrētu skill.
hermes --continueTurpina pēdējo CLI sesiju.
hermes --resume <session_id>Atver konkrētu sesiju pēc ID.
hermes -w -q "Fix issue #123"Izolēts git worktree režīms paralēlam agent darbam.
hermes chat --verboseVerbose režīms, kad vajag redzēt vairāk diagnostikas.
hermes logs -fSeko agent/gateway/error logiem reāllaikā.
hermes backup --quick --label "pre-upgrade"Snapshot pirms upgrade vai riskantām izmaiņām.
hermes updateAtjaunina Hermes kodu un dependencies.
MEMORY.md un USER.md — kas kur jāglabā
Hermes memory nav dienasgrāmata. Tā ir īsa, kurēta atmiņa, kas sesijas sākumā tiek ielādēta kontekstā, lai aģents atceras svarīgāko par tavu vidi, projektiem un darba stilu.
~/.hermes/ ├── config.yaml # model, terminal, TTS, compression, tool settings ├── .env # API keys and secrets — never paste into chat ├── SOUL.md # primary agent identity / personality ├── memories/ │ ├── MEMORY.md # what Hermes should remember about environment + projects │ └── USER.md # what Hermes should remember about you ├── skills/ # installed and agent-created skills ├── sessions/ # conversation history ├── cron/ # scheduled jobs └── logs/ # runtime logs, errors, gateway logs
hermes memory setup hermes memory status hermes config edit hermes config set memory.memory_enabled true hermes config set memory.user_profile_enabled true
Kā memory strādā
- MEMORY.md ir aģenta darba atmiņa: vide, projekti, komandas, konvencijas un mācības no iepriekšējām sesijām.
- USER.md ir lietotāja profils: valoda, komunikācijas stils, preferences, robežas un atkārtotas korekcijas.
- Abi faili dzīvo
~/.hermes/memories/un tiek injicēti system prompt kā frozen snapshot sesijas sākumā. - Ja memory tiek labota sesijas laikā, izmaiņas saglabājas diskā, bet pilnā kontekstā tās parasti parādās nākamajā sesijā.
- Memory tool var
add,replaceunremove; parasts “read” nav vajadzīgs, jo memory jau ir kontekstā.
MEMORY.md
~/.hermes/memories/MEMORY.mdHermes darba atmiņa par vidi, projektiem, komandām, konvencijām un ilgtermiņa lēmumiem.
Glabā šeit
- •OS/shell un runtime īpatnības
- •repo test/lint/build komandas
- •projektu ceļi un deploy piezīmes
- •kļūdas, kuras nevajag atkārtot
Neglabā šeit
- •lietotāja personīgais tonis
- •secrets vai tokeni
- •garas logu kopijas
- •vienreizējs debug troksnis
USER.md
~/.hermes/memories/USER.mdLietotāja profils: komunikācijas stils, preferences, darba ritms un robežas.
Glabā šeit
- •valoda un atbildes garums
- •formatēšanas preferences
- •riska tolerance
- •korekcijas: ko vairs neatkārtot
Neglabā šeit
- •projekta tehniskās detaļas
- •repo ceļi un komandas
- •API keys vai paroles
- •sensitīva privāta informācija bez vajadzības
# MEMORY.md - Environment: macOS + zsh. Main projects live in ~/projects/. - This repo uses bun, eslint, and Vite. Do not run production deploy commands without approval. - For this project, prefer small focused React components and semantic design tokens. - If Docker backend fails, test local backend first with hermes doctor.
# USER.md - User prefers concise Latvian explanations with clear next steps. - User wants practical examples, not abstract documentation summaries. - Do not ask for confirmation for obvious safe UI/content edits. - Warn clearly before destructive commands or risky automation.
Ieteicamās mapes un ceļi
~/.hermes/memories/Galvenā vieta built-in memory failiem. Šeit jābūt MEMORY.md un USER.md.
~/.hermes/skills/Procedurālās zināšanas un atkārtojami workflow, nevis parasta memory.
~/.hermes/cron/Scheduled jobs definīcijas; memory vietā glabā tikai ilgtermiņa faktus par cron lēmumiem.
~/.hermes/logs/Debug un runtime logs. Nekopē lielus logus memory — saglabā tikai secinājumu.
project/.hermes.md vai AGENTS.mdRepo-specifiskas instrukcijas, kurām jādzīvo kopā ar projektu, nevis globālajā USER.md.
Ko saglabāt memory
- •Environment facts: OS, shell, Docker/Podman, project paths, deployment quirks.
- •Project conventions: test command, lint command, coding style, services, staging hosts.
- •User preferences: concise vs detailed, language, formatting, risk tolerance.
- •Corrections: what not to repeat, commands that failed, safe alternatives.
- •Completed durable work: migrations, operational changes, long-lived decisions.
Ko labāk nesaglabāt
- •Large logs, raw data dumps, temporary paths, and one-off debugging noise.
- •Facts Hermes can rediscover quickly with docs or code search.
- •Information already stored in AGENTS.md, SOUL.md, or project context files.
- •Secrets, API keys, private tokens, SSH keys, or credentials.
Kapacitātes disciplīna
MEMORY.md
2,200
chars approx.
USER.md
1,375
chars approx.
Kad memory tuvojas 80%, nekrauj klāt jaunus punktus — apvieno līdzīgās piezīmes. Īsa, blīva memory ir vērtīgāka nekā gara vēsture.
External providers
Built-in memory paliek pamats. Ārējie memory provideri ir optional un parasti tikai viens ir aktīvs vienlaikus.
How Hermes grows capabilities
Skills are portable procedural knowledge. Tools are executable capabilities. Together they let Hermes turn repeated work into reusable workflows without stuffing every instruction into every prompt.
Skill model
- Skills live in
~/.hermes/skills/, which is the main source of truth for bundled, hub-installed, and agent-created skills. - Every installed skill can appear as a slash command, for example
/plan,/github-pr-workflow, or/excalidraw. - Progressive disclosure keeps token usage controlled:
skills_list()→skill_view(name)→skill_view(name, path). - Required environment variables are requested securely in local CLI setup. Messaging surfaces should never ask users to paste secrets in chat.
hermes chat --toolsets web,terminal,skills hermes tools hermes skills hermes mcp hermes plugins
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
metadata:
hermes:
tags: [automation]
category: devops
requires_toolsets: [terminal]
---
# Skill Title
## When to Use
Trigger conditions for this skill.
## Procedure
1. Step one
2. Step two
## Verification
How to confirm it worked.Common toolsets
Toolsets can be enabled per platform. Start narrow, then expand once you trust the workflow.
Terminal backends
localTrusted development on your own machine.
dockerIsolated containers for safer reproducible work.
sshRemote server execution so the agent cannot mutate its own host.
singularityHPC / Apptainer-style rootless containers.
modalServerless cloud execution that can scale and idle down.
daytonaPersistent remote dev workspaces.
Hermes kā always-on messaging agent
Gateway ir viens background process, kas savieno Hermes ar chat platformām, uztur sesijas, palaiž cron jobs un piegādā atbildes. Sāc privāti, ar vienu platformu, un tikai pēc tam paplašini.
hermes gateway setup hermes gateway run hermes gateway install hermes gateway start hermes gateway status hermes gateway stop
Start with one platform
Sāc ar privātu Telegram, Discord vai Slack konfigurāciju, lai debug ir vienkāršs.
Run foreground first
hermes gateway run ir labāks pirmajai pārbaudei, jo logus redzi uzreiz.
Install service later
Kad viss strādā, instalē gateway kā user service vai launchd service.
Feature support varies
Voice, images, files, threads, reactions, typing un streaming nav vienādi visās platformās.
Messaging platforms
Configure platforms with hermes gateway setup. Platformām ir atšķirīgs atbalsts voice, images, files, threads, reactions, typing indicators un streaming iespējām.
Drošības slāņi pirms uztici Hermes īstu vidi
Hermes var palaist shell komandas, lietot tools un strādāt caur messaging platformām, tāpēc drošība nav papildu “nice to have”. Saglabā approvals ieslēgtus un riskantos darbus izolē container vai remote backend vidē.
Drošības checklist pirms “always-on” režīma
Izmanto šo kā minimālo pārbaudi pirms atver Hermes komandai, webhooks vai publiski sasniedzamam gateway. Mērķis nav visu bloķēt — mērķis ir skaidri zināt, kurš drīkst runāt ar aģentu, ko aģents drīkst darīt un kur tiek glabāti dati.
Paroles un atļaujas
Pie Hermes tiek tikai konkrēti, autorizēti lietotāji.
- ✓Ieslēdz platformas allowlist / pairing un atļauj tikai konkrētus user IDs vai DM sarunas.
- ✓Nelieto koplietotas paroles vai vienu botu visai komandai bez individuālas autorizācijas.
- ✓API keys un tokens glabā tikai ~/.hermes/.env vai platformas secret store, nevis chatā vai MEMORY.md.
- ✓Atļauj terminal/file tools tikai tiem kanāliem, kuriem tie tiešām vajadzīgi.
Ieteicamais iestatījums
Private by default: allowlist on, DM/pairing on, approvals.mode = manual.
Gateway hardening
Gateway process ir stabils, privāts un neatver liekus portus internetam.
- ✓Pirmo konfigurāciju testē ar hermes gateway run foreground režīmā, tikai pēc tam instalē service.
- ✓Ja atver portu 8642 dashboard/API vajadzībām, turi to aiz VPN, reverse proxy auth vai lokāla firewall.
- ✓Production-like vidē lieto Docker/SSH/Modal/Daytona backend, nevis lokālu host shell ar pilnu filesystem piekļuvi.
- ✓Regulāri pārbaudi hermes gateway status un hermes logs -f pēc izmaiņām platformu konfigurācijā.
Ieteicamais iestatījums
Startē ar vienu platformu, service tikai pēc testiem, publiskus portus neatver bez papildu auth.
Rate limiting un abuse kontrole
Ziņapmaiņas boti un webhooks nevar nekontrolēti iztērēt budžetu vai palaist pārāk daudz darbu.
- ✓Lieto platformu vai reverse proxy rate limits, ja gateway/webhooks ir sasniedzami ārpus privātas vides.
- ✓Atsevišķi ierobežo webhooks avotus ar HMAC/signature verification un known sender allowlist.
- ✓Cron un webhook uzdevumus sāc ar read-only darbībām; rakstošiem darbiem atstāj manual approval.
- ✓Komandas botiem piešķir mazāku toolset klāstu nekā personīgajam privātajam kanālam.
Ieteicamais iestatījums
Private chat: allowlist. Public webhook/API: reverse proxy limits + signed requests + manual approvals.
Datu privātums
Atmiņā, skills un logs nenonāk sensitīvi dati, kurus nevajag glabāt ilgtermiņā.
- ✓Nekad neliec API keys, SSH keys, passwords vai private tokens MEMORY.md, USER.md vai skills failos.
- ✓Memory glabā tikai ilgtermiņa secinājumus, nevis pilnus klientu datus, logus vai privātas sarunas.
- ✓Docker backendam forwardo tikai konkrētas env vars ar docker_forward_env, nevis visu shell environment.
- ✓Pirms dalies ar hermes dump vai logiem, pārliecinies, ka secrets ir redacted un nav sensitīvu payloadu.
Ieteicamais iestatījums
Secrets tikai ~/.hermes/.env; memory tikai augsta signāla fakti; logs pārbaudi pirms koplietošanas.
approvals:
mode: manual
timeout: 60
terminal:
backend: docker # safer than local for risky commands
docker_mount_cwd_to_workspace: false
docker_forward_env:
- "GITHUB_TOKEN" # only if this token is actually needed
# For SSH backend, keep remote execution explicit:
# terminal:
# backend: ssh
# persistent_shell: true
# TERMINAL_SSH_HOST=my-server.example.com
# TERMINAL_SSH_USER=ubuntuPraktiska secība
- 1. Sākumā private DM + allowlist + manual approvals.
- 2. Pārbaudi terminal backend ar harmless command:
pwd,hostname,whoami. - 3. Rakstošiem tools lieto Docker/SSH sandbox, nevis local backend.
- 4. Tikai pēc tam slēdz cron, webhooks un komandas platformas.
approvals: mode: manual # manual | smart | off timeout: 60 # fail closed if no response
Manual
Default un drošākais režīms. Dangerous commands prasa skaidru apstiprinājumu.
Smart
Papildu modelis vērtē risku; labs tikai pēc workflow izpratnes.
Off / YOLO
Tikai disposable/trusted sandbox vidē, nevis galvenajā datorā vai production serverī.
User authorization
Lieto allowlists, pairing, DM rules un platform-specific authorization pirms botu atver citiem.
Dangerous command approval
Destructive shell, SQL, filesystem, service un remote-script patterns prasa cilvēka apstiprinājumu.
Fail-closed timeout
Ja approval netiek dots laikā, komanda tiek noraidīta pēc noklusējuma.
Container isolation
Docker, Singularity, Modal un Daytona var būt drošības robeža terminal execution darbiem.
MCP credential filtering
MCP subprocesses saņem tikai tās environment variables, kas tiem tiešām vajadzīgas.
Context scanning
Project context files tiek pārbaudīti pret prompt-injection risku pirms ievietošanas kontekstā.
Cross-session isolation
Sesijas nevar brīvi lasīt cita citas state; cron storage paths ir aizsargāti pret traversal.
Input sanitization
Working-directory un terminal backend inputs tiek validēti pirms komandu izpildes.
Cron un webhooks ikdienas darbiem
Hermes automations ir domātas regulāriem statusiem, pārbaudēm, briefingiem, repo notikumiem un alertiem. Sāc ar lasošiem uzdevumiem, pēc tam pieslēdz rakstošus workflow tikai ar approval un sandbox drošību.
/cron add 30m "Remind me to check the build" /cron add "every 2h" "Check server status" /cron add "every 1h" "Summarize new feed items" --skill blogwatcher hermes cron list hermes cron create hermes cron tick hermes webhook subscribe <name>
Natural language schedules
Izveido vienreizējus vai atkārtotus uzdevumus ar “30m”, “every 2h” vai cron expression stilu.
Lifecycle control
Cron jobs var list, edit, pause, resume, run/trigger un remove, tāpēc nav jāpārraksta viss no nulles.
Skills in automations
Automations var piesaistīt vienu vai vairākus skills, lai periodiski uzdevumi lieto to pašu workflow zināšanu.
Delivery targets
Rezultātus var nosūtīt atpakaļ uz sākotnējo chat, lokālu failu vai konfigurētu platformas targetu.
Webhooks
Ārēji eventi no GitHub, GitLab, JIRA, Stripe u.c. var palaist Hermes agent run ar parakstu pārbaudi.
Runaway loop guard
Cron sesijām nedrīkst nekontrolēti veidot jaunas cron jobs; tas samazina pašpavairojošu automation loop risku.
