YouTip LogoYouTip

Hermes Agent Cli

Hermes Agent's CLI is a complete Terminal User Interface (TUI), not a web interface. Hermes Agent CLI supports multi-line editing, slash command auto-completion, conversation history, interrupt redirection, and streaming tool outputβ€”designed specifically for users who prefer working in the terminal. * * * ## Running the CLI # Start interactive session (default) hermes # Single query mode (non-interactive) hermes chat -q "Hello"# Specify model hermes chat --model "anthropic/claude-sonnet-4"# Specify provider hermes chat --provider nous # Use Nous Portal hermes chat --provider openrouter # Force use OpenRouter# Specify toolsets hermes chat --toolsets "web,terminal,skills"# Preload one or more skills at startup hermes -s hermes-agent-dev,github-auth hermes chat -s github-pr-workflow -q "open a draft PR"# Resume previous session hermes --continue # Resume most recent CLI session (-c) hermes --resume <session_id> # Resume specific session by ID (-r)# Verbose mode (debug output) hermes chat --verbose # Isolated git worktree (for running multiple agents in parallel) hermes -w # Run interactively in worktree hermes -w -q "Fix issue #123" # Single query in worktree * * * ## Interface Layout The welcome banner displays your model, terminal backend, working directory, available tools, and installed skills at a glance. ### Status Bar The status bar sits above the input area and updates in real-time: claude-sonnet-4-20250514 β”‚ 12.4K/200K β”‚ [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘] 6% β”‚ $0.06 β”‚ 15m | Element | Description | | --- | --- | | Model name | Currently used model (truncated if over 26 characters) | | Token count | Used context tokens / maximum context window | | Context progress bar | Visual fill indicator with color-coded thresholds | | Cost | Estimated session cost (displays n/a for unknown or zero-priced models) | | Duration | Elapsed session time | The status bar adapts to terminal widthβ€”full layout at β‰₯ 76 columns, compact layout at 52–75 columns, and only model and duration below 52 columns. **Context color coding:** | Color | Threshold | Meaning | | --- | --- | --- | | Green | < 50% | Plenty of space | | Yellow | 50–80% | Filling up soon | | Orange | 80–95% | Approaching limit | | Red | β‰₯ 95% | About to overflowβ€”suggest using /compress | Use the `/usage` command to view detailed cost breakdowns, including categorized costs (input vs output tokens). ### Session Resume Display When resuming a previous session (`hermes -c` or `hermes --resume `), a "Previous Conversation" panel appears between the banner and input prompt, showing a condensed summary of conversation history. * * * ## Keyboard Shortcuts | Key | Action | | --- | --- | | Enter | Send message | | Alt+Enter or Ctrl+J | New line (multi-line input) | | Alt+V | Paste image from clipboard (requires terminal support) | | Ctrl+V | Paste text, and append image from clipboard if available | | Ctrl+B | Start/stop voice recording when voice mode is enabled | | Ctrl+C | Interrupt agent (double-press within 2 seconds to force quit) | | Ctrl+D | Exit | | Ctrl+Z | Suspend Hermes to background (Unix only). Run `fg` in shell to resume. | | Tab | Accept auto-completion suggestion or slash command auto-completion | * * * ## Slash Commands Type `/` to see the auto-completion dropdown menu. Hermes supports numerous CLI slash commands, dynamic skill commands, and user-defined quick commands. | Command | Description | | --- | --- | | `/help` | Display command help | | `/model` | Display or change current model | | `/tools` | List currently available tools | | `/skills browse` | Browse skill hub and official optional skills | | `/background ` | Run prompt in independent background session | | `/skin` | Display or switch active CLI skin | | `/voice on` | Enable CLI voice mode | | `/voice tts` | Toggle voice playback for Hermes responses | | `/reasoning high` | Increase reasoning depth | | `/title My Session` | Name the current session | **Tip:** Commands are case-insensitiveβ€”`/HELP` and `/help` work the same. Installed skills also automatically register as slash commands. * * * ## Personality Settings Set predefined personalities to change the agent's tone: /personality pirate /personality kawaii /personality concise Built-in personalities include: `helpful`, `concise`, `technical`, `creative`, `teacher`, `kawaii`, `catgirl`, `pirate`, `shakespeare`, `surfer`, `noir`, `uwu`, `philosopher`, `hype`. You can also define custom personalities in `~/.hermes/config.yaml`: personalities: helpful: "You are a helpful, friendly AI assistant." kawaii: "You are a kawaii assistant! Use cute expressions..." pirate: "Arrr! Ye be talkin' to Captain Hermes..." # Add your own! * * * ## Multi-line Input There are two ways to enter multi-line messages: * **Alt+Enter or Ctrl+J** β€” Insert new line * **Backslash continuation** β€” Add `\` at end of line to continue: ❯ Write a function that:\ 1. Takes a list of numbers\ 2. Returns the sum **Tip:** Multi-line text pasting is supportedβ€”use Alt+Enter or Ctrl+J to insert line breaks, or paste directly. * * * ## Interrupting the Agent You can interrupt the agent at any time: * Type new message + Enter β€” it will interrupt and process your new instruction * Ctrl+C β€” Interrupt current operation (press twice within 2 seconds to force quit) Ongoing terminal commands are terminated immediately. ### Busy Input Mode The `display.busy_input_mode` configuration controls what happens when you press Enter while the agent is working: | Mode | Behavior | | --- | --- | | `"interrupt"` (default) | Your message interrupts current operation and is processed immediately | | `"queue"` | Your message is silently queued and sent as next turn after agent completes | # ~/.hermes/config.yaml display: busy_input_mode: "queue" # or "interrupt" (default) ### Suspend to Background On Unix systems, press **Ctrl+Z** to suspend Hermes to background. Type `fg` in shell to resume the session exactly where you left off. This is not supported on Windows. * * * ## Tool Progress Display The CLI shows animated feedback while the agent is working: **Thinking animation** (during API calls): β—œ (q‒́︿‒̀q) pondering... (1.2s) β—  (βŠ™_βŠ™) contemplating... (2.4s) ✧٩(ΛŠα—œΛ‹*)و✧ got it! (3.1s) **Tool execution output:** β”Š terminal `ls -la` (0.3s) β”Š web_search (1.2s) β”Š web_extract (2.1s) Use `/verbose` to cycle through display modes: `off β†’ new β†’ all β†’ verbose`. ### Tool Preview Length The `display.tool_preview_length` configuration controls the maximum number of characters displayed in tool call preview lines. Default is 0, meaning unlimited. # ~/.hermes/config.yaml display: tool_preview_length: 80 # Truncate tool previews to 80 characters * * * ## Session Management ### Resuming Sessions When you exit a CLI session, a resume command is printed: Resume this session with: hermes --resume 20260225_143052_a1b2c3 Session: 20260225_143052_a1b2c3 Duration: 12m 34sMessages: 28 (5 user, 18 tool calls) **Resume options:** hermes --continue # Resume most recent CLI session hermes -c # Short form hermes -c "my project" # Resume named session hermes --resume 20260225_143052_a1b2c3 # Resume by ID hermes --resume "refactoring auth" # Resume by title Resuming fully restores conversation history from SQLite. ### Session Storage CLI sessions are stored in Hermes's SQLite state database at `~/.hermes/state.db`. The database retains: * Session metadata (ID, title, timestamps, token counters) * Message history * Compression/resume session lineage * Full-text search index ### Context Compression Long conversations are automatically summarized when approaching context limits: # In ~/.hermes/config.yaml compression: enabled: true threshold: 0.50 # Default compress at 50% of context limit summary_model: "google/gemini-3-flash-preview" When compression triggers, middle turns are summarized while the first 3 and last 4 turns are always preserved. * * * ## Background Sessions Run prompts in independent background sessions while continuing to use the CLI for other work: /background Analyze the logs in /var/log and summarize any errors from today Hermes immediately acknowledges the task and returns to the prompt: Background task #1 started: "Analyze the logs in /var/log and summarize..." Task ID: bg_143022_a1b2c3 ### How It Works Each `/background` prompt spawns a completely independent agent session in a daemon thread: * **Isolated conversation** β€” Background agent knows nothing of your current session's history * **Same configuration** β€” Background agent inherits current session's configuration * **Non-blocking** β€” Your foreground session remains fully interactive * **Multiple tasks** β€” You can run multiple background tasks simultaneously ### Use Cases * **Long-running research** β€” Background research while you write code * **File processing** β€” Analyze files while you continue conversation * **Parallel investigation** β€” Launch multiple background tasks to explore different angles simultaneously **Tip:** Background sessions don't appear in your main conversation history. They are independent tasks with their own task IDs. * * * ## Quiet Mode By default, the CLI runs in quiet mode: * Suppresses verbose tool log output * Enables kawaii-style animated feedback * Keeps output concise and user-friendly To view debug output: hermes chat --verbose
← Hermes Agent ToolsRef Math Ulp β†’