Introduction
Different agent CLIs expose different tool surfaces. In OpenReward, you can expose agent-native tool surfaces server-side, backed by your environment’s sandbox. When a session is created with a toolset, the agent sees the exact tools it expects and every tool call executes against the sandbox.How Toolsets Compose into Sessions
Harness toolsets are session-scoped: they are passed when creating a session and their tools are merged with the environment’s own tools. Theopenreward package includes a registry of built-in harness toolsets that can be referenced by name:
bash, read, etc. with their agent-specific implementations.
Sandbox Requirement
All harness toolsets extend theToolset base class, which requires the environment to have a self.sandbox attribute. When the toolset is instantiated against an environment, it automatically extracts self.sandbox and uses it for all tool executions.
If you’re building an environment that supports harness toolsets, ensure your environment sets up a sandbox:
toolset="claude-code", the ClaudeCodeToolset is instantiated with this environment and gains access to self.sandbox. All its tools (bash, read, write, etc.) execute commands against that sandbox.
Available Harness Toolsets
ClaudeCodeToolset
Name:"claude-code" · Tools: 7
Mirrors the Claude Code CLI’s built-in tool surface. Tool descriptions are sourced from Claude Code’s internal prompts.
| Tool | Description |
|---|---|
bash | Execute shell commands with full bash support |
glob | Find files matching glob patterns |
grep | Search file contents with regex (ripgrep-style) |
read | Read file contents with optional offset/limit pagination |
write | Write content to a file, creating directories as needed |
edit | Exact string replacement in files (unique match required unless replace_all) |
todo_write | Manage a todo list for task planning and progress tracking |
CodexToolset
Name:"codex" · Tools: 1
Codex prefers a single shell tool over discrete file tools. All file operations are done through bash.
| Tool | Description |
|---|---|
bash | Run shell commands; use for all file operations |
GeminiCliToolset
Name:"gemini-cli" · Tools: 8
Matches the upstream Gemini CLI tool surface. Uses Gemini-specific tool names like run_shell_command and replace.
| Tool | Description |
|---|---|
run_shell_command | Execute shell commands as bash -c <command> |
glob | Find files matching glob patterns, sorted by modification time |
grep_search | Search file contents with regex, max 100 matches |
read_file | Read file contents with optional line range |
write_file | Write content to a file |
replace | Find-and-replace in files (unique match required unless allow_multiple) |
list_directory | List files and subdirectories in a path |
write_todos | Track subtasks for complex queries |
OpenClawToolset
Name:"openclaw" · Tools: 6
Exposes the OpenClaw coding tool surface, including background process management and structured patch application.
| Tool | Description |
|---|---|
exec | Execute shell commands with configurable timeout (default 1800s) |
process | Manage background processes: list, poll, log, write stdin, kill, remove |
read | Read file contents with optional offset/limit pagination |
write | Write content to a file, creating parent directories |
edit | Apply targeted text replacements with oldText/newText pairs |
apply_patch | Apply structured patches with *** Begin Patch / *** End Patch markers |
HermesToolset
Name:"hermes" · Tools: 5
Exposes the Hermes Agent tool surface from Nous Research. Supports both targeted string replacement and V4A multi-file patches.
| Tool | Description |
|---|---|
terminal | Execute shell commands (default timeout 180s, max 600s) |
read_file | Read files with LINE_NUM|CONTENT format, pagination via offset/limit |
write_file | Write content to a file, creating parent directories |
search_files | Search file contents (target="content") or find files by name (target="files") |
patch | Replace mode (find-and-replace) or patch mode (V4A multi-file patches) |
Tool Comparison
| Capability | Claude Code | Codex | Gemini CLI | OpenClaw | Hermes |
|---|---|---|---|---|---|
| Shell execution | bash | bash | run_shell_command | exec | terminal |
| File read | read | via bash | read_file | read | read_file |
| File write | write | via bash | write_file | write | write_file |
| File edit | edit | via bash | replace | edit | patch (replace mode) |
| File search | grep | via bash | grep_search | via exec | search_files |
| File glob | glob | via bash | glob | via exec | search_files (target=files) |
| Directory listing | via bash | via bash | list_directory | via exec | search_files (target=files) |
| Task planning | todo_write | — | write_todos | — | — |
| Process management | — | — | — | process | — |
| Patch application | — | — | — | apply_patch | patch (patch mode) |
Example: Full Environment with Harness Toolset Support
Here is a complete environment that supports harness toolsets. The environment defines its own task-specific tools (submit_answer), while the harness toolset provides the agent’s coding tools:
Next Steps
Using Toolsets
Learn about document toolsets (PDF, Excel, Word, PowerPoint)
Building Agentic Environments
Create sandbox-based environments from scratch
Harness Quickstart
Run agent harnesses with Firehorse
Sandbox Providers
Choose a sandbox provider for your environments

