Hermes Agent Tools
Hermes Agent Tools
Tools are functions that extend agent capabilities. They are organized into logical **toolsets** that can be enabled or disabled on each platform.
Hermes Agent comes with an extensive built-in tool registry covering web search, browser automation, terminal execution, file editing, memory, delegation, RL training, message delivery, Home Assistant, and more.
* * *
## Available Tools
### Tool Categories
| Category | Examples | Description |
| --- | --- | --- |
| **Web** | `web_search`, `web_extract` | Search the web and extract page content |
| **Terminal and File** | `terminal`, `process`, `read_file`, `patch` | Execute commands and manipulate files |
| **Browser** | `browser_navigate`, `browser_snapshot`, `browser_vision` | Interactive browser automation with text and vision support |
| **Media** | `vision_analyze`, `image_generate`, `text_to_speech` | Multimodal analysis and generation |
| **Agent Orchestration** | `todo`, `clarify`, `execute_code`, `delegate_task` | Planning, clarification, code execution, and sub-agent delegation |
| **Memory and Recall** | `memory`, `session_search` | Persistent memory and session search |
| **Automation and Delivery** | `cronjob`, `send_message` | Scheduled tasks (create/list/update/pause/resume/run/delete), and outbound message delivery |
| **Integration** | `ha_*`, MCP server tools, `rl_*` | Home Assistant, MCP, RL training, and other integrations |
* * *
## Using Toolsets
```bash
# Use specific toolsets
hermes chat --toolsets "web,terminal"
# View all available tools
hermes tools
# Configure tools for each platform (interactive)
hermes tools
Common toolsets include:
* `web` β Web search and extraction
* `terminal` β Terminal command execution
* `file` β File operations
* `browser` β Browser automation
* `vision` β Image analysis
* `image_gen` β Image generation
* `skills` β Skill system
* `tts` β Text-to-speech
* `todo` β Task management
* `memory` β Memory system
* `session_search` β Session search
* `cronjob` β Scheduled tasks
* `code_execution` β Code execution
* `delegation` β Task delegation
* `clarify` β Clarification questions
* `homeassistant` β Home Assistant integration
* `rl` β Reinforcement learning training
**Platform Presets:** Toolsets also include platform presets like `hermes-cli`, `hermes-telegram`, and dynamic MCP toolsets like `mcp-`.
* * *
## Terminal Backend
Terminal tools can execute commands in different environments:
| Backend | Description | Use Cases |
| --- | --- | --- |
| `local` | Run on local machine (default) | Development, trusted tasks |
| `docker` | Isolated containers | Security, reproducibility |
| `ssh` | Remote server | Sandboxing, keeping agent away from own code |
| `singularity` | HPC containers | Cluster computing, no root |
| `modal` | Cloud execution | Serverless, elastic scaling |
| `daytona` | Cloud sandbox workspace | Persistent remote development environment |
### Configuration
```yaml
# ~/.hermes/config.yaml
terminal:
backend: local # or: docker, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
### Docker Backend
```yaml
terminal:
backend: docker
docker_image: python:3.11-slim
### SSH Backend
Recommended for security scenarios β the agent cannot modify its own code:
```yaml
terminal:
backend: ssh
# Set credentials in ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
### Modal (Serverless Cloud)
```bash
uv pip install modal
modal setup
hermes config set terminal.backend modal
### Container Resources
```yaml
terminal:
backend: docker
container_cpu: 1 # Number of CPU cores
container_memory: 5120 # Memory in MB (default 5GB)
container_disk: 51200 # Disk in MB (default 50GB)
container_persistent: true # Persist across sessions
### Container Security
All container backends run with security hardening:
* Read-only root filesystem (Docker)
* Drop all Linux capabilities
* No privilege escalation
* PID limit (256 processes)
* Full namespace isolation
* Persistent workspace via volumes instead of writable root layer
* * *
## Background Process Management
Start background processes and manage them:
```python
terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}
# Then use the process tool to manage:
process(action="list") # Display all running processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until completion
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input
PTY mode (`pty=true`) enables interactive CLI tools like Codex and Claude Code.
* * *
## Sudo Support
If a command requires sudo, the system will prompt you for a password (cached for the session). Or set `SUDO_PASSWORD` in `~/.hermes/.env`.
**Warning:** On messaging platforms, if sudo fails, the output will include a prompt to add to `~/.hermes/.env`.
> **Tip:** Use the `hermes tools` command to interactively configure enabled tools for each platform.
YouTip