Tools

Terminal Tools

Shell and process execution capabilities used for coding and operations.

Terminal Tools

What it is

Shell and process execution capabilities used for coding and operations.

In plain terms

It’s the difference between describing how a recipe might turn out and actually turning on the stove and tasting it. Terminal tools let Hermes actually run a command — a build, a test suite, a git operation — and see the real result, rather than guessing what the outcome would be.

Why it matters

Shell and process execution is what a coding-focused session leans on most, since running a build, a test suite, or a git command is usually faster than reasoning about the likely outcome in the abstract. Unlike browser or computer-use tools, this operates purely inside the process and filesystem sandbox rather than driving a GUI, which is part of why it gets its own dedicated 4 registered declarations. Sandbox boundaries and approval rules apply most visibly right here, since unrestricted shell access on an unattended agent is exactly the scenario those guardrails exist to prevent.

How it works

The terminal toolset centers on two tools, terminal and process, which together can execute commands locally, inside a Docker container, or in a Modal cloud sandbox depending on configuration (tools/terminal_tool.py) — plus two desktop-only companions, read_terminal and close_terminal, that only register when the GUI is present. Long jobs can run in the background with notify_on_complete, which pings the agent exactly once when the process exits — the schema explicitly steers the model toward this for anything over a minute, like tests or deployments — while watch_patterns covers the rarer case of a long-lived process needing a mid-run signal, rate-limited to one notification per 15 seconds and switched over to notify_on_complete behavior after repeated drops. A pty flag enables pseudo-terminal mode for interactive CLI tools, and a once-per-process Docker orphan reaper cleans up abandoned containers.

A concrete example

A coding agent needs to run a slow test suite without stalling the conversation.

  1. It calls terminal with background=true and notify_on_complete=true and keeps working on something else.
  2. Ten minutes later the suite finishes and Hermes gets a single automatic notification rather than polling.
  3. It reads the output, sees two failing tests, and moves on to fixing them — the terminal toolset made the wait invisible instead of blocking.

How it connects

This note belongs to the Tools family. Its closest neighboring concepts are: File Tools, Computer Use, Agent Runtime, Personal OS.

Source evidence

  • vendor/hermes-agent/toolsets.py#<file> — Structural Source Map fallback for toolsets.py. A core source file in the Tool Registry and Toolsets structure within Tools, Toolsets, and MCP.

Workflows

  • No first-pass workflow mapping yet; this concept still appears in the vault graph through articles and source evidence.
  • No article currently mentions this concept by name/alias often enough to qualify (see mention-mining policy).