Run ClawHub skills, sandbox, Playwright browser & multi-language runtimes as Hermes hands/feet. Structured JSON, zero extra LLM tokens.
Project description
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 |
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. SeeDESIGN.mdfor 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.
Development
pip install -e ".[dev,browser]"
pytest -q
License
MIT (this plugin). Not affiliated with OpenClaw/ClawHub. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exolimbs-0.5.0.tar.gz.
File metadata
- Download URL: exolimbs-0.5.0.tar.gz
- Upload date:
- Size: 32.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
992f0cbe8dc214e8e1f355ae6962e74699673bd7cc677bef83d25b478bc4f72b
|
|
| MD5 |
0f91cc1a4902471344321fbc5053afad
|
|
| BLAKE2b-256 |
ccdfef2c66366de0089fcc777ee2c649e13be360f220595e4e6314d7a4e63f48
|
File details
Details for the file exolimbs-0.5.0-py3-none-any.whl.
File metadata
- Download URL: exolimbs-0.5.0-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e07158f4b781a53d297f69f3badb8de45640f864ec7e0436509eb03a0c163809
|
|
| MD5 |
f898191c101e96c8b8d949862b23a866
|
|
| BLAKE2b-256 |
a828d45213b75d6a96721c8583c3eebffa0e0ee5508ff6f4ace8785406c022c1
|