Hermes (Nous Research)
Hermes Agent is a skill-based agent runtime from Nous Research. WaaP integrates as a standard AgentSkills skill with a SKILL.md definition file that teaches the agent how to use the wallet.
Hermes uses the same AgentSkills interface as OpenClaw, but runs on a separate runtime. If you are already familiar with OpenClaw skills, the setup is nearly identical — the only difference is the runtime: hermes field in the SKILL.md metadata.
Status: Production-ready.
Prerequisites
@human.tech/waap-cliinstalled globally- An active WaaP session (
waap-cli signuporwaap-cli login) - Hermes Agent installed (
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash)
Install the skill
Register the WaaP skill with Hermes (see Hermes docs for the exact hermes skills add command). This places a SKILL.md in your workspace that the Hermes runtime discovers automatically.
SKILL.md structure
The SKILL.md below shows the runtime metadata this framework expects. The
skill body. Commands, safety rails, exit codes. Should come from the copy
that ships with the CLI at
node_modules/@human.tech/waap-cli/.agent/SKILL.md, which is versioned with
the CLI it describes. Do not hand-maintain a fork of the body: it will drift
past required flags like --chain and --privilege-stdin.
The WaaP skill definition follows the AgentSkills SKILL.md format with Hermes-specific metadata:
---
name: waap-wallet
description: Signs messages and sends transactions with the local WaaP wallet
via the waap-cli tool. Use when the user asks to check their WaaP wallet
or sign a message.
compatibility: Requires @human.tech/waap-cli on PATH and an active WaaP
session at ~/.waap-cli/session.json
metadata:
author: holonym-foundation
runtime: hermes
---
# waap-wallet
Signs messages and sends transactions using the local WaaP wallet via `waap-cli`.
## Tools this skill shells out to
- `waap-cli whoami --json` -- returns wallet addresses and email
- `waap-cli sign-message --message 0x<hex> --json` -- returns a signature
- `waap-cli send-tx --to <addr> --value <amt> --chain <chain> --json` -- returns a transaction hash
## Instructions
When the user asks to interact with their wallet:
1. Call `waap-cli whoami --json` and report the address.
2. On user request, hex-encode their message (UTF-8 to 0x-prefixed hex).
3. Call `waap-cli sign-message --message 0x<hex> --json`.
4. Return the `signature` field.
For transactions:
1. Call `waap-cli send-tx` with the appropriate flags and `--json`.
2. Return the `txHash` or `digest` field.
## Safety rails
- Refuse if `waap-cli whoami` errors; instruct user to run `waap-cli signup`.
- Never read session files directly.
- Never ask the user for their password in chat.The key difference from an OpenClaw skill is runtime: hermes in the metadata block. The instructions and tool calls are identical.
Workspace configuration
Configure the skill through environment variables or your workspace config:
# In your Hermes workspace config
skills:
waap-wallet:
env:
WAAP_DEFAULT_CHAIN: "evm:8453"
WAAP_DEFAULT_RPC: "https://mainnet.base.org"WaaP CLI integration pattern
Hermes interacts with WaaP entirely through CLI subprocess calls:
- Identity check:
waap-cli whoami --jsonconfirms the wallet is available and returns addresses. - Signing:
waap-cli sign-message --message 0x<hex> --jsonsigns a message inside the enclave. - Transactions:
waap-cli send-tx --to <addr> --value <amt> --chain <chain> --jsonsends a transaction.
All commands use the --json flag for machine-readable output. The CLI handles enclave signing, policy checks, and Telegram approval flows transparently. The agent never touches a private key.
If waap-cli whoami fails, the agent should instruct the user to run waap-cli signup to create a session.
Related
- OpenClaw — same AgentSkills interface, different runtime
- CLI Commands — full
waap-clireference - Frameworks Overview — comparison of all supported frameworks
- Approvals and Notifications — Telegram approval setup