Skip to main content

Exolimbs — Hermes plugin

Give your Hermes agent OpenClaw / ClawHub's hands and feet. Run community skills, an isolated sandbox, a Playwright browser, and multi-language runtimes — through a tiny structured-JSON tool surface, with zero extra LLM tokens on the execution path.

Hermes is the brain. Exolimbs is the deterministic execution substrate. It never calls a model itself, has no conversation/memory/UI, and exposes six tools.

ℹ️ "Exolimbs" is the working title. Rename before any commercial launch — see DESIGN.md → Naming & legal. The package, plugin name, and entry point are all in one place each, so renaming is a 5-minute job.

Tools

Tool What it does
claw_skill_search Search the ClawHub registry
claw_skill_install Install + verify a skill (slug / git:owner/repo@ref / local path)
claw_skill_run Deterministically run a skill's script entrypoint
claw_sandbox_exec Run a command in an isolated (Docker) sandbox with rollback
claw_browser Playwright browser automation via a structured action list
claw_runtime Quick snippet in python / node / bash / ruby / go

Multiple skill markets

Switch the skills marketplace with openclaw_lite.market (or EXOLIMBS_MARKET):

Market Source Notes
clawhub (default) clawhub.ai Official OpenClaw registry, HTTP API v1
skillhub api.skillhub.cn China-focused market (75k+ skills); server-side keyword search, public zip download
openclaw_lite:
  market: skillhub            # or clawhub
  # registry_base_url: https://clawhub.ai      # clawhub override
  # skillhub_base_url: https://api.skillhub.cn # skillhub override

Adding another market = one adapter class in exolimbs/registries.py.

Two interchangeable backends

Set exolimbs.backend in ~/.hermes/config.yaml (or EXOLIMBS_BACKEND):

Mode Behaviour
cli Bridges to the real openclaw / clawhub CLIs (--non-interactive --json). Best registry parity. Requires Node + OpenClaw installed.
native Fully decoupled Python substrate. No Node needed. Handles sandbox/browser/runtime + git:/local skill installs natively.
auto (default) cli if the openclaw binary is on PATH, else native.

Install

As a directory plugin (simplest):

# copy the package into your Hermes plugins dir
cp -r exolimbs ~/.hermes/plugins/exolimbs
hermes plugins enable exolimbs

As a pip package (distribution):

pip install exolimbs           # core
pip install "exolimbs[browser]" # + Playwright
playwright install chromium          # one-time browser download
hermes plugins enable exolimbs

Verify inside a session:

/exo doctor

Configure (~/.hermes/config.yaml)

exolimbs:
  backend: auto            # auto | cli | native
  sandbox_enabled: true
  sandbox_image: "python:3.12-slim"
  sandbox_network: false
  default_timeout_s: 120
  max_retries: 2
  rollback: true
  registry_base_url: "https://clawhub.ai"
  browser_headless: true
  # Pro:
  audit_log: false
  # license_key: "EXL1...."   # or set EXOLIMBS_LICENSE in .env

Free vs Pro (open-core)

  • Free: all six tools, both backends, retry/rollback, trust-envelope verify.
  • Pro: JSONL audit log, curated/verified skill packs, auto-update, priority support. Unlock with EXOLIMBS_LICENSE. See DESIGN.md for pricing/channels.

Licenses are signed Ed25519 tokens (EXL1.<payload>.<signature>), verified fully offline against an embedded public key — no phone-home, air-gap safe.

Issuing licenses (vendor-side only):

python scripts/gen_keys.py                 # once: make keypair (seed -> .secrets/, git-ignored)
                                           # paste printed public key into exolimbs/_licensing.py
python scripts/issue_license.py --sub alice@example.com --tier pro --days 365
# -> prints EXL1.<...> ; customer sets EXOLIMBS_LICENSE to that token

Revoke an issued license by adding its jti to _REVOKED in _licensing.py and shipping a release.

Security

Third-party skills are untrusted code. Prefer claw_sandbox_exec with network: false for anything you don't fully trust. Without Docker, sandbox calls run locally and are flagged "sandboxed": false.

Dashboard UI (optional)

A web UI ships in dashboard/ for the Hermes dashboard (hermes dashboard). Install the plugin into your Hermes home and restart the dashboard:

cp -r exolimbs "$HERMES_HOME/plugins/exolimbs"   # default HERMES_HOME = ~/.hermes
# restart: hermes dashboard

An Exolimbs tab appears (after Skills) with: status, skill search (ClawHub/SkillHub toggle), curated packs, and a runtime tester. It follows the active dashboard theme automatically (uses the host SDK components). Backend routes are mounted at /api/plugins/exolimbs/ on dashboard startup.

Try it locally (no Hermes, no GUI — it's a headless engine)

Exolimbs has no UI by design; you "experience" it by calling its tools and reading the JSON. The demo script lets you do that directly:

python scripts/demo.py doctor                  # backend / license status
python scripts/demo.py packs                   # curated packs
python scripts/demo.py search github 5         # live ClawHub search
python scripts/demo.py runtime python "print(6*7)"
python scripts/demo.py sandbox "echo hi"
python scripts/demo.py menu                     # interactive

To use it inside the agent instead, copy exolimbs/ into ~/.hermes/plugins/exolimbs/ (or pip install exolimbs), then hermes plugins enable exolimbs and try /exo doctor in a session.

Development

pip install -e ".[dev,browser]"
pytest -q

License

MIT (this plugin). Not affiliated with OpenClaw/ClawHub. See LICENSE.

Metadata

Release files for exolimbs 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exolimbs 0.7.1
File Size Uploaded
exolimbs-0.7.1.tar.gz 43.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for exolimbs 0.7.1
File Interpreter ABI Platform
exolimbs-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 86.2 kB

Release files / exolimbs-0.7.1.tar.gz

Download URL exolimbs-0.7.1.tar.gz
Size 43.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7f4ff8c3d07f247d0cda49c5275fa41a04305520699cf711aa96cbee84d995ce
BLAKE2b-256 checksum
How to use checksums
39634463482c56b8b70b2eb55c7d24d4a4c73fdac2a6eb55ce9ab1830a9baa24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / exolimbs-0.7.1-py3-none-any.whl

Download URL exolimbs-0.7.1-py3-none-any.whl
Size 43.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d01e270991d43fac4379ec0b118ea69628596b371b2d8ea77e1533ed29f417e0
BLAKE2b-256 checksum
How to use checksums
0315387ca747e49013207a652c7ba631db505bf9454bb11be078871414ce5bc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page