witcheer's Wingtips for Hermes Agent

Every Hermes Agent tip from witcheer at Nous Research, in his own words. Collected in one place and updated daily.

Official tips from witcheer at Nous Research · Follow @witcheer · Full collection

witcheer says each tip ran on a real Hermes box before it shipped. Hermes changes fast, so check your version and the linked doc.

witcheer

Latest tip #113 · switch projects from the chat · Oct 29, 2026

Wingtips

113 of 113 entries

  1. #113 · switch projects from the chat

    · Desktop app · Desktop

    a project in Hermes Agent is a named workspace that can hold several folders, say an API repo and a WEB repo for one app.

    in Hermes Desktop you can move a chat into one by asking:

    switch this chat to my Recipe Box project

    Hermes finds it by name and moves the chat's workspace to the project's primary folder. ask which projects you have and it lists them, with the one this chat is in.

    nice when one chat turns into work on another app, or when you hop between a side project and the day job!

    docs: https://hermes-agent.nousresearch.com/docs/reference/tools-reference

  2. #112 · a scheduled job that runs once

    · Scheduling & automation · CLI / Gateway

    start the schedule with "in" and the job runs one time:

    hermes cron create "in 2h" "Remind me to call the dentist before they close."

    your gateway runs it once, two hours from now, and the job then clears itself from your list. "in 30m" and "in 1d" work the same way.

    handy for a call to return, a parcel to chase or a build to check later today!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/cron

  3. #110 · browser.headed

    · Tools, MCP & plugins · CLI / Desktop / Gateway

    Hermes Agent's local browser runs in the background by default. one setting opens it as a Chromium window on your screen:

    hermes config set browser.headed true

    you see every page and click as the agent works. the window also stays open between turns, so you can sign in or clear a CAPTCHA yourself, and your login stays warm across the conversation.

    great for watching a new task run the first time, a site that asks you to sign in or a demo for a friend!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/browser

  4. #111 · name the skill, then call it

    · Skills & instructions · CLI / Desktop / Gateway

    when you and your agent finish a task you will do again, ask it to keep the steps as a skill:

    save what we did as a skill called weekly-update

    it writes the steps from the chat you had and saves them. the name you pick becomes a slash command, so in a new chat you type /weekly-update with your notes and it follows the same steps.

    great for a weekly update, a report you format the same way every time or a setup you repeat on each new project!

    docs: https://hermes-agent.nousresearch.com/docs/guides/tips#when-to-create-skills

  5. #109 · hermes plugins search

    · Tools, MCP & plugins · CLI

    the Hermes plugin catalog is a reviewed list of plugins you can install by name. you can search it from your terminal:

    hermes plugins search <term>

    type a word like weather, rss or telegram. Hermes matches it against plugin names, descriptions and the tools each plugin adds, and the results end with the install line. the install then asks if you want the plugin on straight away.

    great when you want weather tools for your agent, an RSS reader in Hermes Desktop or a new memory provider!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/plugins

  6. #108 · hermes memory setup

    · Memory & context · CLI

    Hermes Agent keeps its own memory in MEMORY.md and USER.md. a memory provider runs alongside it and adds things like semantic search, knowledge graphs and automatic fact extraction.

    one command walks you through adding one:

    hermes memory setup

    pick a provider from the list, answer its setup questions and start a new session. your built-in memory stays on the whole time.

    great for a long project, a research habit or an agent you talk to every day!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/memory-providers

  7. #106 · Telegram messages sent while your agent was off

    · Messaging · Gateway

    by default, when your Hermes Agent's gateway starts, it skips the Telegram messages that arrived while it was off.

    if your agent runs on a computer that sleeps or shuts down at night, set this once:

    hermes config set platforms.telegram.extra.drop_pending_on_cold_boot false

    on the next start, those messages come in, in order.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/telegram#cold-boot-pending-queue-optional

  8. #98 · set your agent's timezone

    · Setup & config · CLI / Desktop / Gateway

    is your Hermes Agent on a server in another timezone? give it yours:

    hermes config set timezone America/New_York

    the agent clock and your cron schedules follow that zone, so a job set for 8am runs at 8am where you are.

    use your zone's IANA name, like Europe/London or Asia/Kolkata.

    set it once, before your first morning brief or daily reminder!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#timezone

  9. #96 · take back your last message

    · Everyday controls · CLI / Desktop / Gateway

    sent something and want to ask it another way?

    /undo

    it removes your last message and the agent's reply from the chat. the agent carries on from the message before it, so you can ask again the way you meant.

    handy when you change your mind halfway through a chat!

    Hermes asks before it removes anything: approve this once, approve from now on, or cancel. /undo changes the chat, not your files; for files the agent changed, that's /rollback with checkpoints on (Wingtips #33).

    docs: https://hermes-agent.nousresearch.com/docs/reference/slash-commands

  10. #94 · attach a file to your message

    · Memory & context · CLI

    your Hermes Agent can take a whole file as part of your message, with no copy and paste.

    type @, pick file: from the menu, then add the file's name and your question:

    @file:meeting-notes.md turn this into a to-do list

    handy for meeting notes, or a config file you want checked!

    on X the line carries a space after the @ so it doesn't tag an account. type it with no space.

    only part of a file? add the line numbers after the name: @file:meeting-notes.md:3-5 sends lines 3 to 5.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/context-references

  11. #93 · let your Hermes Agent install its own skills

    · Skills & instructions · CLI / Desktop / Gateway

    your Hermes Agent can find a skill and run the install itself, so you don't need the skill's name or the command. ask in plain words:

    "find a skill for flashcards and install it."

    it picks a match, runs the security scan and then tells you what to say to use the new skill.

    handy when you want your agent to pick up something new, or when you're setting up a fresh profile!

    it knows how because every Hermes Agent ships with a built-in skill called hermes-agent, which covers how Hermes works and how to configure it.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/skills

  12. #92 · Nous Portal in one command

    · Setup & config · CLI

    on a fresh install, this one command logs your Hermes Agent in to Nous Portal and sets Nous as your provider. it turns on the Tool Gateway too:

    hermes setup --portal

    your browser opens for the login and you pick a model. then you're back in the terminal, ready to chat.

    with any paid Nous Portal plan, that same login gives your agent web search, image generation, text-to-speech and a cloud browser, without one extra API key to set up!

    to see what got switched on, run hermes portal info.

    docs: https://hermes-agent.nousresearch.com/docs/integrations/nous-portal

  13. #91 · files in your Telegram chat, ask for a PDF and it arrives as an attachment

    · Messaging · Gateway

    your Hermes Agent can send you files on Telegram, not only text.

    want something you can read later on your phone, or forward to someone?

    ask for the format in your message:

    "send me that as a PDF"

    Hermes makes the file and it arrives in the chat as an attachment.

    it works for a chart too, which comes through as an image, or a table as a spreadsheet!

    want it every time? add a line to your ~/.hermes/SOUL.md asking for files over long text replies in chat.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/deliverable-mode

  14. #90 · /blueprint, a ready-made automation scheduled as a cron job, no cron syntax

    · Scheduling & automation · CLI / Desktop / Gateway

    it sets up a ready-made automation for your Hermes Agent. Hermes asks you what it needs, one question at a time, then schedules it as a cron job. you do not write any cron syntax.

    want a short lesson on a topic you pick, every weekday morning?

    type this in the chat:

    /blueprint learn-daily

    other blueprints cover a reminder in your own words, or a weekly meal plan with the grocery list!

    /blueprint on its own lists every blueprint your Hermes Agent has.

    docs: https://hermes-agent.nousresearch.com/docs/reference/automation-blueprints-catalog

  15. #89 · /branch, copy the conversation into a new session and try another direction, the original kept

    · Memory & context · CLI / Gateway

    it copies your conversation with your Hermes Agent into a new session, history included, and you carry on in the copy.

    want to try a different idea without losing where you are?

    type this in the chat:

    /branch

    useful before a big change of direction, or to compare two answers from the same starting point!

    name the branch if you like: /branch plan-b. without a name it takes the original title with a number.

    docs: https://hermes-agent.nousresearch.com/docs/reference/slash-commands

  16. #88 · /context, see what fills your model's context window, by category, with the free space left

    · Memory & context · CLI / Desktop / Gateway

    your Hermes Agent's context window holds more than your messages: the system prompt, the tool definitions, your memory, any project rules and the conversation so far.

    how much room does each one take?

    type this in the chat:

    /context

    you get a breakdown of the window by what fills it, with the free space that is left.

    useful before a long session, or when you want to see how close a chat is to compressing!

    docs: https://hermes-agent.nousresearch.com/docs/reference/slash-commands

  17. #87 · /handoff, move a live terminal chat to your phone's messaging app with its full history

    · Messaging · CLI / Gateway

    you are mid-conversation with your Hermes Agent in the terminal and you have to leave your desk.

    type this in the chat:

    /handoff telegram

    the session moves to your Telegram home channel with its full history, and the agent replies there with a short summary of where you left off. you carry on from your phone.

    useful when you head out mid-project, or when a chat you started at your desk needs finishing on the train!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/sessions#cross-platform-handoff

  18. #86 · hermes send, message your chats from any script

    · Messaging · CLI

    one command sends a message from any script to the platforms your Hermes Agent is already set up on.

    it uses your gateway's bot credentials and makes no model call.

    hermes send --to telegram "deploy finished"

    or pipe anything into it:

    tail -n 20 build.log | hermes send --to telegram

    useful in cron scripts, CI jobs, or as a ping when a long training run is done!

    docs: https://hermes-agent.nousresearch.com/docs/guides/pipe-script-output

  19. #85 · hermes pause, stop your agent starting new work

    · Scheduling & automation · CLI / Desktop / Gateway

    one command stops your Hermes Agent from starting new work. while it is on:

    • no cron job fires
    • no kanban task is dispatched
    • your gateway bots start no new turns

    hermes resume lifts it.

    useful when a scheduled job does something you did not expect, or before you change a skill your cron jobs use!

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/cron#pausing-everything-hermes-pause

  20. #84 · mcp.discovery_concurrency, how many MCP servers connect at once

    · Tools, MCP & plugins · CLI / Desktop / Gateway

    new in Hermes Agent: a cap on how many MCP servers connect at the same time.

    the servers in your config connect when your Hermes Agent starts, and each local one runs as its own process.

    raise it to bring a long list of servers up sooner, or lower it on a small machine.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp#discovery-time

  21. #83 · approvals.denial_breaker_threshold, the smart-approval denial breaker

    · Security & approvals · CLI / Desktop / Gateway

    when the smart-approval reviewer denies a command, Hermes Agent can try a variation of it.

    this key counts those denials in a row, per session. at 3, the deny message tells the agent to stop, report what was blocked, and ask you to run it yourself or /approve it.

    lower it to stop sooner, or set 0 to turn it off.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#denial-circuit-breaker

  22. #82 · agent.session_stall_timeout, the stall notice explained

    · Maintenance & updates · Gateway

    if your Hermes bot has ever sent "Agent session appears stalled", that is a watchdog, and it never stops the turn.

    it speaks up once when you have sent a follow-up and the agent has shown no activity for 5 minutes. then it is your call: /new, /stop, or keep waiting.

    raise the number for long jobs, or set 0 to turn it off.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#session-stall-watchdog

  23. #81 · unauthorized_dm_behavior, what your bot says to someone you have not approved

    · Security & approvals · Gateway

    when someone you have not approved messages your Hermes bot, it answers with a one-time pairing code, so you can let them in from the CLI.

    new in Hermes Agent: if the bot is only for you, it can say no instead.

    unauthorized_dm_behavior: decline

    one short, polite decline, then silence toward that sender for a day.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#unauthorized-dm-behavior

  24. #80 · skills.auto_load, the skills you want in every session, pinned

    · Skills & instructions · CLI / Desktop / Gateway · Hermes v0.21.4+

    Hermes Agent loads a skill when a task calls for it. some skills you want in every session whatever the task: a house style, a review checklist, the way you write commits.

    new in Hermes Agent (v0.21.4 and newer): this key pins them. every name on the list is fully loaded at the start of every new session, on the CLI, on every gateway platform, in cron jobs.

    skills:
      auto_load:
        - my-workflow
        - github-pr-workflow
    

    resolved once, when the prompt is first built, so the prompt stays cache-stable. an edit to the skill shows up in the next session.

    hermes -s <skill> does the same for one launch. per profile, empty by default.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#auto-loading-skills-every-session

  25. #79 · agent.disabled_toolsets, one list that turns a toolset off on every platform

    · Tools, MCP & plugins · CLI / Desktop / Gateway

    Hermes Agent picks its tools per platform: the CLI, Telegram, Discord and the rest each keep their own list of toolsets, set in hermes tools.

    this key is one list above all of them. a toolset named here is removed everywhere at once, on the CLI and on every gateway platform. it is applied after the per-platform lists.

    agent:
      disabled_toolsets:
        - web
        - memory
    

    web takes web_search and web_extract out of every session. memory removes the memory tools and also drops the memory guidance from the prompt.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#global-toolset-disable

  26. #78 · approvals.smart_policy, your own rules for the command reviewer

    · Security & approvals · CLI / Desktop / Gateway

    when Hermes Agent wants to run a terminal command that looks risky, a second model reviews it first. it reads the command and answers with one word: approve, deny, or escalate, which means ask you.

    this key lets you add your own rules to that reviewer's instructions.

    "always escalate anything that modifies /etc." "approve docker compose restarts in ~/deploys, they are routine here."

    your rules are read as instructions from you, never as part of the command it is judging.

    approvals:
      smart_policy: |
        Always ESCALATE commands that modify anything under /etc.
    

    empty by default. the reviewer itself is on by default (approvals.mode: smart).

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#smart-approvals

  27. #77 · display.bell_on_complete + bell_on_prompt, a bell when Hermes finishes or needs you

    · Everyday controls · CLI

    you give Hermes Agent a long task in the CLI and switch to something else. while you are away it either finishes, or it stops to ask you something, an approval, a clarifying question, a sudo password, and waits.

    either way you find out when you come back and look.

    these two keys tell you instead.

    bell_on_complete rings the terminal bell when a turn finishes. bell_on_prompt rings it the moment a blocking prompt opens. both work over SSH, so a Hermes running on a server rings in the terminal on your desk. in Ghostty, iTerm2, Kitty and WezTerm the same keys also raise a desktop notification.

    hermes config set display.bell_on_complete true hermes config set display.bell_on_prompt true

    both are off by default and read at startup, so restart the CLI after setting them.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration

  28. #76 · display.vim_mode, vi keys in the Hermes CLI input box

    · Everyday controls · CLI

    the Hermes Agent CLI has an input box where you type your message to the agent. out of the box it uses the standard terminal editing keys.

    if you type in vim all day, that box can use vi keys instead: Esc puts you in NORMAL mode, i takes you back to INSERT, and the status bar shows the mode you are in at its right edge.

    set display.vim_mode: true in your config.yaml and restart the CLI.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration

  29. #75 · reasoning_effort for side tasks, how hard each background call thinks

    · Models, providers & cost · CLI / Desktop / Gateway

    besides your chat, Hermes Agent makes small model calls of its own: the summary written when a long conversation is compacted, the name it gives a session, reading an image you paste, the check on whether a command needs your approval.

    Show full tip

    those calls run on your main model unless you gave them another one, at the provider's default thinking level.

    but a session title does not need deep thinking.

    each side task has its own reasoning_effort. set it to low or none for that task and the call comes back sooner and costs less, while your chat keeps the level you set for it.

    # in ~/.hermes/config.yaml  (or: hermes config set auxiliary.<task>.reasoning_effort low)
    auxiliary:
      compression:
        reasoning_effort: low
      title_generation:
        reasoning_effort: none
      vision:
        reasoning_effort: none
    

    levels: none, minimal, low, medium, high, xhigh, max, ultra. not set by default (the provider's default level). same knob on approval, curator, triage_specifier, kanban_decomposer, goal_judge and the other side tasks; your chat keeps its own agent.reasoning_effort. MoA slots set depth in the preset, and a background review that stays on your main model ignores this key.

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#the-universal-config-pattern

  30. #74 · provider_routing, pick which host serves your model on OpenRouter

    · Models, providers & cost · CLI / Desktop / Gateway

    on OpenRouter, one model name is served by several hosts, and OpenRouter picks the host for each request.

    Show full tip

    but what if one of those hosts is rate-limiting you today?

    provider_routing in config.yaml lets you choose.

    list a host under ignore and your requests for that model stop going there, even when it is the cheapest one. the other hosts keep serving as before.

    on Nous Portal you can skip this step: the Portal picks the host for every model on your behalf, so there is nothing to set.

    # in ~/.hermes/config.yaml (OpenRouter setups)
    provider_routing:
      ignore:
        - "<provider slug>"   # the lowercase slug OpenRouter shows for that host
    

    same key, other lists: only: (allow these hosts) and order: (try these first). read at startup, so restart hermes or the gateway after the edit. list values: edit config.yaml directly, not hermes config set. one model only? put the same lists under models: for that model id.

    docs: provider routing

  31. #73 · gateway.message_timestamps, show the model when you wrote

    · Messaging · Gateway

    your agent reads your messages through Telegram or Discord, but it does not see when you sent them.

    message_timestamps under gateway in config.yaml changes that.

    with enabled: true, every message you send carries its send time in front, for the model only. the chat you read does not change and the transcripts on disk stay clean. the agent can tell this morning from last week, notice a long gap, and answer with the right day in mind.

    your messages only. the agent's replies and the system prompt are untouched.

    gateway:
      message_timestamps:
        enabled: true
    

    or from the terminal: hermes config set gateway.message_timestamps.enabled true

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/messaging#message-timestamps-in-model-context

  32. #72 · skills.create_dir, where new skills land

    · Skills & instructions · CLI / Desktop / Gateway

    your agent writes itself a new skill after a good session, and it lands in the profile's own skills folder, on that machine, for that profile.

    Show full tip

    create_dir under skills in config.yaml moves that.

    every skill the agent creates from then on is written to the folder you name, a shared repo or a folder every profile can see. the agent's own instructions follow the setting, so it knows where new skills go without being told each time.

    skills you already have stay where they are and are edited in place.

    # in ~/.hermes/config.yaml
    skills:
      create_dir: /opt/brain/skills
    
    # or from the terminal
    hermes config set skills.create_dir /opt/brain/skills
    

    the folder is created on the first write. skills under it still show in hermes skills list, skill_view and as /skill-name slash commands. ~ and ${VAR} expand, and a relative path resolves against your Hermes home. this is the write side of #70 skills.external_dirs, which is where Hermes also reads skills from; point both at the same shared folder and you have one place for everything.

    docs: redirecting skill creation

    hand this to your agent: "set skills.create_dir to a folder of my choice, then create a two-line test skill and tell me the path you wrote it to."

  33. #71 · hermes -z --resume, one-shot calls that keep the thread

    · Scheduling & automation · CLI

    you call Hermes Agent from a script or a cron job with hermes -z: one prompt in, the final answer out, nothing else printed.

    Show full tip

    the next call can continue that same conversation. add --resume latest and the earlier turns come back with it, so a second prompt can build on the first answer. a session id or a session title works in place of latest.

    it is the same agent, the same tools and the same skills as your normal chat, with the interactive layer stripped off.

    hermes -z "summarise the open pull requests on this repo"
    
    hermes -z "now list the three that touch the gateway" --resume latest
    

    the prompt goes straight after -z; put --resume before -z or after the prompt. -z also reads stdin (hermes -z "summarise this" < notes.txt), and --usage-file report.json writes tokens, api calls and an estimated cost after the run. tool output stays out of the answer; hermes chat --oneshot -q "..." keeps it in the transcript.

    docs: hermes -z, scripted one-shot

    hand this to your agent: "write me a shell script that asks you three follow-up questions about this repo with hermes -z, each call resuming the previous one, and prints the three answers. show it before saving."

  34. #70 · skills.external_dirs, one shared skills folder

    · Skills & instructions · CLI / Desktop / Gateway

    you keep your skills in one folder for every agent tool you use, or your team keeps them in a shared repo.

    Show full tip

    Hermes Agent can scan those folders too.

    add external_dirs under skills in config.yaml and every skill it finds there joins the index, shows up in hermes skills list, and answers to its /skill-name slash command, the same as a skill you installed yourself.

    if a skill with the same name lives in both places, your local copy wins.

    skills:
      external_dirs:
        - /home/shared/team-skills
        - ${SKILLS_REPO}/skills
    

    or from the terminal:

    hermes config set skills.external_dirs '["/home/shared/team-skills"]'
    

    paths take ~ and environment variables; a folder that does not exist is skipped. a writable external folder can be edited by the agent's skill_manage tool, so use filesystem permissions if the shared set must stay read-only.

    docs: external skill directories

    hand this to your agent: "list every folder on this machine that holds SKILL.md files outside ~/.hermes/skills and tell me which ones are worth adding to skills.external_dirs. change nothing."

  35. #69 · tool_loop_guardrails

    · Security & approvals · CLI / Desktop / Gateway

    Hermes Wingtips #69: tool_loop.guardrails

    Show full tip

    your agent opens a file, reads it, decides to start over, and reads the same file again.

    Hermes Agent keeps count of that inside one turn. it watches for three patterns: the same call failing twice in a row, the same tool failing on new arguments, and a call that comes back with the same result while nothing has changed. when a count is reached it writes a warning into the tool result itself, so the model reads it on the next step and changes course.

    in the CLI, the TUI and the Desktop app that is where it ends, because you are there to step in. gateway and cron runs go one step further and stop the turn, since nobody is watching. a stop ends the turn, not the session, and the agent tells you which pattern fired.

    hermes config set tool_loop_guardrails.hard_stop_enabled true

    docs: https://hermes-agent.nousresearch.com/docs/user-guide/configuration#tool-loop-guardrails

  36. #68 · /skill-name

    · Skills & instructions · CLI / Desktop / Gateway

    Hermes Wingtips #68: /skill-name

    you installed a skill, told your agent to use it, and the replies still come back the same.

    every installed skill is also a slash command. /humanizer rewrite this reply in my voice loads the skill for that turn and then runs your request with it. the bare name on its own loads it and the agent asks what you need.

    several skills stack in one message: every leading /skill is loaded, the rest of the line is the instruction.

    for the agent to pick a skill without being told, it reads a short index of every description. a description that opens with when to use the skill gets picked up. one that opens with background does not get that far.

    /humanizer <your request>

  37. #67 · hermes debug share

    · Maintenance & updates · CLI

    Hermes Wingtips #67: hermes debug share

    Show full tip

    you want to ask about something Hermes Agent did, in Discord or in an issue. the first questions back are always the same: which version, which model, which provider, what do the logs say.

    Hermes has one command that builds the whole report: version and OS, model and provider, the recent lines of the agent, gateway and desktop logs, and which API keys are set. the key values never appear, the report only says set or not set, and the logs are redacted before anything is uploaded.

    hermes debug share

    add --local to print it in your terminal and read it first, nothing leaves your machine. the plain command uploads to a paste service and hands you a link that expires on its own.

    Nous support asks for a bundle? --nous sends the same report to private storage only the team can see.

  38. #66 · sessions.auto_prune

    · Maintenance & updates · CLI / Desktop / Gateway

    Hermes Wingtips #66: sessions.auto_prune

    every conversation you have with Hermes Agent is kept, so you can resume it or search it later. over time, a busy gateway or cron setup collects a lot of ended sessions that nobody will open again.

    so what happens to them?

    Hermes now tidies up for you: sessions that have ended and sat untouched for a long while are removed when Hermes starts, and the database gives the space back when there is enough to reclaim. anything open, pinned or mid-conversation stays put, and your recent history stays searchable.

    if you would rather keep every session forever, it is one command:

    hermes config set sessions.auto_prune false

    and if you like the cleanup but want a wider window, sessions.retention_days.

  39. #65 · hermes sessions import

    · Memory & context · CLI / Desktop

    Hermes Wingtips #65: hermes sessions import

    if you have a conversation going in Claude Code or Codex CLI, you can carry it on in Hermes Agent.

    say you spent an hour with another coding agent on a feature, and now you want Hermes to take the next step with all of that context. instead of explaining it again from scratch, you bring the conversation over.

    hermes sessions import

    it lists the sessions it finds on your machine, newest first. pick one and it becomes a Hermes session you can resume like any other.

    what comes across is the conversation itself: your messages, the answers, and a short note wherever a tool ran. your other agent's files are only read, never changed.

    this is different from hermes import-agent, which moves your setup (instructions, skills). this one moves the chat.

  40. #64 · AGENTS.override.md

    · Skills & instructions · CLI / Desktop / Gateway

    Hermes Wingtips #64: AGENTS.override.md

    Show full tip

    when you open Hermes Agent inside a project, it reads the project's AGENTS.md on every turn. that file is where a team keeps its rules: how the code is laid out, what to never touch, which commands to run.

    but what if you want your own rules in that project?

    maybe you prefer shorter answers, or you want the agent to always run the tests before it reports back. editing the shared AGENTS.md pushes your habits onto everyone else.

    this file is the way round it. put an AGENTS.override.md next to the team's AGENTS.md and Hermes loads yours instead of theirs. the tracked file stays exactly as your teammates wrote it.

    touch AGENTS.override.md

    add it to .gitignore and it never leaves your machine. it works in any folder that has an AGENTS.md, including subfolders the agent walks into during a session.

  41. #63 · compression.context_timeout_seconds

    · Memory & context · CLI / Desktop / Gateway

    Hermes Wingtips #63: compression.context_timeout_seconds

    when a chat gets long, Hermes summarises the older messages to free up room. a separate model writes that summary in the background while your conversation keeps going.

    but what if that summary model hangs? without a guard, your whole session would sit there waiting on it.

    this setting is that guard. if the summary model goes quiet for 120 seconds, Hermes stops waiting: it tries one backup model, and if that fails too it skips the summary, keeps all your messages and tells you.

    hermes config set compression.context_timeout_seconds <seconds>

    the guard only counts silence. a model that is slow but still writing gets all the time it needs. raise the number if your summary model runs on slower hardware, or set 0 to switch the guard off.

  42. #62 · cron.model

    · Models, providers & cost · CLI / Gateway

    Hermes Wingtips #62: cron.model

    your scheduled jobs and your chat sessions do not have to share a model. without a cron setting, a new job runs on your global default, the same model you chat with, even when the task is a small daily digest.

    two ways to route cron spend:

    (1) hermes config set cron.model \<model\>

    a fleet default: every job without its own pin runs on this model.

    (2) hermes cron edit \<job_id\> --model \<model\> --provider \<provider\>

    a per-job pin, for when one heavy scheduled analysis deserves the big model while the rest run cheap.

    super useful if you run digests, watchers or reminder jobs 24/7: keep the flagship for conversations and let a smaller model do the routine rounds!

  43. #61 · cron preflight

    · Scheduling & automation · CLI / Gateway

    Hermes Wingtips #61: cron preflight

    before a scheduled job runs, your Hermes Agent checks that the run can actually succeed: the provider key resolves, attached skills have what they need, delivery targets are reachable.

    a job that fails the check is marked blocked_config and alerts you once. no model call happens, so it sits at zero cost until you fix it.

    the next healthy run clears the state on its own.

  44. #60 · /bg vs /btw

    · Everyday controls · CLI / Gateway

    Hermes Wingtips #60: /bg vs /btw

    (1) /bg hands a prompt to a separate session:

    your Hermes Agent works on it in the background while your conversation stays free, and the result comes back when it is done.

    (2) /btw is for a side question about the conversation you are already in:

    it answers from a snapshot, so the task that is currently running never stops.

    they also both work on messaging platforms, not only in the terminal.

  45. #59 · a rate limit doesn't have to stop your session

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #59: a rate limit doesn't have to stop your session

    Hermes Agent can carry a fallback chain: backup provider:model pairs it switches to automatically when your main model hits a rate limit, a server error or an auth failure.

    ~ hermes fallback

    opens the same picker as hermes model. add as many backups as you want, they are tried in order.

    history, tool calls and context all carry over, the agent continues from where it stopped. and it's per turn, your next message starts back on your primary.

    one last tips: pin a local model last and no provider outage can fully stop you!

  46. #58 · real profile browsing

    · Tools, MCP & plugins · CLI / Desktop / Gateway

    Hermes Wingtips #58: real profile browsing

    it shipped in Hermes Agent this week, and the same questions keep coming back. the two big ones:

    (1) "so the agent can see all my browser logins?"

    it never touches your real browser. it browses a separate copy that you can revoke and delete any time. you stay in control the whole time.

    (2) "does it work fully local, with a local model?"

    yes. with any backend and any model, fully local setups included.

    with this new tool, your agent can easily book flights, check orders, pull invoices and way more!

  47. #57 · delegate_task

    · Tools, MCP & plugins · CLI / Desktop / Gateway

    Hermes Wingtips #57: delegate_task

    if you keep wiring up multi-agent teams by hand: several profiles, shared folders, a coordinator that ends up doing all the work itself. the built-in delegate_task tool is that whole pattern in one command.

    workers start with zero knowledge of your conversation. put everything they need in the brief itself (paths, constraints, what done looks like), and give the coordinator the briefs, not the workers' tools.

    that's also the perfect command for running workers on a cheaper model.

    great for parallel research, code review, comparing approaches, anything you would split across a team!

  48. #56 · switching models from anywhere

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #56: switching models from anywhere

    hermes model opens an interactive picker, so it refuses to run through a pipe, a script, or another agent's terminal tool.

    the fix is that you never needed the picker. in any chat, on any platform:

    /model grok-4 --provider x-ai --global

    --global persists it to config.yaml and switches the running session in the same move.

    --once is the sibling: it switches for a single turn and restores the previous model afterward, even on an error.

  49. #55 · chaining cron jobs

    · Scheduling & automation · CLI / Desktop / Gateway

    Hermes Wingtips #55: chaining cron jobs

    every cron job wakes up in a fresh session. a two-step pipeline, collect then summarize, can't see what step one produced.

    context_from wires the connection. when you create the second job, point it at the first job's id, and the first job's latest output is prepended to the second job's prompt at fire time.

    a job can also point at itself. continuity injects the job's own previous output.

    you set all of this by asking your Hermes Agent in plain language, it manages its own cron table.

  50. #54 · session, project, profile, bot

    · Setup & config · CLI / Desktop / Gateway

    Hermes Wingtips #54: session, project, profile, bot

    the four words everyone meets, and what each one holds:

    (1) a session is one conversation. your Hermes Agent keeps many, and every surface can open them.

    (2) a project is a workspace: the folders your agent works in, grouped under one name.

    (3) a profile is a whole separate agent. its own config, memory, skills, and history.

    (4) a bot is a profile with a name and an avatar in the Desktop app. same thing underneath, one click away.

    two of these hold your work, two of them are agents.

  51. #53 · SOUL.md, AGENTS.md, MEMORY.md, USER.md

    · Skills & instructions · CLI / Desktop / Gateway

    Hermes Wingtips #53: SOUL.md, AGENTS.md, MEMORY.md, USER.md

    Show full tip

    four markdown files shape your Hermes Agent. what each one does:

    (1) SOUL.md is who your agent is: personality, tone, how it speaks. it exists so your agent stays the same agent everywhere, in every project and on every channel. it lives in ~/.hermes/.

    (2) AGENTS.md is how one project works: structure, conventions, the commands that matter. it exists so project rules stay with the project instead of following your agent around. it lives in the project folder, loads only when your agent works there, and you write one per project.

    (3) MEMORY.md is what your agent has learned by itself: environment facts, conventions it picked up, lessons from past work. it exists so your agent stops rediscovering the same things every session. your agent writes and maintains it, not you.

    (4) USER.md is who you are to your agent: your preferences, your style, how you like your answers. it exists so you never have to introduce yourself twice. your agent maintains this one too.

    the rule of thumb: everywhere means SOUL.md, one project means AGENTS.md, and the memory pair takes care of itself.

  52. #52 · idle compaction

    · Memory & context · CLI / Desktop / Gateway

    Hermes Wingtips #52: idle compaction

    a long-lived thread carries its whole history back into context every time you come back to it, and you pay for that stale backlog on every turn.

    your Hermes Agent has a time-based trigger for exactly this:

    hermes config set compression.idle_compact_after_seconds 1800

    the size-based threshold waits for the context to grow big. this one fires on the time gap since your last message. set it in seconds, 1800 = 30 minutes.

    super useful if you keep one long Telegram or Discord thread with your agent, or park a session overnight and pick it up in the morning!

  53. #51 · checkpoints in one-shot runs

    · Maintenance & updates · CLI

    Hermes Wingtips #51: checkpoints in one-shot runs

    your Hermes Agent snapshots files before it changes them, and that safety net is not limited to interactive sessions. a scripted run gets it too:

    (1) hermes chat --checkpoints -q "your task"

    the run snapshots each working directory before its first file change, exactly like a live session would. next time you open a session in that folder, /rollback lists those snapshots and can restore from them.

    (2) hermes checkpoints status

    shows every project the store knows about, with sizes and last touch, from any shell.

  54. #50 · the [SILENT] marker

    · Scheduling & automation · CLI / Desktop / Gateway

    Hermes Wingtips #50: the [SILENT] marker

    a monitoring job that reports every run trains you to ignore it. your Hermes Agent has a quieter contract: if a cron job's response contains [SILENT], delivery is suppressed and nothing lands in your chat.

    the lever is the prompt itself:

    "check if nginx is running. if everything is healthy, respond with only [SILENT]. otherwise, report the issue."

    great for any check that should only speak up when something is wrong: uptime, disk space, backups, feed watchers!

  55. #49 · compaction thresholds

    · Memory & context · CLI / Desktop / Gateway

    Hermes Wingtips #49: compaction thresholds

    when your Hermes Agent stops mid-task to summarize, the number in that warning is not random. compaction fires at a fixed fraction of your main model's context window.

    the fraction is compression.threshold in config.yaml, and it is always read off the model you chat with, never the summarizers' window.

    on smaller context windows Hermes waits longer by default, so a compaction cannot fire with half the window still free.

    and if you switch between a huge-context model and a small one, compression.model_thresholds sets a different trigger per model, matched on the model name.

  56. #48 · platform toolsets

    · Models, providers & cost · CLI / Gateway

    Hermes Wingtips #48: platform toolsets

    your agent pays a fixed token overhead before it reads a single word of your message, and one of the biggest slice is not the prompt.

    every tool your platform loads ships its full schema with every call, used or not.

    if a session never touches the browser, image gen or TTS, platform_toolsets in config.yaml hands that platform a smaller set.

    hermes prompt-size shows you the before and after without spending a token.

  57. #47 · cron prompts

    · Scheduling & automation · CLI / Desktop / Gateway

    Hermes Wingtips #47: cron prompts

    your agent nails a task in chat, you schedule the same thing with /cron, and the scheduled runs come back wrong.

    the reason is simple: a cron job runs in a fresh session, with none of the chat context that made the task work. a prompt leaning on what you discussed earlier has nothing to lean on at run time.

    so write the prompt like the agent has never met you: every url, every command, every rule spelled out inside the prompt itself.

    this is also why a scheduled job cannot ask you clarifying questions, it answers with what the prompt gave it!

  58. #46 · Browser Use

    · Tools, MCP & plugins · CLI / Desktop / Gateway · Hermes v2026.8.13+

    Hermes Wingtips #46: Browser Use

    Browser Use mode is a browser harness from the Browser Use team: instead of driving the page one tool call per click, your agent writes one script that runs the whole flow.

    since v2026.8.13 it is on by default. update, and web tasks get cheaper without touching a single config key.

  59. #45 · if you ever want to bring an existing OpenClaw setup into Hermes Agent, there is a command for that

    · Setup & config · CLI

    Hermes Wingtips #45: if you ever want to bring an existing OpenClaw setup into Hermes Agent, there is a command for that.

    hermes claw migrate imports your settings, memories and skills. you can add --dry-run and it only shows you the plan, nothing is touched.

    worth knowing:

    (1) API keys and tokens stay behind unless you explicitly pass --migrate-secrets

    (2) before anything is applied a restore-point zip of your Hermes home is written, so the move itself is undoable.

  60. #44 · your skills library has an undo button

    · Skills & instructions · CLI

    Hermes Wingtips #44: your skills library has an undo button.

    the curator is a background pass that tidies the skills your agent creates for itself: stale ones get archived, overlapping ones get merged.

    worried it might archive a skill you cared about? it snapshots your whole skills folder before every pass, automatically.

    hermes curator rollback --list shows every snapshot.

    hermes curator rollback restores the newest one, and even the rollback takes a snapshot first, so you cannot lose anything trying.

  61. #43 · Telegram topics or a second agent?

    · Messaging · Gateway

    Hermes Wingtips #43: Telegram topics or a second agent?

    running several projects through one Telegram bot? there are two ways to split them, and they are not the same thing.

    (1) /topic

    parallel conversations inside one bot DM. still one agent behind them, so what it learns on one project helps the others.

    (2) hermes profile create \<name\>

    a second agent entirely, with its own bot.

    pick topics when your projects should feed one brain, profiles when you need real walls between them. and both can run on the same machine!

  62. #42 · the compaction-summary model

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #42: the compaction-summary model

    every time your context compacts, a model reads the whole transcript and writes the summary. by default that model is your main chat model.

    if you run a frontier model, you are paying frontier price for housekeeping, and the pause you feel at every compaction is frontier latency too.

    you can move that job to a fast, cheap model. below, the switch on my own agent:

  63. #41 · approvals suggest

    · Security & approvals · CLI

    Hermes Wingtips #41: approvals suggest

    approving the same command for the third time this week? your Hermes Agent already keeps that history.

    hermes approvals suggest mines your past approvals and turns the recurring ones into an allowlist proposal, so the prompts you always say yes to stop coming back.

    it proposes, you pick, nothing is written on its own.

    below, a real run on my own agent this morning.

  64. #40 · give your local agent two commands, not root

    · Security & approvals · CLI / Gateway

    Hermes Wingtips #40: give your local agent two commands, not root

    when I'm running benchmarks, my local Hermes Agent stops and starts the model server on its own, from cron, with no password. it still cannot touch anything else as root.

    the trick is a sudoers rule scoped to exactly one service: NOPASSWD applies to systemctl start and stop for that unit, nothing more.

    still test the fence from the outside: sudo -n on any other service should still ask for a password.

  65. #39 · the missing provider prefix

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #39: the missing provider prefix

    if a model id ever answers you with a 404 error, check the id before you check your keys.

    providers know their models as vendor/model, and an id that lost its prefix (nemotron-3-ultra-550b-a55b instead of nvidia/nemotron-3-ultra-550b-a55b) returns a 404, so it reads like an outage.

    a fix just merged for the next release: the error now names the model and suggests the prefixed id.

    until then, the habit to keep in mind: vendor/model, always, and hermes model picks it correctly for you.

  66. #38 · hermes doctor

    · Maintenance & updates · CLI

    Hermes Wingtips #38: hermes doctor

    your Hermes Agent ships with its own health check. one command reads your whole setup and prints a pass/fail report:

    • security advisories and a MCP server audit
    • python environment and version consistency
    • config files, deprecated keys and
  67. #37 · hermes project

    · Setup & config · CLI / Desktop

    Hermes Wingtips #37: hermes project

    real work rarely fits in one folder: an api repo, a web repo, an infra repo, all one product. a project gives that group one name.

    (1) hermes project create "My App" ~/code/api ~/code/web creates one

    (2) hermes project add-folder grows it

    (3) hermes project use sets it as active

    what is super cool is that the Desktop app groups your sessions by project automatically, and binding a kanban board with bind-board gives every task a deterministic worktree and branch convention.

  68. #36 · hermes import-agent

    · Setup & config · CLI

    Hermes Wingtips #36: hermes import-agent

    if you already run Claude Code or Codex CLI, your setup can move over to Hermes Agent in one command:

    hermes import-agent

    it auto-detects ~/.claude or ~/.codex and maps everything to its Hermes equivalent:

    global instructions become memories, skills come across as skills, MCP servers goes in your config, and Claude's permission rules become the command allowlist. API keys and credentials are never touched.

    it always shows you the full plan before writing anything, and --dry-run previews without touching disk at all.

    there is no need rebuilding the setup you already tuned!

  69. #35 · hermes bundles

    · Skills & instructions · CLI / Desktop / Gateway

    Hermes Wingtips #35: hermes bundles

    if you keep loading the same skills together for the same kind of job, group them under one command:

    hermes bundles create <name> --skill <a> --skill <b>

    typing /<name> in the CLI or any chat platform then loads every skill in the bundle at once.

    a bundle is a tiny yaml file under ~/.hermes/skill-bundles/, so you can check it into a dotfiles repo and share a whole task profile with your team.

    super cool for recurring jobs and tasks you perform every day, see below for a quick example :)

  70. #34 · hermes proxy

    · Tools, MCP & plugins · CLI

    Hermes Wingtips #34: hermes proxy

    your Nous Portal subscription can serve any other app that speaks the OpenAI API.

    hermes proxy start runs a small local pass-through server. point the app at the address it prints, give it any placeholder API key and a model from your plan, and it will works.

    in order to double check that the Portal login is ready, type hermes proxy status.

    it serves the raw model, not your agent: if you want the whole agent (tools, memory, skills) behind an API, that is hermes serve.

    this tips is for people using Open WebUI, Karakeep, or anything self-hosted that asks for an OpenAI key you did not want to buy!

  71. #33 · checkpoints

    · Maintenance & updates · CLI / Desktop / Gateway

    Hermes Wingtips #33: checkpoints

    checkpoints snapshot your project before Hermes Agent writes, patches or runs a destructive command, and /rollback puts things back.

    (1) hermes chat --checkpoints

    you can turns them on for one session, or keep them on with checkpoints: enabled: true in config.yaml.

    (2) /rollback

    lists every snapshot; /rollback diff <N> previews the change and /rollback <N> <file> restores a single file. everything lives under ~/.hermes/checkpoints/.

    turning this on is great before a big refactor, before letting an agent loose on an unfamiliar repo, or before trying yolo mode!

    as an example, here is a live recovery on my own box:

  72. #32 · hermes insights

    · Models, providers & cost · CLI

    Hermes Wingtips #32: hermes insights

    this command reads your local session database and prints the last 30 days:

    • input and output tokens
    • which models did the work
    • which platforms your sessions came from
    • your top tools by call count...

    --days moves the window and --source narrows to one platform.

    this is a useful command when you are deciding which model to demote, or when you just want to know which tool your agent leans on most!

    as an example, here is one of my Hermes Agent:

  73. #31 · see what every message costs before you send it

    · Models, providers & cost · CLI

    Hermes Wingtips #31: see what every message costs before you send it

    hermes prompt-size

    it prints the fixed budget of a fresh session: the full system prompt, the skills index, your MEMORY.md and USER.md snapshots, the prompt tiers, and the JSON schemas for every enabled tool.

    if you want to manage it:

    • hermes tools turns off toolsets you never use
    • hermes skills uninstalls what you don't need
    • AGENTS.md in your working directory count towards the total too
  74. #30 · back up your agent before you need to

    · Maintenance & updates · CLI

    Hermes Wingtips #30: back up your agent before you need to

    (1) hermes backup

    it writes ~/hermes-backup-<timestamp>.zip with config.yaml, .env, auth, memories, skills, sessions, cron and profiles. it copies the databases through SQLite's own backup API, so you can run it while Hermes is live.

    (2) hermes import ~/hermes-backup-<timestamp>.zip puts it all back.

    for a fast one, you can use hermes backup --quick, which targets critical state only: config.yaml, state.db, .env, auth and cron jobs.

    hermes backup is super useful if you are moving to a new box, if you want to duplicate your agent or before doing any experiment!

  75. #29 · local models context floor

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #29: local models context floor

    you point Hermes Agent at Ollama, the first few turns are fine, then the agent starts forgetting instructions or repeating work.

    the usual cause is that Ollama's default context depends on your VRAM, and under 24 GB it is 4,096 tokens. Hermes needs at least 64,000 for agent work, because the system prompt and tool schemas alone take 4k to 8k, and most servers drop your oldest messages once the window fills.

    here is what to do server-side:

    (1) Ollama: OLLAMA_CONTEXT_LENGTH=64000 ollama serve, then check the CONTEXT column in ollama ps

    (2) vLLM: --max-model-len 64000

    (3) llama.cpp: llama-server -m model.gguf -c 64000

    LM Studio users can skip this since Hermes asks it to load the model at 64K by default.

  76. #28 · cron jobs & workdir

    · Scheduling & automation · CLI / Gateway

    Hermes Wingtips #28: cron jobs & workdir

    a cron job runs in a completely fresh session, detached from any repo: no AGENTS.md is loaded, and the terminal and file tools start from wherever the gateway happens to be running.

    the fix is one flag:

    (1) hermes cron create "every 1d at 09:00" "audit open PRs, summarise CI health" --workdir /home/me/projects/acme

    (2) or from the chat directly, just tell Hermes which directory the job should run in (the cronjob tool takes workdir= the same way)

    with workdir set, the job loads AGENTS.md from that directory and every file tool runs inside it. the path must be absolute and exist, or the create is rejected.

  77. #27 · /background

    · Scheduling & automation · CLI / Gateway

    Hermes Wingtips #27: /background

    you do not have to wait while your agent grinds through a long task.

    /background <prompt> spawns a completely separate agent session that runs in parallel: your chat stays fully interactive, and the result comes back as a panel in your terminal when it finishes.

    (1) as an example: /background analyse the logs in /var/log and summarise today's errors.

    you can run several at once, and the status bar shows how many are in flight.

    (2) one thing to know: the background agent starts clean, with no knowledge of your conversation.

    it only gets the prompt you give it, so write it self-contained. it inherits your model, provider and toolsets, so no setup needed.

  78. #26 · every web page your agent reads costs a main-model call

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #26: every web page your agent reads costs a main-model call

    web_extract is the tool Hermes agent uses to read web pages. by default the summariser that processes long pages reuses your main chat model.

    it means that on every docs page, article, thread... the agent opens burns a full-price call to whatever model you're chatting with.

    (1) route the summariser to a cheap model:

    auxiliary:
      web_extract:
        provider: nous
        model: google/gemini-3-flash-preview
    

    or pick it interactively: hermes model → configure auxiliary models → web_extract.

    (2) if you need raw unsummarised content later, use browser_navigate & browser_snapshot instead.

    the browser tool returns a live page without auxiliary-model rewriting.

  79. #25 · /goal

    · Scheduling & automation · CLI / Desktop / Gateway

    Hermes Wingtips #25: /goal

    /goal keeps working until a judge model calls it done, so a vague goal gets a vague judging. fix it by telling the judge what done means:

    (1) let Hermes write it:

    exemple: /goal draft migrate the auth service to JWT

    (2) or spell it inline under

  80. #24 · gateway sessions do not auto-reset by default

    · Memory & context · Gateway

    Hermes Wingtips #24: gateway sessions do not auto-reset by default.

    the default is session_reset: mode: none, so a Telegram or Discord chat keeps its history across restarts until you say otherwise. if you want a clean slate on a schedule, opt in:

    (1) idle resets after idle_minutes of quiet (default 1440, so 24h)

    (2) daily resets once a day at at_hour (default 4, local time)

    (3) both resets on whichever comes first

    before any auto-reset it saves memories and skills first.

  81. #23 · pointed Hermes at your own model and it prints the tool call instead of running it?

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #23: pointed Hermes at your own model and it prints the tool call instead of running it?

    if the reply comes back as raw json like {"name": "web_search", ...}, your inference server handed the tool call over as text and Hermes never got to run it.

    tool calling has to be switched on at the server, and it is off until you set it:

    (1) vLLM: add --enable-auto-tool-choice --tool-call-parser hermes

    (2) SGLang: add --tool-call-parser qwen (or your model's parser)

    (3) llama.cpp: add --jinja

  82. #22 · steer a task without stopping it

    · Everyday controls · CLI / Desktop / Gateway

    Hermes Wingtips #22: steer a task without stopping it

    a lot of people think you have to stop the agent and start over to change direction mid-task. you don't. there is /steer.

    while it works, send a mid-run note:

    /steer focus on the auth module first

    it arrives after the current tool call finishes, so nothing gets interrupted and it is not a new turn, just fresh direction the agent picks up as it goes.

    two siblings worth knowing:

    (1) /queue (alias /q) holds a prompt for the next turn without touching the current one

    (2) /busy lets you set what plain Enter does while it works: queue, steer, or interrupt.

  83. #21 · credential pools

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #21: credential pools

    a credential pool is several keys or logins for one provider. Hermes picks a healthy key, and when that key is rate-limited or out of quota it rotates to the next one.

    (this is different from fallback providers. a fallback jumps to a different provider, and only after every key in the pool is exhausted).

    (1) add a second key (OpenRouter example):

    hermes auth add openrouter --api-key sk-or-...-key

    (2) check the pool: hermes auth list

    when Hermes does rotate, the new key has no cached prefix for your chat, so the next request re-reads the full history.

    lastly, if you are on Nous Portal with a single OAuth login, you usually do not need a pool. this tip is for multi-key API setups.

  84. #20 · how to use export

    · Maintenance & updates · CLI

    Hermes Wingtips #20: how to use export

    Hermes sessions export is one command for every format. pick with --format:

    (1) md or qmd for a readable archive (one file per session and a manifest under ~/.hermes/session-exports)

    (2) html for a self-contained page you can open and share

    add --redact when anything leaves the box: it hides API keys, tokens and credentials from the write.

    for one particular session: --session-id <id>.

  85. #19 · it remembered, it just can't see it yet

    · Memory & context · CLI / Desktop / Gateway

    Hermes Wingtips #19: it remembered, it just can't see it yet.

    we snapshot MEMORY.md and USER.md once at session start so the LLM prefix cache stays warm.

    a mid-session save hits disk immediately, and only lands in the system prompt on the next session.

    you need the new fact in play now?

    (1) start a fresh session (2) or hermes -c on the next turn

    tool responses already show the live write.

  86. #16 · gateway won't restart after a reboot? enable lingering

    · Maintenance & updates · CLI / Gateway

    Hermes Wingtips #16: gateway won't restart after a reboot? enable lingering

    a user-service gateway runs under your login, so it stops at logout and won't come back after a reboot until you enable lingering.

    headless VPS, zero root per restart:

    hermes gateway install
    sudo loginctl enable-linger $USER
    

    or go boot-level: sudo hermes gateway install --system

  87. #15 · a compaction rewrites your history into a working brief

    · Memory & context · CLI / Desktop / Gateway

    Hermes Wingtips #15: a compaction rewrites your history into a working brief

    when a long session reaches the compaction point, Hermes doesn't drop the middle turns, it rewrites them into a structured brief with fixed slots:

    goal / constraints / progress / key decisions / relevant files / next steps / critical context.

    that brief carries the working state forward, and the raw turns stay in state.db where session_search can still reach them.

    so a compaction is your agent re-reading its own notes, not losing the thread.

    (1) work in the brief's shape: state goals and decisions in plain words, so they map straight into the slots that get kept

    (2) for anything that must never drop, put it in MEMORY.md, which reloads on every session no matter how many compactions happen

  88. #14 · switching models resets your prompt cache

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #14: switching models resets your prompt cache

    switch models mid-conversation and the next turn re-reads the whole thing at full input price. the cache key includes the model, so a new model means a cold cache. occasional switches are fine, frequent ones in a long session multiply your cost.

    • batch your switches instead of ping-ponging mid-thread
    • on a long session, start a fresh one or delegate (subagents get their own context) rather than switching back and forth
  89. #12 · kanban's default worker workspace is scratch

    · Scheduling & automation · CLI / Desktop / Gateway

    Hermes Wingtips #12: kanban's default worker workspace is scratch

    you're handing a kanban task to a Hermes agent and want to keep the files it writes? one thing to know before you run it.

    by default each kanban worker runs in a scratch workspace, and Hermes clears that workspace the moment the task completes. indeed, throwaway chores should not leave directories behind.

    to keep the output, give the task its own workspace when you create it:

    hermes kanban create "your task" --workspace dir:/absolute/path
    

    two things to get right:

    (1) name the workspace with dir: for anything you want to survive the run. no flag means scratch, cleared on completion.

    (2) make the path absolute. Hermes accepts a relative path at create with no error, then rejects it when the worker spawns.

  90. #11 · toolsets: all doesn't include the kanban tools

    · Tools, MCP & plugins · CLI / Desktop / Gateway

    Hermes Wingtips #11: toolsets: all doesn't include the kanban tools

    Show full tip

    you want a Hermes agent to manage your kanban board for you, creating and moving tasks itself? it needs the kanban tools.

    here is what you need to understand:

    you give that agent's profile toolsets: [all] in ~/.hermes/config.yaml, figuring "all" covers everything, and the agent still turns up with no kanban tools at all.

    the reason is that the kanban toolset is opt-in. all loads the everyday tools, but a few specialist ones (kanban is one) are left out on purpose, so a normal chat is not cluttered with board commands it will never use. you have to ask for kanban by name.

    the fix is to add it to that profile's toolsets, spelled out:

    toolsets:
    - kanban
    

    you need to do this only when you set up an agent to drive the board. the workers the board spawns on its own to run a task already get the tools automatically. this is just for the driver.

  91. #10 · every fallback entry needs both provider and model

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #10: every fallback entry needs both provider and model

    your fallback_providers list in ~/.hermes/config.yaml counts an entry as a real fallback only when it carries a provider field and a model field.

    two things worth setting:

    (1) write provider and model on every entry in the chain, top to bottom.

    (2) put a local model last as your floor for a cloud outage, pointing provider: custom at your own llama.cpp or vLLM endpoint.

  92. #9 · a profile is a whole separate agent, not a setting

    · Setup & config · CLI / Desktop / Gateway

    Hermes Wingtips #9: a profile is a whole separate agent, not a setting

    a Hermes profile is a second agent in its own right: its own memory, sessions, skills and bot token. spin one up and it knows nothing your main agent does.

    two things to understand:

    (1) you want one agent across Telegram, Discord and WhatsApp? that's a single profile with several gateways: they share one SOUL.md and one memory, so it behaves as one agent everywhere.

    vice versa, a profile per platform splits it into strangers.

    (2) you want a fresh agent that starts from your current one? hermes profile create new --clone-all. without it the new profile is blank.

  93. #8 · MoA

    · Models, providers & cost · CLI / Desktop / Gateway

    Hermes Wingtips #8: MoA

    Show full tip

    the new Mixture of Agents virtual model fans every turn out to four reference models plus an aggregator.

    I put it on a fresh Hermes box: gpt-5.5, deepseek-v4-pro and sonnet-4.6 as references, opus-4.8 as the aggregator.

    measured on the box:

    • a single opus call ran 27.9k tokens for ~$0.14
    • the full MoA turn ran 28.6k tokens for ~$0.15, the same within a cent

    the system prompt and tool schemas dominate that number, and the references run on stripped context, so the four extra calls stay cheap. for one question, you get the whole ensemble for barely more than a single model.

    and the quality is the point: Nous's HermesBench puts an opus + gpt-5.5 MoA at 0.8202 vs 0.7607 / 0.7412 for those models alone.

    it is 5 calls a turn, so it scales with task length, which is exactly why Nous frames it for "genuinely difficult problems" and on that ground it's one of the better-value things they've shipped.

  94. #7 · Hermes Agent drives your Mac in the background now, clicking and typing while your real cu

    · Tools, MCP & plugins · CLI / Desktop

    Hermes Wingtips #7

    Hermes Agent drives your Mac in the background now, clicking and typing while your real cursor never moves.

    simple setup:

    • hermes computer-use install
    • grant Screen Recording & Accessibility to CuaDriver
    • then hermes -t computer_use chat.

    any destructive actions wait for approval, we're keeping it safe.

  95. #5 · /learn

    · Skills & instructions · CLI / Desktop / Gateway

    Hermes Wingtips #5: /learn

    Show full tip

    it turns a source into a reusable skill in one command.

    four ways to feed it: a local code/docs folder, a doc url, a workflow you just ran, or pasted notes. reach for it once you've done something non-trivial and don't want to re-explain it next time.

    the skill lands in ~/.hermes/skills/ and auto-loads only when a task calls for it, so it's procedural memory that doesn't bloat every prompt.

    I used it today and it drafted a genuinely good skill, even pulling in a real adjacent feature I hadn't mentioned.

    what you need to know: it currently ignores its own <=60-char description rule (mine came out 123 and 202 chars). 
    
    since a skill's description loads every session, a 200-char one is dead weight. open the SKILL.md, tighten it, fix the author, before you rely on it or share it.
    
  96. #4 · which file is your agent's brain

    · Skills & instructions · CLI / Desktop / Gateway

    Hermes Wingtips #4: which file is your agent's brain

    ~ SOUL.md is who the agent is: slot #1 in the system prompt, it replaces the default identity.

    ~ USER.md is who you are.

    ~ MEMORY.md is the facts it keeps about your work.

    ~ AGENTS.md is your project's rules, found by walking the directory.

    what you need to understand is that project rule files are first-match-wins. 
    Hermes loads only one of .hermes.md, AGENTS.md, CLAUDE.md, .cursorrules, in that order. 
    
    a .hermes.md in the repo shadows your AGENTS.md with no warning, and the rules you wrote never load.
    
    SOUL.md is exempt, it always loads on its own from ~/.hermes/SOUL.md. 
    
    if Hermes is ignoring your project instructions, check for a higher-priority file next to them. and it caps every one of these at 20,000 characters, then truncates the rest.
    
  97. #3 · your agent didn't forget, its memory is a frozen snapshot

    · Memory & context · CLI / Desktop / Gateway

    Hermes Wingtips #3: your agent didn't forget, its memory is a frozen snapshot.

    tell it something, it saves to MEMORY.md, the write hits disk right away. but the curated memory block in the system prompt loads once at session start and stays fixed for the whole session.

    this is on purpose, to keep the prefix cache warm.

    so mid-session it can act like it "forgot" what it just saved. it didn't: tool calls still read the live on-disk value, only the injected block is frozen. it refreshes next session.

    if you need it acting on a fresh memory right now, start a new session. the save already landed, it just shows up next time.

  98. #2 · the 🗜️ icon, what context compression keeps and what it drops

    · Memory & context · CLI / Gateway

    Hermes Wingtips #2

    the 🗜️ icon, what context compression keeps and what it drops

    this little emojy is the compression count: how many times Hermes auto-summarised the session to stay under the context limit, which kicks in around 50% full.

    when compression occurs, it keeps your first 3 turns and your last 20, and summarises everything in between. a detail from the middle of a long session can then drop out, and the agent repeats work it already did, even though the opening goal and the recent turns are intact.

    three levers when it bites, all in config.yaml, hot-reloading on a running gateway: 
    
    - protect_last_n keeps more recent turns uncompressed 
    
    - auxiliary.compression.model points the summariser at a cheap fast model so it does not burn main-model tokens
    
    - model.context_length raises the ceiling so it fires later.
    
    https://hermes-agent.nousresearch.com/docs/developer-guide/context-compression-and-caching
    
  99. #1 · running a hermes agent in a telegram group and it just sits there silent?

    · Messaging · Gateway

    Hermes Wingtips #1

    running a hermes agent in a telegram group and it just sits there silent? the usual cause is BotFather's group privacy mode: it's on by default, so the bot only sees messages that mention it or start with /.

    plain group messages never reach it.

    easy fix: message BotFather, /setprivacy, pick the bot, Disable.

    it doesn't apply to groups the bot is already in. remove it from the group and re-add it for the change to take.

All tips are written by witcheer and collected here with credit. Card images stay on his X posts.