Files
hermes-agent/docs/cli.md
teknium c360da4f35 Enhance documentation for CLI and tool integration
- Updated `.cursorrules` to provide a comprehensive overview of the interactive CLI, including its architecture, key components, and command handling.
- Expanded `README.md` to introduce the CLI features, quick start instructions, and detailed command descriptions for user guidance.
- Added `docs/cli.md` to document CLI usage, configuration, and animated feedback, ensuring clarity for users and developers.
- Revised `docs/tools.md` to include support for SSH backend in terminal tools, enhancing the documentation for terminal execution options.
2026-01-31 06:33:43 +00:00

6.3 KiB
Raw Blame History

CLI

The Hermes Agent CLI provides an interactive terminal interface for working with the agent.

Running the CLI

# Basic usage
./hermes

# With specific model
./hermes --model "anthropic/claude-sonnet-4"

# With specific toolsets
./hermes --toolsets "web,terminal,skills"

# Verbose mode
./hermes --verbose

Architecture

The CLI is implemented in cli.py and uses:

  • Rich - Welcome banner with ASCII art and styled panels
  • prompt_toolkit - Fixed input area with command history
  • KawaiiSpinner - Animated feedback during operations
┌─────────────────────────────────────────────────┐
│  HERMES-AGENT ASCII Logo                        │
│  ┌─────────────┐ ┌────────────────────────────┐ │
│  │  Caduceus   │ │ Model: claude-opus-4.5     │ │
│  │  ASCII Art  │ │ Terminal: local            │ │
│  │             │ │ Working Dir: /home/user    │ │
│  │             │ │ Available Tools: 19        │ │
│  │             │ │ Available Skills: 12       │ │
│  └─────────────┘ └────────────────────────────┘ │
└─────────────────────────────────────────────────┘
│ Conversation output scrolls here...             │
│                                                 │
│ User: Hello!                                    │
│ ────────────────────────────────────────────── │
│   (◕‿◕✿) 🧠 pondering... (2.3s)                │
│   ✧٩(ˊᗜˋ*)و✧ got it! (2.3s)                    │
│                                                 │
│ Assistant: Hello! How can I help you today?    │
├─────────────────────────────────────────────────┤
│  [Fixed input area at bottom]                  │
└─────────────────────────────────────────────────┘

Commands

Command Description
/help Show available commands
/tools List available tools grouped by toolset
/toolsets List available toolsets with descriptions
/model [name] Show or change the current model
/prompt [text] View/set/clear custom system prompt
/personality [name] Set a predefined personality
/clear Clear screen and reset conversation
/reset Reset conversation only (keep screen)
/history Show conversation history
/save Save current conversation to file
/config Show current configuration
/quit Exit the CLI (also: /exit, /q)

Configuration

The CLI is configured via cli-config.yaml. Copy from cli-config.yaml.example:

cp cli-config.yaml.example cli-config.yaml

Model Configuration

model:
  default: "anthropic/claude-opus-4.5"
  base_url: "https://openrouter.ai/api/v1"

Terminal Configuration

The CLI supports multiple terminal backends:

# Local execution (default)
terminal:
  env_type: "local"
  cwd: "."  # Current directory

# SSH remote execution (sandboxed - agent can't touch its own code)
terminal:
  env_type: "ssh"
  cwd: "/home/myuser/project"
  ssh_host: "my-server.example.com"
  ssh_user: "myuser"
  ssh_key: "~/.ssh/id_rsa"

# Docker container
terminal:
  env_type: "docker"
  docker_image: "python:3.11"

# Singularity/Apptainer (HPC)
terminal:
  env_type: "singularity"
  singularity_image: "docker://python:3.11"

# Modal cloud
terminal:
  env_type: "modal"
  modal_image: "python:3.11"

Toolsets

Control which tools are available:

# Enable all tools
toolsets:
  - all

# Or enable specific toolsets
toolsets:
  - web
  - terminal
  - skills

Available toolsets: web, search, terminal, browser, vision, image_gen, skills, moa, debugging, safe

Personalities

Predefined personalities for the /personality command:

agent:
  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!

Built-in personalities:

  • helpful, concise, technical, creative, teacher
  • kawaii, catgirl, pirate, shakespeare, surfer
  • noir, uwu, philosopher, hype

Animated Feedback

The CLI provides animated feedback during operations:

Thinking Animation

During API calls, shows animated spinner with thinking verbs:

  ◜ (。•́︿•̀。) pondering... (1.2s)
  ◠ (⊙_⊙) contemplating... (2.4s)
  ✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

Tool Execution Animation

Each tool type has unique animations:

  ⠋ (◕‿◕✿) 🔍 web_search... (0.8s)
  ▅ (≧◡≦) 💻 terminal... (1.2s)
  🌓 (★ω★) 🌐 browser_navigate... (2.1s)
  ✧ (✿◠‿◠) 🎨 image_generate... (4.5s)

Multi-line Input

For multi-line input, end a line with \ to continue:

 Write a function that:\
  1. Takes a list of numbers\
  2. Returns the sum

Environment Variable Priority

For terminal settings, cli-config.yaml takes precedence over .env:

  1. cli-config.yaml (highest priority in CLI)
  2. .env file
  3. System environment variables
  4. Default values

This allows you to have different terminal configs for CLI vs batch processing.

Session Management

  • History: Command history is saved to ~/.hermes_history
  • Conversations: Use /save to export conversations
  • Reset: Use /clear for full reset, /reset to just clear history

Quiet Mode

The CLI runs in "quiet mode" (HERMES_QUIET=1), which:

  • Suppresses verbose logging from tools
  • Enables kawaii-style animated feedback
  • Hides terminal environment warnings
  • Keeps output clean and user-friendly

For verbose output (debugging), use:

./hermes --verbose