clawmes 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- clawmes-0.1.0/LICENSE +21 -0
- clawmes-0.1.0/PKG-INFO +314 -0
- clawmes-0.1.0/README.md +266 -0
- clawmes-0.1.0/clawmes/__init__.py +142 -0
- clawmes-0.1.0/clawmes/_version.py +10 -0
- clawmes-0.1.0/clawmes/bridges/__init__.py +24 -0
- clawmes-0.1.0/clawmes/bridges/installer.py +126 -0
- clawmes-0.1.0/clawmes/bridges/process.py +263 -0
- clawmes-0.1.0/clawmes/bridges/sa_client.py +96 -0
- clawmes-0.1.0/clawmes/bridges/sources/wc/package-lock.json +1130 -0
- clawmes-0.1.0/clawmes/bridges/sources/wc/package.json +22 -0
- clawmes-0.1.0/clawmes/bridges/sources/wc/src/index.ts +137 -0
- clawmes-0.1.0/clawmes/bridges/sources/wc/src/methods.ts +247 -0
- clawmes-0.1.0/clawmes/bridges/sources/wc/src/wc-client.ts +63 -0
- clawmes-0.1.0/clawmes/bridges/sources/wc/tsconfig.json +18 -0
- clawmes-0.1.0/clawmes/bridges/wc_client.py +77 -0
- clawmes-0.1.0/clawmes/cli/__init__.py +45 -0
- clawmes-0.1.0/clawmes/cli/_argparse.py +159 -0
- clawmes-0.1.0/clawmes/cli/doctor.py +151 -0
- clawmes-0.1.0/clawmes/cli/init.py +338 -0
- clawmes-0.1.0/clawmes/cli/version.py +21 -0
- clawmes-0.1.0/clawmes/commands/__init__.py +40 -0
- clawmes-0.1.0/clawmes/commands/doctor.py +315 -0
- clawmes-0.1.0/clawmes/commands/help.py +96 -0
- clawmes-0.1.0/clawmes/commands/plans.py +67 -0
- clawmes-0.1.0/clawmes/commands/policy.py +121 -0
- clawmes-0.1.0/clawmes/commands/tx.py +160 -0
- clawmes-0.1.0/clawmes/commands/wallet.py +193 -0
- clawmes-0.1.0/clawmes/data/SOUL.md +61 -0
- clawmes-0.1.0/clawmes/data/__init__.py +2 -0
- clawmes-0.1.0/clawmes/data/personas/chill.md +9 -0
- clawmes-0.1.0/clawmes/data/personas/degen.md +9 -0
- clawmes-0.1.0/clawmes/data/personas/mentor.md +9 -0
- clawmes-0.1.0/clawmes/data/personas/professional.md +9 -0
- clawmes-0.1.0/clawmes/data/personas/technical.md +9 -0
- clawmes-0.1.0/clawmes/hooks/__init__.py +39 -0
- clawmes-0.1.0/clawmes/hooks/after_tool_call.py +132 -0
- clawmes-0.1.0/clawmes/hooks/on_session.py +39 -0
- clawmes-0.1.0/clawmes/hooks/pre_gateway_dispatch.py +51 -0
- clawmes-0.1.0/clawmes/hooks/pre_tool_call.py +32 -0
- clawmes-0.1.0/clawmes/hooks/prompt_builder.py +101 -0
- clawmes-0.1.0/clawmes/hooks/subagent_stop.py +39 -0
- clawmes-0.1.0/clawmes/hooks/transform_terminal_output.py +33 -0
- clawmes-0.1.0/clawmes/hooks/transform_tool_result.py +42 -0
- clawmes-0.1.0/clawmes/ledger/__init__.py +14 -0
- clawmes-0.1.0/clawmes/ledger/tx_ledger.py +128 -0
- clawmes-0.1.0/clawmes/lib/__init__.py +6 -0
- clawmes-0.1.0/clawmes/lib/abi.py +137 -0
- clawmes-0.1.0/clawmes/lib/addr.py +72 -0
- clawmes-0.1.0/clawmes/lib/chains.py +140 -0
- clawmes-0.1.0/clawmes/lib/decimals.py +74 -0
- clawmes-0.1.0/clawmes/lib/ens.py +164 -0
- clawmes-0.1.0/clawmes/lib/http.py +196 -0
- clawmes-0.1.0/clawmes/lib/logger.py +72 -0
- clawmes-0.1.0/clawmes/lib/params.py +104 -0
- clawmes-0.1.0/clawmes/lib/paths.py +91 -0
- clawmes-0.1.0/clawmes/lib/time.py +95 -0
- clawmes-0.1.0/clawmes/lib/tool_result.py +69 -0
- clawmes-0.1.0/clawmes/onboarding/__init__.py +22 -0
- clawmes-0.1.0/clawmes/onboarding/flow.py +35 -0
- clawmes-0.1.0/clawmes/onboarding/personas.py +60 -0
- clawmes-0.1.0/clawmes/persona.py +74 -0
- clawmes-0.1.0/clawmes/plans/__init__.py +32 -0
- clawmes-0.1.0/clawmes/plans/compiler.py +28 -0
- clawmes-0.1.0/clawmes/plans/executor.py +32 -0
- clawmes-0.1.0/clawmes/plans/ir.py +78 -0
- clawmes-0.1.0/clawmes/plans/scheduler.py +131 -0
- clawmes-0.1.0/clawmes/plans/triggers/__init__.py +8 -0
- clawmes-0.1.0/clawmes/plans/triggers/price_trigger.py +44 -0
- clawmes-0.1.0/clawmes/plans/triggers/time_trigger.py +33 -0
- clawmes-0.1.0/clawmes/plans/validator.py +103 -0
- clawmes-0.1.0/clawmes/plugin.yaml +92 -0
- clawmes-0.1.0/clawmes/policy/__init__.py +36 -0
- clawmes-0.1.0/clawmes/policy/confirm_store.py +82 -0
- clawmes-0.1.0/clawmes/policy/evaluator.py +93 -0
- clawmes-0.1.0/clawmes/policy/parser.py +269 -0
- clawmes-0.1.0/clawmes/policy/storage.py +109 -0
- clawmes-0.1.0/clawmes/policy/types.py +117 -0
- clawmes-0.1.0/clawmes/policy/usage_counter.py +72 -0
- clawmes-0.1.0/clawmes/services/__init__.py +111 -0
- clawmes-0.1.0/clawmes/services/_base.py +57 -0
- clawmes-0.1.0/clawmes/services/aave.py +171 -0
- clawmes-0.1.0/clawmes/services/bankr_service.py +216 -0
- clawmes-0.1.0/clawmes/services/coingecko.py +170 -0
- clawmes-0.1.0/clawmes/services/credential_redactor.py +280 -0
- clawmes-0.1.0/clawmes/services/explorer.py +226 -0
- clawmes-0.1.0/clawmes/services/governance.py +125 -0
- clawmes-0.1.0/clawmes/services/lifi.py +185 -0
- clawmes-0.1.0/clawmes/services/mode_service.py +75 -0
- clawmes-0.1.0/clawmes/services/persona_service.py +85 -0
- clawmes-0.1.0/clawmes/services/price.py +114 -0
- clawmes-0.1.0/clawmes/services/registry.py +72 -0
- clawmes-0.1.0/clawmes/services/rpc.py +327 -0
- clawmes-0.1.0/clawmes/services/safe.py +140 -0
- clawmes-0.1.0/clawmes/services/staking.py +102 -0
- clawmes-0.1.0/clawmes/services/token_decimals.py +216 -0
- clawmes-0.1.0/clawmes/services/wallet.py +210 -0
- clawmes-0.1.0/clawmes/services/wc_notifications.py +130 -0
- clawmes-0.1.0/clawmes/services/zerox.py +243 -0
- clawmes-0.1.0/clawmes/skills/__init__.py +63 -0
- clawmes-0.1.0/clawmes/skills/agent-memory/SKILL.md +63 -0
- clawmes-0.1.0/clawmes/skills/airdrop/SKILL.md +85 -0
- clawmes-0.1.0/clawmes/skills/analytics/SKILL.md +109 -0
- clawmes-0.1.0/clawmes/skills/approvals/SKILL.md +88 -0
- clawmes-0.1.0/clawmes/skills/automation/SKILL.md +84 -0
- clawmes-0.1.0/clawmes/skills/bankr/SKILL.md +99 -0
- clawmes-0.1.0/clawmes/skills/block-explorer/SKILL.md +66 -0
- clawmes-0.1.0/clawmes/skills/bridge/SKILL.md +70 -0
- clawmes-0.1.0/clawmes/skills/browser/SKILL.md +62 -0
- clawmes-0.1.0/clawmes/skills/cost-basis/SKILL.md +61 -0
- clawmes-0.1.0/clawmes/skills/defi-swap/SKILL.md +89 -0
- clawmes-0.1.0/clawmes/skills/defi-trading/SKILL.md +67 -0
- clawmes-0.1.0/clawmes/skills/farcaster/SKILL.md +87 -0
- clawmes-0.1.0/clawmes/skills/governance/SKILL.md +97 -0
- clawmes-0.1.0/clawmes/skills/lending/SKILL.md +74 -0
- clawmes-0.1.0/clawmes/skills/liquidity/SKILL.md +130 -0
- clawmes-0.1.0/clawmes/skills/manage-orders/SKILL.md +66 -0
- clawmes-0.1.0/clawmes/skills/market-intel/SKILL.md +67 -0
- clawmes-0.1.0/clawmes/skills/nft/SKILL.md +95 -0
- clawmes-0.1.0/clawmes/skills/permit2/SKILL.md +96 -0
- clawmes-0.1.0/clawmes/skills/privacy/SKILL.md +60 -0
- clawmes-0.1.0/clawmes/skills/safe-multisig/SKILL.md +99 -0
- clawmes-0.1.0/clawmes/skills/session-recall/SKILL.md +62 -0
- clawmes-0.1.0/clawmes/skills/skill-evolve/SKILL.md +68 -0
- clawmes-0.1.0/clawmes/skills/staking/SKILL.md +70 -0
- clawmes-0.1.0/clawmes/skills/transfer/SKILL.md +67 -0
- clawmes-0.1.0/clawmes/skills/watch-activity/SKILL.md +84 -0
- clawmes-0.1.0/clawmes/tools/__init__.py +128 -0
- clawmes-0.1.0/clawmes/tools/_user_tools.py +121 -0
- clawmes-0.1.0/clawmes/tools/agent_memory.py +106 -0
- clawmes-0.1.0/clawmes/tools/airdrop.py +259 -0
- clawmes-0.1.0/clawmes/tools/analytics.py +384 -0
- clawmes-0.1.0/clawmes/tools/approvals.py +364 -0
- clawmes-0.1.0/clawmes/tools/bankr_automate.py +90 -0
- clawmes-0.1.0/clawmes/tools/bankr_launch.py +101 -0
- clawmes-0.1.0/clawmes/tools/bankr_leverage.py +92 -0
- clawmes-0.1.0/clawmes/tools/bankr_polymarket.py +83 -0
- clawmes-0.1.0/clawmes/tools/block_explorer.py +163 -0
- clawmes-0.1.0/clawmes/tools/bridge.py +375 -0
- clawmes-0.1.0/clawmes/tools/browser.py +148 -0
- clawmes-0.1.0/clawmes/tools/clawnch_fees.py +125 -0
- clawmes-0.1.0/clawmes/tools/clawnch_launch.py +152 -0
- clawmes-0.1.0/clawmes/tools/clawnchconnect.py +203 -0
- clawmes-0.1.0/clawmes/tools/clawnx.py +100 -0
- clawmes-0.1.0/clawmes/tools/compound_action.py +107 -0
- clawmes-0.1.0/clawmes/tools/cost_basis.py +351 -0
- clawmes-0.1.0/clawmes/tools/defi_balance.py +244 -0
- clawmes-0.1.0/clawmes/tools/defi_lend.py +330 -0
- clawmes-0.1.0/clawmes/tools/defi_price.py +125 -0
- clawmes-0.1.0/clawmes/tools/defi_stake.py +220 -0
- clawmes-0.1.0/clawmes/tools/defi_swap.py +460 -0
- clawmes-0.1.0/clawmes/tools/farcaster.py +215 -0
- clawmes-0.1.0/clawmes/tools/giza.py +103 -0
- clawmes-0.1.0/clawmes/tools/governance.py +268 -0
- clawmes-0.1.0/clawmes/tools/herd_intelligence.py +112 -0
- clawmes-0.1.0/clawmes/tools/hummingbot.py +99 -0
- clawmes-0.1.0/clawmes/tools/liquidity.py +413 -0
- clawmes-0.1.0/clawmes/tools/lobster_cash.py +105 -0
- clawmes-0.1.0/clawmes/tools/manage_orders.py +157 -0
- clawmes-0.1.0/clawmes/tools/market_intel.py +170 -0
- clawmes-0.1.0/clawmes/tools/molten.py +104 -0
- clawmes-0.1.0/clawmes/tools/nft.py +374 -0
- clawmes-0.1.0/clawmes/tools/nookplot.py +92 -0
- clawmes-0.1.0/clawmes/tools/paysponge.py +111 -0
- clawmes-0.1.0/clawmes/tools/permit2.py +317 -0
- clawmes-0.1.0/clawmes/tools/privacy.py +112 -0
- clawmes-0.1.0/clawmes/tools/registry.py +270 -0
- clawmes-0.1.0/clawmes/tools/safe.py +228 -0
- clawmes-0.1.0/clawmes/tools/session_recall.py +135 -0
- clawmes-0.1.0/clawmes/tools/skill_evolve.py +140 -0
- clawmes-0.1.0/clawmes/tools/transfer.py +761 -0
- clawmes-0.1.0/clawmes/tools/watch_activity.py +199 -0
- clawmes-0.1.0/clawmes/tools/wayfinder.py +94 -0
- clawmes-0.1.0/clawmes/tools/yield_farming.py +196 -0
- clawmes-0.1.0/clawmes/wallet/__init__.py +25 -0
- clawmes-0.1.0/clawmes/wallet/_base.py +75 -0
- clawmes-0.1.0/clawmes/wallet/bankr.py +165 -0
- clawmes-0.1.0/clawmes/wallet/keystore.py +313 -0
- clawmes-0.1.0/clawmes/wallet/local_key.py +309 -0
- clawmes-0.1.0/clawmes/wallet/state.py +64 -0
- clawmes-0.1.0/clawmes/wallet/walletconnect.py +223 -0
- clawmes-0.1.0/clawmes.egg-info/PKG-INFO +314 -0
- clawmes-0.1.0/clawmes.egg-info/SOURCES.txt +195 -0
- clawmes-0.1.0/clawmes.egg-info/dependency_links.txt +1 -0
- clawmes-0.1.0/clawmes.egg-info/entry_points.txt +2 -0
- clawmes-0.1.0/clawmes.egg-info/requires.txt +27 -0
- clawmes-0.1.0/clawmes.egg-info/top_level.txt +1 -0
- clawmes-0.1.0/pyproject.toml +162 -0
- clawmes-0.1.0/setup.cfg +4 -0
- clawmes-0.1.0/tests/test_imports.py +39 -0
- clawmes-0.1.0/tests/test_init_module.py +108 -0
- clawmes-0.1.0/tests/test_misc_coverage.py +319 -0
- clawmes-0.1.0/tests/test_persona.py +74 -0
- clawmes-0.1.0/tests/test_persona_extra.py +29 -0
- clawmes-0.1.0/tests/test_plugin_loading.py +250 -0
- clawmes-0.1.0/tests/test_plugin_manifest.py +222 -0
- clawmes-0.1.0/tests/test_register.py +145 -0
clawmes-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Clawnch
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
clawmes-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: clawmes
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Hermes Agent plugin for crypto: wallets, DEX trading, lending and staking, governance, on-chain automation.
|
|
5
|
+
Author-email: Clawnch <dev@clawn.ch>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://clawnch.dev
|
|
8
|
+
Project-URL: Repository, https://github.com/clawnchdev/clawmes
|
|
9
|
+
Project-URL: Issues, https://github.com/clawnchdev/clawmes/issues
|
|
10
|
+
Keywords: hermes,hermes-agent,clawmes,crypto,defi,walletconnect,agent,ai,assistant,blockchain,base
|
|
11
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
15
|
+
Classifier: Operating System :: MacOS
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: web3>=7.0.0
|
|
24
|
+
Requires-Dist: eth-account>=0.13.0
|
|
25
|
+
Requires-Dist: eth-utils>=4.0.0
|
|
26
|
+
Requires-Dist: mnemonic>=0.21
|
|
27
|
+
Requires-Dist: pycryptodome>=3.20.0
|
|
28
|
+
Requires-Dist: keyring>=25.0.0
|
|
29
|
+
Requires-Dist: pydantic>=2.7
|
|
30
|
+
Requires-Dist: httpx>=0.27
|
|
31
|
+
Requires-Dist: tenacity>=8.5
|
|
32
|
+
Requires-Dist: python-dotenv>=1.0
|
|
33
|
+
Requires-Dist: pyyaml>=6.0
|
|
34
|
+
Requires-Dist: rich>=13.7
|
|
35
|
+
Requires-Dist: typing_extensions>=4.12
|
|
36
|
+
Provides-Extra: dev
|
|
37
|
+
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
38
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
39
|
+
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
40
|
+
Requires-Dist: ruff>=0.5; extra == "dev"
|
|
41
|
+
Requires-Dist: mypy>=1.10; extra == "dev"
|
|
42
|
+
Provides-Extra: test-network
|
|
43
|
+
Requires-Dist: responses>=0.25; extra == "test-network"
|
|
44
|
+
Requires-Dist: vcrpy>=6.0; extra == "test-network"
|
|
45
|
+
Provides-Extra: all
|
|
46
|
+
Requires-Dist: clawmes[dev,test-network]; extra == "all"
|
|
47
|
+
Dynamic: license-file
|
|
48
|
+
|
|
49
|
+
# clawmes
|
|
50
|
+
|
|
51
|
+
[](https://github.com/clawnchdev/clawmes/actions/workflows/ci.yml)
|
|
52
|
+
[](https://github.com/clawnchdev/clawmes/actions/workflows/ci.yml)
|
|
53
|
+
[](https://github.com/clawnchdev/clawmes/blob/main/pyproject.toml)
|
|
54
|
+
[](LICENSE)
|
|
55
|
+
|
|
56
|
+
> Hermes Agent for crypto.
|
|
57
|
+
|
|
58
|
+
> [!WARNING]
|
|
59
|
+
> **Pre-alpha. Do not use real funds.** No real-network validation has happened yet, and no third-party security audit has been done. The signing paths are tested with mocks but unverified against live mainnet conditions. Use small testnet amounts only until v1.0. See [SECURITY.md](SECURITY.md) for the full threat model and recovery checklist.
|
|
60
|
+
|
|
61
|
+
Clawmes is a [Hermes Agent](https://github.com/NousResearch/hermes-agent) plugin. Wallets, DEX trading, lending and staking, governance, on-chain automation. Python rewrite of [`@clawnch/openclaw-crypto`](https://github.com/clawnchdev/openclawnch) targeting Hermes.
|
|
62
|
+
|
|
63
|
+
45 tools. 27 commands. 14 services. 11 hooks. Runs on Telegram, Discord, Slack, Signal, WhatsApp, iMessage, and LINE.
|
|
64
|
+
|
|
65
|
+
## Quick start
|
|
66
|
+
|
|
67
|
+
clawmes is not yet on PyPI; install from GitHub:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# 1. Install Hermes Agent (see https://github.com/NousResearch/hermes-agent)
|
|
71
|
+
# 2. Install clawmes as a Hermes plugin:
|
|
72
|
+
hermes plugins install clawnchdev/clawmes --enable
|
|
73
|
+
hermes clawmes init # interactive setup wizard
|
|
74
|
+
hermes # start chatting
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The `hermes clawmes init` wizard prompts for wallet mode (WalletConnect / local / Bankr), per-mode setup (project ID / password+mnemonic / API key), and optional API keys for the most-used integrations. It writes everything to `~/.hermes/.env` in upsert mode (existing keys preserved).
|
|
78
|
+
|
|
79
|
+
### Editable / dev install
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
git clone https://github.com/clawnchdev/clawmes
|
|
83
|
+
cd clawmes
|
|
84
|
+
pip install -e ".[dev]"
|
|
85
|
+
hermes plugins enable clawmes
|
|
86
|
+
hermes clawmes init
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### PyPI publishing
|
|
90
|
+
|
|
91
|
+
The package is not yet published. v0.1.0 is GitHub-only. PyPI publication will land once the bridges-integration job has run a real-network smoke test and a third-party audit signs off the signing paths. Track [#1](https://github.com/clawnchdev/clawmes/issues) for the publish milestone.
|
|
92
|
+
|
|
93
|
+
## Tools
|
|
94
|
+
|
|
95
|
+
| Category | Tools | What it does |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| **Wallet** (4) | `clawnchconnect`, `transfer`, `permit2`, `approvals` | WalletConnect pairing, ENS transfers, Permit2 signed approvals, ERC-20 allowance management |
|
|
98
|
+
| **Trading** (8) | `defi_swap`, `defi_balance`, `defi_lend`, `defi_stake`, `defi_price`, `liquidity`, `manage_orders`, `bridge` | 0x DEX aggregator, Aave V3 lending, Lido/Rocket Pool staking, Uniswap V3 LP positions, limit/stop/trailing/DCA orders, LiFi cross-chain bridging |
|
|
99
|
+
| **Yield/Analytics** (4) | `yield`, `analytics`, `market_intel`, `cost_basis` | DeFiLlama yields, RSI/MACD/Bollinger TA, trending tokens via CoinGecko, FIFO P&L from local ledger |
|
|
100
|
+
| **Launches** (6) | `clawnch_launch`, `clawnch_fees`, `bankr_launch`, `bankr_automate`, `bankr_polymarket`, `bankr_leverage` | Token deploys on Base via Clawnch launchpad, Bankr-side automation rules, Polymarket predictions, Avantis perp leverage |
|
|
101
|
+
| **Ownership** (4) | `nft`, `airdrop`, `privacy`, `safe` | Reservoir NFT API, OZ Merkle distributor airdrop claims, Lobster privacy pools, Gnosis Safe multisig |
|
|
102
|
+
| **Governance** (2) | `governance`, `farcaster` | Snapshot + Tally proposals/voting, Neynar Farcaster cast/search/feed |
|
|
103
|
+
| **On-chain Intel** (4) | `block_explorer`, `herd_intelligence`, `watch_activity`, `browser` | Etherscan family, Herd whale tracking, persistent watch list, headless Playwright browsing |
|
|
104
|
+
| **Automation** (1) | `compound_action` | Multi-step plans (DCA, conditional triggers, loops) via plan scheduler |
|
|
105
|
+
| **Agent ops** (4) | `molten`, `clawnx`, `hummingbot`, `wayfinder` | X/Twitter posting, agent-to-agent matching, local Hummingbot market-making gateway, multi-step route optimization |
|
|
106
|
+
| **Memory** (3) | `agent_memory`, `skill_evolve`, `session_recall` | Hermes-backed persistent memory, agentic skill self-improvement, past-session search |
|
|
107
|
+
| **Misc** (5) | `giza`, `nookplot`, `paysponge`, `lobster_cash`, `_user_tools` | zkML inference, Farcaster analytics, fiat ramp, privacy pools, custom-tool dispatcher |
|
|
108
|
+
|
|
109
|
+
## Channels
|
|
110
|
+
|
|
111
|
+
| Channel | Status | Notes |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| Telegram | Production | Slash menu auto-registered, deep links, streaming, voice transcription via Hermes |
|
|
114
|
+
| Discord | Ready | Slash commands auto-register, thread bindings |
|
|
115
|
+
| Slack | Ready | Channels and DMs |
|
|
116
|
+
| Signal | Ready | Requires `signal-cli` bridge (Hermes-managed) |
|
|
117
|
+
| WhatsApp | Ready | Requires WhatsApp Web bridge (Hermes-managed) |
|
|
118
|
+
| iMessage | Ready | macOS only — Hermes' bluebubbles adapter |
|
|
119
|
+
| LINE | Ready | Requires LINE Messaging API |
|
|
120
|
+
|
|
121
|
+
All tools and commands work identically on every channel.
|
|
122
|
+
|
|
123
|
+
## Wallet modes
|
|
124
|
+
|
|
125
|
+
| Mode | Key custody | How it works |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| **WalletConnect** | Your phone wallet | `/connect` generates a pairing link via the bundled Node WC bridge. Every write tx goes to your phone for approval. |
|
|
128
|
+
| **Local key** | Local encrypted | BIP-39 mnemonic generated locally, encrypted with scrypt + AES-256-GCM, stored in macOS Keychain or encrypted file. |
|
|
129
|
+
| **Bankr** | Custodial | `/connect_bankr` or `BANKR_API_KEY`. Multi-chain custodial wallet. Good for automation-heavy setups + leverage + Polymarket. |
|
|
130
|
+
|
|
131
|
+
Spending policies set in natural language:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
/policy approve transfers under 0.05 ETH on Base, max 10/hour
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Automation
|
|
138
|
+
|
|
139
|
+
The compound action engine lets users describe multi-step plans in natural language:
|
|
140
|
+
|
|
141
|
+
- **Time triggers** — `every day at 9am, check ETH price`
|
|
142
|
+
- **Price triggers** — `when ETH drops below $2000, swap 1 ETH to USDC`
|
|
143
|
+
- **On-chain triggers** — `when gas is under 10 gwei, execute the pending swap`
|
|
144
|
+
- **Conditionals** — `if my portfolio is down more than 5%, alert me`
|
|
145
|
+
- **Loops + parallel** — `DCA $100 into ETH every week for 12 weeks`
|
|
146
|
+
|
|
147
|
+
Plans persist to disk and survive restarts. Managed via `/plans`, `/interrupt_plan`. The plan tick loop is driven by Hermes' built-in cron daemon.
|
|
148
|
+
|
|
149
|
+
## Security
|
|
150
|
+
|
|
151
|
+
- WalletConnect mode: clawmes never holds unencrypted private keys.
|
|
152
|
+
- Every write tool gates through readonly check + policy evaluation + delegation execution + ledger record.
|
|
153
|
+
- Credential leak detection on every LLM-bound output.
|
|
154
|
+
- Prompt-injection-resistance guardrails in SOUL.md.
|
|
155
|
+
- Sequential write execution — never queues multiple txs.
|
|
156
|
+
- Bounded approvals — exact amounts, never unlimited.
|
|
157
|
+
- Outbound HTTP restricted to a curated allowlist.
|
|
158
|
+
- Transaction verification — always shows what a tx will do before executing.
|
|
159
|
+
|
|
160
|
+
## CLI subcommands
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
hermes clawmes init Interactive setup wizard
|
|
164
|
+
hermes clawmes doctor Diagnostics
|
|
165
|
+
hermes clawmes wallet Wallet status / mode switch
|
|
166
|
+
hermes clawmes plans Plan status / list / cancel
|
|
167
|
+
hermes clawmes policy Policy status / set / clear
|
|
168
|
+
hermes clawmes persona reinstall Force-overwrite SOUL.md (with confirm)
|
|
169
|
+
hermes clawmes skills install Copy bundled skills to writable user namespace
|
|
170
|
+
hermes clawmes update pip install -U clawmes + bridge refresh
|
|
171
|
+
hermes clawmes version Show version
|
|
172
|
+
hermes clawmes uninstall Remove from plugins.enabled (state preserved)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Architecture
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
hermes (the upstream CLI, hermes-agent ≥ 2026.4.x)
|
|
179
|
+
└── PluginManager.discover_and_load()
|
|
180
|
+
└── clawmes.register(ctx)
|
|
181
|
+
├── 45 tools (registered via ctx.register_tool, write-gated)
|
|
182
|
+
├── 27 commands (registered via ctx.register_command)
|
|
183
|
+
├── 11 hooks (pre_tool_call, post_tool_call, pre_llm_call, ...)
|
|
184
|
+
├── 27 skills (registered via ctx.register_skill, namespaced clawmes:*)
|
|
185
|
+
├── CLI subcmds (registered via ctx.register_cli_command)
|
|
186
|
+
└── 14 services (start_all() starts background lifecycle)
|
|
187
|
+
│
|
|
188
|
+
├── subprocess: clawmes-wc-bridge (Node — WalletConnect v2)
|
|
189
|
+
└── subprocess: clawmes-sa-bridge (Node — MetaMask Smart Accounts; planned)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Two bundled Node sub-process bridges (`clawmes-wc-bridge`, `clawmes-sa-bridge`) handle WalletConnect v2 sign-client and MetaMask Smart Accounts SDK respectively, talking JSON-line RPC over stdio. They install on first plugin load via `npm ci` against pinned `package-lock.json` files in the wheel.
|
|
193
|
+
|
|
194
|
+
## Configuration
|
|
195
|
+
|
|
196
|
+
Required in `~/.hermes/.env`:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# LLM (one of these — Hermes' standard)
|
|
200
|
+
ANTHROPIC_API_KEY=
|
|
201
|
+
OPENROUTER_API_KEY=
|
|
202
|
+
OPENAI_API_KEY=
|
|
203
|
+
NOUS_PORTAL_API_KEY=
|
|
204
|
+
|
|
205
|
+
# Channel (one of these — Hermes' standard)
|
|
206
|
+
TELEGRAM_BOT_TOKEN=
|
|
207
|
+
DISCORD_TOKEN=
|
|
208
|
+
SLACK_BOT_TOKEN=
|
|
209
|
+
|
|
210
|
+
# Wallet — pick one mode
|
|
211
|
+
WALLETCONNECT_PROJECT_ID=
|
|
212
|
+
CLAWMES_LOCAL_KEY_PASSWORD=
|
|
213
|
+
BANKR_API_KEY=
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Optional (per-tool — features degrade gracefully without their key):
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# RPC + explorers
|
|
220
|
+
ALCHEMY_API_KEY=
|
|
221
|
+
BASESCAN_API_KEY=
|
|
222
|
+
ETHERSCAN_API_KEY=
|
|
223
|
+
ARBISCAN_API_KEY=
|
|
224
|
+
OPTIMISM_ETHERSCAN_API_KEY=
|
|
225
|
+
POLYGONSCAN_API_KEY=
|
|
226
|
+
CLAWMES_RPC_<chain_id>= # override per-chain RPC URL
|
|
227
|
+
|
|
228
|
+
# DEX / bridge aggregators
|
|
229
|
+
ZEROX_API_KEY=
|
|
230
|
+
LIFI_API_KEY=
|
|
231
|
+
|
|
232
|
+
# Market data + analytics
|
|
233
|
+
COINGECKO_API_KEY=
|
|
234
|
+
HERD_ACCESS_TOKEN=
|
|
235
|
+
|
|
236
|
+
# Social
|
|
237
|
+
NEYNAR_API_KEY=
|
|
238
|
+
NEYNAR_SIGNER_UUID=
|
|
239
|
+
NOOKPLOT_API_KEY=
|
|
240
|
+
|
|
241
|
+
# NFT
|
|
242
|
+
RESERVOIR_API_KEY=
|
|
243
|
+
|
|
244
|
+
# Governance
|
|
245
|
+
TALLY_API_KEY=
|
|
246
|
+
|
|
247
|
+
# Specialized
|
|
248
|
+
GIZA_API_KEY= # zkML inference
|
|
249
|
+
PAYSPONGE_API_KEY= # fiat on/off-ramp
|
|
250
|
+
LOBSTER_API_KEY= # privacy pools
|
|
251
|
+
MOLTEN_API_KEY= # X (Twitter) integration
|
|
252
|
+
CLAWNX_API_KEY= # agent-to-agent network
|
|
253
|
+
HUMMINGBOT_API_KEY= # market-making gateway (also: HUMMINGBOT_GATEWAY_URL)
|
|
254
|
+
WAYFINDER_API_KEY= # route optimization
|
|
255
|
+
|
|
256
|
+
# Token launches (override default contract addresses)
|
|
257
|
+
CLAWNCH_LAUNCHPAD_ADDRESS=
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
The setup wizard (`hermes clawmes init`) walks through the most-used keys interactively with live validation.
|
|
261
|
+
|
|
262
|
+
## Development
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
git clone https://github.com/clawnchdev/clawmes
|
|
266
|
+
cd clawmes
|
|
267
|
+
pip install -e ".[dev]"
|
|
268
|
+
|
|
269
|
+
pytest # run tests
|
|
270
|
+
ruff check clawmes/ # lint
|
|
271
|
+
mypy clawmes/ # type-check
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Adding a tool
|
|
275
|
+
|
|
276
|
+
```python
|
|
277
|
+
# clawmes/tools/my_tool.py
|
|
278
|
+
from clawmes.tools.registry import write_tool, register_with_ctx
|
|
279
|
+
from clawmes.lib.tool_result import json_result
|
|
280
|
+
|
|
281
|
+
_SCHEMA = {...} # OpenAI function-calling schema
|
|
282
|
+
|
|
283
|
+
@write_tool(name="my_tool", toolset="clawmes-misc", schema=_SCHEMA, description="…")
|
|
284
|
+
def my_tool(args, **kwargs):
|
|
285
|
+
return json_result({...})
|
|
286
|
+
|
|
287
|
+
def register(ctx):
|
|
288
|
+
register_with_ctx(ctx, my_tool)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Then import and call `register(ctx)` from `clawmes/tools/__init__.py:register_all()`.
|
|
292
|
+
|
|
293
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for full guidelines and patterns.
|
|
294
|
+
|
|
295
|
+
## Status
|
|
296
|
+
|
|
297
|
+
Early development. See [`CHANGELOG.md`](CHANGELOG.md) for milestone progress and [`HERMES_PARITY.md`](HERMES_PARITY.md) for the upstream Hermes API contract.
|
|
298
|
+
|
|
299
|
+
## Tech stack
|
|
300
|
+
|
|
301
|
+
| Component | Version |
|
|
302
|
+
|---|---|
|
|
303
|
+
| Hermes Agent | ≥ 2026.4.23 |
|
|
304
|
+
| Python | ≥ 3.11 |
|
|
305
|
+
| web3.py | ≥ 7.0 |
|
|
306
|
+
| viem (in Node bridges) | ≥ 2.x |
|
|
307
|
+
|
|
308
|
+
## Contributing
|
|
309
|
+
|
|
310
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for development setup, code style, and PR process.
|
|
311
|
+
|
|
312
|
+
## License
|
|
313
|
+
|
|
314
|
+
MIT — see [`LICENSE`](LICENSE).
|
clawmes-0.1.0/README.md
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
# clawmes
|
|
2
|
+
|
|
3
|
+
[](https://github.com/clawnchdev/clawmes/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/clawnchdev/clawmes/actions/workflows/ci.yml)
|
|
5
|
+
[](https://github.com/clawnchdev/clawmes/blob/main/pyproject.toml)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
> Hermes Agent for crypto.
|
|
9
|
+
|
|
10
|
+
> [!WARNING]
|
|
11
|
+
> **Pre-alpha. Do not use real funds.** No real-network validation has happened yet, and no third-party security audit has been done. The signing paths are tested with mocks but unverified against live mainnet conditions. Use small testnet amounts only until v1.0. See [SECURITY.md](SECURITY.md) for the full threat model and recovery checklist.
|
|
12
|
+
|
|
13
|
+
Clawmes is a [Hermes Agent](https://github.com/NousResearch/hermes-agent) plugin. Wallets, DEX trading, lending and staking, governance, on-chain automation. Python rewrite of [`@clawnch/openclaw-crypto`](https://github.com/clawnchdev/openclawnch) targeting Hermes.
|
|
14
|
+
|
|
15
|
+
45 tools. 27 commands. 14 services. 11 hooks. Runs on Telegram, Discord, Slack, Signal, WhatsApp, iMessage, and LINE.
|
|
16
|
+
|
|
17
|
+
## Quick start
|
|
18
|
+
|
|
19
|
+
clawmes is not yet on PyPI; install from GitHub:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 1. Install Hermes Agent (see https://github.com/NousResearch/hermes-agent)
|
|
23
|
+
# 2. Install clawmes as a Hermes plugin:
|
|
24
|
+
hermes plugins install clawnchdev/clawmes --enable
|
|
25
|
+
hermes clawmes init # interactive setup wizard
|
|
26
|
+
hermes # start chatting
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The `hermes clawmes init` wizard prompts for wallet mode (WalletConnect / local / Bankr), per-mode setup (project ID / password+mnemonic / API key), and optional API keys for the most-used integrations. It writes everything to `~/.hermes/.env` in upsert mode (existing keys preserved).
|
|
30
|
+
|
|
31
|
+
### Editable / dev install
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
git clone https://github.com/clawnchdev/clawmes
|
|
35
|
+
cd clawmes
|
|
36
|
+
pip install -e ".[dev]"
|
|
37
|
+
hermes plugins enable clawmes
|
|
38
|
+
hermes clawmes init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### PyPI publishing
|
|
42
|
+
|
|
43
|
+
The package is not yet published. v0.1.0 is GitHub-only. PyPI publication will land once the bridges-integration job has run a real-network smoke test and a third-party audit signs off the signing paths. Track [#1](https://github.com/clawnchdev/clawmes/issues) for the publish milestone.
|
|
44
|
+
|
|
45
|
+
## Tools
|
|
46
|
+
|
|
47
|
+
| Category | Tools | What it does |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| **Wallet** (4) | `clawnchconnect`, `transfer`, `permit2`, `approvals` | WalletConnect pairing, ENS transfers, Permit2 signed approvals, ERC-20 allowance management |
|
|
50
|
+
| **Trading** (8) | `defi_swap`, `defi_balance`, `defi_lend`, `defi_stake`, `defi_price`, `liquidity`, `manage_orders`, `bridge` | 0x DEX aggregator, Aave V3 lending, Lido/Rocket Pool staking, Uniswap V3 LP positions, limit/stop/trailing/DCA orders, LiFi cross-chain bridging |
|
|
51
|
+
| **Yield/Analytics** (4) | `yield`, `analytics`, `market_intel`, `cost_basis` | DeFiLlama yields, RSI/MACD/Bollinger TA, trending tokens via CoinGecko, FIFO P&L from local ledger |
|
|
52
|
+
| **Launches** (6) | `clawnch_launch`, `clawnch_fees`, `bankr_launch`, `bankr_automate`, `bankr_polymarket`, `bankr_leverage` | Token deploys on Base via Clawnch launchpad, Bankr-side automation rules, Polymarket predictions, Avantis perp leverage |
|
|
53
|
+
| **Ownership** (4) | `nft`, `airdrop`, `privacy`, `safe` | Reservoir NFT API, OZ Merkle distributor airdrop claims, Lobster privacy pools, Gnosis Safe multisig |
|
|
54
|
+
| **Governance** (2) | `governance`, `farcaster` | Snapshot + Tally proposals/voting, Neynar Farcaster cast/search/feed |
|
|
55
|
+
| **On-chain Intel** (4) | `block_explorer`, `herd_intelligence`, `watch_activity`, `browser` | Etherscan family, Herd whale tracking, persistent watch list, headless Playwright browsing |
|
|
56
|
+
| **Automation** (1) | `compound_action` | Multi-step plans (DCA, conditional triggers, loops) via plan scheduler |
|
|
57
|
+
| **Agent ops** (4) | `molten`, `clawnx`, `hummingbot`, `wayfinder` | X/Twitter posting, agent-to-agent matching, local Hummingbot market-making gateway, multi-step route optimization |
|
|
58
|
+
| **Memory** (3) | `agent_memory`, `skill_evolve`, `session_recall` | Hermes-backed persistent memory, agentic skill self-improvement, past-session search |
|
|
59
|
+
| **Misc** (5) | `giza`, `nookplot`, `paysponge`, `lobster_cash`, `_user_tools` | zkML inference, Farcaster analytics, fiat ramp, privacy pools, custom-tool dispatcher |
|
|
60
|
+
|
|
61
|
+
## Channels
|
|
62
|
+
|
|
63
|
+
| Channel | Status | Notes |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| Telegram | Production | Slash menu auto-registered, deep links, streaming, voice transcription via Hermes |
|
|
66
|
+
| Discord | Ready | Slash commands auto-register, thread bindings |
|
|
67
|
+
| Slack | Ready | Channels and DMs |
|
|
68
|
+
| Signal | Ready | Requires `signal-cli` bridge (Hermes-managed) |
|
|
69
|
+
| WhatsApp | Ready | Requires WhatsApp Web bridge (Hermes-managed) |
|
|
70
|
+
| iMessage | Ready | macOS only — Hermes' bluebubbles adapter |
|
|
71
|
+
| LINE | Ready | Requires LINE Messaging API |
|
|
72
|
+
|
|
73
|
+
All tools and commands work identically on every channel.
|
|
74
|
+
|
|
75
|
+
## Wallet modes
|
|
76
|
+
|
|
77
|
+
| Mode | Key custody | How it works |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| **WalletConnect** | Your phone wallet | `/connect` generates a pairing link via the bundled Node WC bridge. Every write tx goes to your phone for approval. |
|
|
80
|
+
| **Local key** | Local encrypted | BIP-39 mnemonic generated locally, encrypted with scrypt + AES-256-GCM, stored in macOS Keychain or encrypted file. |
|
|
81
|
+
| **Bankr** | Custodial | `/connect_bankr` or `BANKR_API_KEY`. Multi-chain custodial wallet. Good for automation-heavy setups + leverage + Polymarket. |
|
|
82
|
+
|
|
83
|
+
Spending policies set in natural language:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
/policy approve transfers under 0.05 ETH on Base, max 10/hour
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Automation
|
|
90
|
+
|
|
91
|
+
The compound action engine lets users describe multi-step plans in natural language:
|
|
92
|
+
|
|
93
|
+
- **Time triggers** — `every day at 9am, check ETH price`
|
|
94
|
+
- **Price triggers** — `when ETH drops below $2000, swap 1 ETH to USDC`
|
|
95
|
+
- **On-chain triggers** — `when gas is under 10 gwei, execute the pending swap`
|
|
96
|
+
- **Conditionals** — `if my portfolio is down more than 5%, alert me`
|
|
97
|
+
- **Loops + parallel** — `DCA $100 into ETH every week for 12 weeks`
|
|
98
|
+
|
|
99
|
+
Plans persist to disk and survive restarts. Managed via `/plans`, `/interrupt_plan`. The plan tick loop is driven by Hermes' built-in cron daemon.
|
|
100
|
+
|
|
101
|
+
## Security
|
|
102
|
+
|
|
103
|
+
- WalletConnect mode: clawmes never holds unencrypted private keys.
|
|
104
|
+
- Every write tool gates through readonly check + policy evaluation + delegation execution + ledger record.
|
|
105
|
+
- Credential leak detection on every LLM-bound output.
|
|
106
|
+
- Prompt-injection-resistance guardrails in SOUL.md.
|
|
107
|
+
- Sequential write execution — never queues multiple txs.
|
|
108
|
+
- Bounded approvals — exact amounts, never unlimited.
|
|
109
|
+
- Outbound HTTP restricted to a curated allowlist.
|
|
110
|
+
- Transaction verification — always shows what a tx will do before executing.
|
|
111
|
+
|
|
112
|
+
## CLI subcommands
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
hermes clawmes init Interactive setup wizard
|
|
116
|
+
hermes clawmes doctor Diagnostics
|
|
117
|
+
hermes clawmes wallet Wallet status / mode switch
|
|
118
|
+
hermes clawmes plans Plan status / list / cancel
|
|
119
|
+
hermes clawmes policy Policy status / set / clear
|
|
120
|
+
hermes clawmes persona reinstall Force-overwrite SOUL.md (with confirm)
|
|
121
|
+
hermes clawmes skills install Copy bundled skills to writable user namespace
|
|
122
|
+
hermes clawmes update pip install -U clawmes + bridge refresh
|
|
123
|
+
hermes clawmes version Show version
|
|
124
|
+
hermes clawmes uninstall Remove from plugins.enabled (state preserved)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Architecture
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
hermes (the upstream CLI, hermes-agent ≥ 2026.4.x)
|
|
131
|
+
└── PluginManager.discover_and_load()
|
|
132
|
+
└── clawmes.register(ctx)
|
|
133
|
+
├── 45 tools (registered via ctx.register_tool, write-gated)
|
|
134
|
+
├── 27 commands (registered via ctx.register_command)
|
|
135
|
+
├── 11 hooks (pre_tool_call, post_tool_call, pre_llm_call, ...)
|
|
136
|
+
├── 27 skills (registered via ctx.register_skill, namespaced clawmes:*)
|
|
137
|
+
├── CLI subcmds (registered via ctx.register_cli_command)
|
|
138
|
+
└── 14 services (start_all() starts background lifecycle)
|
|
139
|
+
│
|
|
140
|
+
├── subprocess: clawmes-wc-bridge (Node — WalletConnect v2)
|
|
141
|
+
└── subprocess: clawmes-sa-bridge (Node — MetaMask Smart Accounts; planned)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Two bundled Node sub-process bridges (`clawmes-wc-bridge`, `clawmes-sa-bridge`) handle WalletConnect v2 sign-client and MetaMask Smart Accounts SDK respectively, talking JSON-line RPC over stdio. They install on first plugin load via `npm ci` against pinned `package-lock.json` files in the wheel.
|
|
145
|
+
|
|
146
|
+
## Configuration
|
|
147
|
+
|
|
148
|
+
Required in `~/.hermes/.env`:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# LLM (one of these — Hermes' standard)
|
|
152
|
+
ANTHROPIC_API_KEY=
|
|
153
|
+
OPENROUTER_API_KEY=
|
|
154
|
+
OPENAI_API_KEY=
|
|
155
|
+
NOUS_PORTAL_API_KEY=
|
|
156
|
+
|
|
157
|
+
# Channel (one of these — Hermes' standard)
|
|
158
|
+
TELEGRAM_BOT_TOKEN=
|
|
159
|
+
DISCORD_TOKEN=
|
|
160
|
+
SLACK_BOT_TOKEN=
|
|
161
|
+
|
|
162
|
+
# Wallet — pick one mode
|
|
163
|
+
WALLETCONNECT_PROJECT_ID=
|
|
164
|
+
CLAWMES_LOCAL_KEY_PASSWORD=
|
|
165
|
+
BANKR_API_KEY=
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Optional (per-tool — features degrade gracefully without their key):
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# RPC + explorers
|
|
172
|
+
ALCHEMY_API_KEY=
|
|
173
|
+
BASESCAN_API_KEY=
|
|
174
|
+
ETHERSCAN_API_KEY=
|
|
175
|
+
ARBISCAN_API_KEY=
|
|
176
|
+
OPTIMISM_ETHERSCAN_API_KEY=
|
|
177
|
+
POLYGONSCAN_API_KEY=
|
|
178
|
+
CLAWMES_RPC_<chain_id>= # override per-chain RPC URL
|
|
179
|
+
|
|
180
|
+
# DEX / bridge aggregators
|
|
181
|
+
ZEROX_API_KEY=
|
|
182
|
+
LIFI_API_KEY=
|
|
183
|
+
|
|
184
|
+
# Market data + analytics
|
|
185
|
+
COINGECKO_API_KEY=
|
|
186
|
+
HERD_ACCESS_TOKEN=
|
|
187
|
+
|
|
188
|
+
# Social
|
|
189
|
+
NEYNAR_API_KEY=
|
|
190
|
+
NEYNAR_SIGNER_UUID=
|
|
191
|
+
NOOKPLOT_API_KEY=
|
|
192
|
+
|
|
193
|
+
# NFT
|
|
194
|
+
RESERVOIR_API_KEY=
|
|
195
|
+
|
|
196
|
+
# Governance
|
|
197
|
+
TALLY_API_KEY=
|
|
198
|
+
|
|
199
|
+
# Specialized
|
|
200
|
+
GIZA_API_KEY= # zkML inference
|
|
201
|
+
PAYSPONGE_API_KEY= # fiat on/off-ramp
|
|
202
|
+
LOBSTER_API_KEY= # privacy pools
|
|
203
|
+
MOLTEN_API_KEY= # X (Twitter) integration
|
|
204
|
+
CLAWNX_API_KEY= # agent-to-agent network
|
|
205
|
+
HUMMINGBOT_API_KEY= # market-making gateway (also: HUMMINGBOT_GATEWAY_URL)
|
|
206
|
+
WAYFINDER_API_KEY= # route optimization
|
|
207
|
+
|
|
208
|
+
# Token launches (override default contract addresses)
|
|
209
|
+
CLAWNCH_LAUNCHPAD_ADDRESS=
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
The setup wizard (`hermes clawmes init`) walks through the most-used keys interactively with live validation.
|
|
213
|
+
|
|
214
|
+
## Development
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
git clone https://github.com/clawnchdev/clawmes
|
|
218
|
+
cd clawmes
|
|
219
|
+
pip install -e ".[dev]"
|
|
220
|
+
|
|
221
|
+
pytest # run tests
|
|
222
|
+
ruff check clawmes/ # lint
|
|
223
|
+
mypy clawmes/ # type-check
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Adding a tool
|
|
227
|
+
|
|
228
|
+
```python
|
|
229
|
+
# clawmes/tools/my_tool.py
|
|
230
|
+
from clawmes.tools.registry import write_tool, register_with_ctx
|
|
231
|
+
from clawmes.lib.tool_result import json_result
|
|
232
|
+
|
|
233
|
+
_SCHEMA = {...} # OpenAI function-calling schema
|
|
234
|
+
|
|
235
|
+
@write_tool(name="my_tool", toolset="clawmes-misc", schema=_SCHEMA, description="…")
|
|
236
|
+
def my_tool(args, **kwargs):
|
|
237
|
+
return json_result({...})
|
|
238
|
+
|
|
239
|
+
def register(ctx):
|
|
240
|
+
register_with_ctx(ctx, my_tool)
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Then import and call `register(ctx)` from `clawmes/tools/__init__.py:register_all()`.
|
|
244
|
+
|
|
245
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for full guidelines and patterns.
|
|
246
|
+
|
|
247
|
+
## Status
|
|
248
|
+
|
|
249
|
+
Early development. See [`CHANGELOG.md`](CHANGELOG.md) for milestone progress and [`HERMES_PARITY.md`](HERMES_PARITY.md) for the upstream Hermes API contract.
|
|
250
|
+
|
|
251
|
+
## Tech stack
|
|
252
|
+
|
|
253
|
+
| Component | Version |
|
|
254
|
+
|---|---|
|
|
255
|
+
| Hermes Agent | ≥ 2026.4.23 |
|
|
256
|
+
| Python | ≥ 3.11 |
|
|
257
|
+
| web3.py | ≥ 7.0 |
|
|
258
|
+
| viem (in Node bridges) | ≥ 2.x |
|
|
259
|
+
|
|
260
|
+
## Contributing
|
|
261
|
+
|
|
262
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for development setup, code style, and PR process.
|
|
263
|
+
|
|
264
|
+
## License
|
|
265
|
+
|
|
266
|
+
MIT — see [`LICENSE`](LICENSE).
|