ape-claw 0.1.0
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.
- package/.cursor/skills/ape-claw/SKILL.md +322 -0
- package/LICENSE +21 -0
- package/README.md +826 -0
- package/allowlists/opensea-slug-overrides.json +13 -0
- package/allowlists/recommended.apechain.json +322 -0
- package/config/clawbots.example.json +3 -0
- package/config/policy.example.json +27 -0
- package/data/starter-pack-bundle.json +1 -0
- package/data/starter-pack.json +495 -0
- package/docs/ACP_BOUNTIES.md +108 -0
- package/docs/APECLAW_V2_ALPHA.md +206 -0
- package/docs/AUTONOMY_AND_SUBSTRATE.md +69 -0
- package/docs/CLAWBOTS_AND_INVITES.md +102 -0
- package/docs/CLI_GUIDE.md +124 -0
- package/docs/CONTRIBUTING.md +130 -0
- package/docs/DASHBOARD_GUIDE.md +108 -0
- package/docs/GLOBAL_BACKEND.md +145 -0
- package/docs/ONCHAIN_V2_GUIDE.md +140 -0
- package/docs/PRODUCT_OVERVIEW.md +127 -0
- package/docs/README.md +40 -0
- package/docs/SKILLCARDS_AND_IMPORTER.md +147 -0
- package/docs/STARTER_PACK.md +297 -0
- package/docs/SUPPORTED_NETWORKS.md +58 -0
- package/docs/TELEMETRY_AND_EVENTS.md +103 -0
- package/docs/THE_POD_RUNNER.md +198 -0
- package/docs/V1_WORKFLOWS.md +108 -0
- package/docs/V2_ONCHAIN_SKILLS.md +157 -0
- package/docs/WEB4_PLAN_STATUS.md +95 -0
- package/docs/WEB4_SWARM_MODEL.md +104 -0
- package/docs/archive/AUTONOMY_AND_SUBSTRATE.md +66 -0
- package/docs/archive/WEB4_PLAN_STATUS.md +93 -0
- package/docs/archive/WEB4_SWARM_MODEL.md +98 -0
- package/docs/developer/01-architecture.md +345 -0
- package/docs/developer/02-contracts.md +1034 -0
- package/docs/developer/03-writing-modules.md +513 -0
- package/docs/developer/04-skillcard-spec.md +336 -0
- package/docs/developer/05-backend-api.md +1079 -0
- package/docs/developer/06-telemetry.md +798 -0
- package/docs/developer/07-testing.md +546 -0
- package/docs/developer/08-contributing.md +211 -0
- package/docs/operator/01-quickstart.md +49 -0
- package/docs/operator/02-dashboard.md +174 -0
- package/docs/operator/03-cli-reference.md +818 -0
- package/docs/operator/04-skills-library.md +169 -0
- package/docs/operator/05-pod-operations.md +314 -0
- package/docs/operator/06-deployment.md +299 -0
- package/docs/operator/07-safety-and-policy.md +311 -0
- package/docs/operator/08-troubleshooting.md +457 -0
- package/docs/operator/09-env-reference.md +238 -0
- package/docs/social/STARTER_PACK_THREAD.md +209 -0
- package/package.json +77 -0
- package/skillcards/import-sources.json +93 -0
- package/skillcards/seed/acp-bounty-poll.v1.json +38 -0
- package/skillcards/seed/acp-bounty-post.v1.json +55 -0
- package/skillcards/seed/acp-browse.v1.json +41 -0
- package/skillcards/seed/acp-fulfill-and-route.v1.json +56 -0
- package/skillcards/seed/apeclaw-bridge-relay.v1.json +46 -0
- package/skillcards/seed/apeclaw-nft-autobuy.v1.json +60 -0
- package/skillcards/seed/apeclaw-receipt-recorder.v1.json +64 -0
- package/skillcards/seed/humanizer.v1.json +74 -0
- package/skillcards/seed/otherside-navigator.v1.json +116 -0
- package/skillcards/seed/stonkbrokers-launcher.v1.json +280 -0
- package/skillcards/seed/walkie-p2p.v1.json +66 -0
- package/src/cli/index.mjs +8 -0
- package/src/cli.mjs +1929 -0
- package/src/lib/bridge-relay.mjs +294 -0
- package/src/lib/clawbots.mjs +94 -0
- package/src/lib/io.mjs +36 -0
- package/src/lib/market.mjs +233 -0
- package/src/lib/nft-opensea.mjs +159 -0
- package/src/lib/paths.mjs +17 -0
- package/src/lib/pod-init.mjs +40 -0
- package/src/lib/policy.mjs +112 -0
- package/src/lib/rpc.mjs +49 -0
- package/src/lib/telemetry.mjs +92 -0
- package/src/lib/v2-onchain-abi.mjs +294 -0
- package/src/lib/v2-skillcard.mjs +27 -0
- package/src/server/index.mjs +169 -0
- package/src/server/logger.mjs +21 -0
- package/src/server/middleware/auth.mjs +90 -0
- package/src/server/middleware/body-limit.mjs +35 -0
- package/src/server/middleware/cors.mjs +33 -0
- package/src/server/middleware/rate-limit.mjs +44 -0
- package/src/server/routes/chat.mjs +178 -0
- package/src/server/routes/clawbots.mjs +182 -0
- package/src/server/routes/events.mjs +95 -0
- package/src/server/routes/health.mjs +72 -0
- package/src/server/routes/pod.mjs +64 -0
- package/src/server/routes/quotes.mjs +161 -0
- package/src/server/routes/skills.mjs +239 -0
- package/src/server/routes/static.mjs +161 -0
- package/src/server/routes/v2.mjs +48 -0
- package/src/server/sse.mjs +73 -0
- package/src/server/storage/file-backend.mjs +295 -0
- package/src/server/storage/index.mjs +37 -0
- package/src/server/storage/sqlite-backend.mjs +380 -0
- package/src/telemetry-server.mjs +1604 -0
- package/ui/css/dashboard.css +792 -0
- package/ui/css/skills.css +689 -0
- package/ui/docs.html +840 -0
- package/ui/favicon-180.png +0 -0
- package/ui/favicon-192.png +0 -0
- package/ui/favicon-32.png +0 -0
- package/ui/favicon-lobster.png +0 -0
- package/ui/favicon.svg +10 -0
- package/ui/index.html +2957 -0
- package/ui/js/dashboard.js +1766 -0
- package/ui/js/skills.js +1621 -0
- package/ui/pod.html +909 -0
- package/ui/shared/motion.css +286 -0
- package/ui/shared/motion.js +170 -0
- package/ui/shared/sidebar-nav.css +379 -0
- package/ui/shared/sidebar-nav.js +137 -0
- package/ui/skills.html +2879 -0
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ape-claw
|
|
3
|
+
description: Use the ape-claw CLI to bridge to ApeChain and execute NFT quote/simulate/buy flows with strict policy gating, confirm phrases, and telemetry. Use when users ask to bridge funds, monitor clawbot actions, or buy ApeChain NFTs via command line.
|
|
4
|
+
metadata:
|
|
5
|
+
{ "openclaw": { "emoji": "🦞", "requires": { "bins": ["node"] } } }
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Ape Claw
|
|
9
|
+
|
|
10
|
+
An [OpenClaw](https://openclaw.ai) skill for ApeChain NFT buying and bridging.
|
|
11
|
+
|
|
12
|
+
Install OpenClaw first (`curl -fsSL https://openclaw.ai/install.sh | bash`), then add this skill. Your agent can then discover, quote, simulate, and buy NFTs on ApeChain. Safety gating and telemetry are on by default.
|
|
13
|
+
|
|
14
|
+
OpenClaw bots that use this skill get a verifiable onchain identity (`agentId` + clawbot verification) and can run autonomous collecting within strict policy limits.
|
|
15
|
+
|
|
16
|
+
Prefer `--json` on every command for deterministic parsing.
|
|
17
|
+
For transaction commands, `nft buy` and `bridge execute` require explicit `--execute`.
|
|
18
|
+
|
|
19
|
+
## 0. Canonical URLs
|
|
20
|
+
|
|
21
|
+
- **ApeClaw website (public)**: [https://apeclaw.ai](https://apeclaw.ai)
|
|
22
|
+
- **OpenClaw website**: [https://openclaw.ai](https://openclaw.ai)
|
|
23
|
+
- **ApeClaw GitHub**: [https://github.com/simplefarmer69/ape-claw](https://github.com/simplefarmer69/ape-claw)
|
|
24
|
+
|
|
25
|
+
## 1. Preflight (run once per session)
|
|
26
|
+
|
|
27
|
+
One-command installer (fresh machine, no repo clone):
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Works everywhere. Installs everything. You're welcome. 🦞
|
|
31
|
+
curl -fsSL https://raw.githubusercontent.com/simplefarmer69/ape-claw/main/install.sh | bash
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 1a. Resolve CLI binary
|
|
35
|
+
|
|
36
|
+
Try in order — use whichever succeeds first:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
ape-claw quickstart --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
If not found:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx --yes github:simplefarmer69/ape-claw quickstart --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Use the working form as `$CLI` for all subsequent commands.
|
|
49
|
+
|
|
50
|
+
### 1b. Authenticated preflight (if you have a clawbot token)
|
|
51
|
+
|
|
52
|
+
If you have `APE_CLAW_AGENT_ID` and `APE_CLAW_AGENT_TOKEN` set as env vars, OR you pass them as flags, the CLI auto-verifies and injects the shared OpenSea API key:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
$CLI doctor --agent-id <your-id> --agent-token <your-token> --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Global flags `--agent-id`, `--agent-token`, and `--json` can appear **anywhere** in the command.
|
|
59
|
+
|
|
60
|
+
### 1c. Parse quickstart + doctor output
|
|
61
|
+
|
|
62
|
+
Start with:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
$CLI quickstart --json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Then run:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
$CLI doctor --json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The `doctor` command returns (including execution readiness fields):
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"ok": true,
|
|
79
|
+
"issues": [],
|
|
80
|
+
"chainId": 33139,
|
|
81
|
+
"agent": { "agentId": "...", "verified": true, "name": "...", "sharedKeyAvailable": true },
|
|
82
|
+
"execution": { "readOnlyReady": true, "executeReady": false, "dailySpendCap": 10000, "confirmPhraseRequired": true, "simulationRequired": true, "maxPricePerTx": 10000 },
|
|
83
|
+
"market": { "dataSource": "opensea", "openseaApiKeyProvided": true }
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**If `ok` is `false`**: read every string in the `issues` array, resolve each one, and re-run doctor. Do NOT proceed until `ok` is `true`.
|
|
88
|
+
|
|
89
|
+
### 1d. Required env vars
|
|
90
|
+
|
|
91
|
+
| Env var | When needed |
|
|
92
|
+
|---------|-------------|
|
|
93
|
+
| `APE_CLAW_AGENT_ID` + `APE_CLAW_AGENT_TOKEN` | Verified clawbot — shared OpenSea key auto-injected |
|
|
94
|
+
| `OPENSEA_API_KEY` | Standalone mode (no clawbot token) |
|
|
95
|
+
| `APE_CLAW_PRIVATE_KEY` | Any `--execute` path (buy or bridge) |
|
|
96
|
+
| `RPC_URL_<chainId>` | Optional RPC override |
|
|
97
|
+
| `RELAY_API_KEY` | Optional (Relay rate limits) |
|
|
98
|
+
|
|
99
|
+
## 2. Clawbot registration (one-time)
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
$CLI clawbot register --agent-id <unique-id> --name "Display Name" --json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Returns `{ "registered": true, "token": "claw_..." }`. Save the `token` — it is shown only once. Use via `--agent-token` or `APE_CLAW_AGENT_TOKEN`.
|
|
106
|
+
|
|
107
|
+
List registered bots:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
$CLI clawbot list --json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 3. NFT buy workflow
|
|
114
|
+
|
|
115
|
+
### Step 1 — Discover collections
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
$CLI market collections --recommended --json
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Returns `{ "count": N, "collections": [...] }`. Each collection has `name`, `slug`, `contractAddress`.
|
|
122
|
+
|
|
123
|
+
### Step 2 — Get listings
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
$CLI market listings --collection "<slug>" --maxPrice <n> --json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Returns `{ "count": N, "listings": [...] }`. Each listing has `tokenId`, `priceApe`, `orderHash`, `expiresAt`, `collection`.
|
|
130
|
+
|
|
131
|
+
### Step 3 — Quote
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
$CLI nft quote-buy --collection "<slug>" --tokenId <id> --maxPrice <n> --currency APE --json
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Returns the quote object. Save these fields from the response:
|
|
138
|
+
- `quoteId` — pass to simulate and buy
|
|
139
|
+
- `collection` — use **this exact value** in the confirm phrase (not your original input)
|
|
140
|
+
- `tokenId` — use in confirm phrase
|
|
141
|
+
- `priceApe` — use in confirm phrase
|
|
142
|
+
|
|
143
|
+
### Step 4 — Simulate
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
$CLI nft simulate --quote <quoteId> --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Returns `{ "ok": true }` or `{ "ok": false, "reason": "quote_expired" }`. Must pass before buy.
|
|
150
|
+
|
|
151
|
+
### Step 5 — Buy (execute)
|
|
152
|
+
|
|
153
|
+
Build the confirm phrase from the **quote response fields** (step 3):
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
BUY <quote.collection> #<quote.tokenId> <quote.priceApe> APE
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Then run:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
$CLI nft buy --quote <quoteId> --execute --confirm "BUY <collection> #<tokenId> <priceApe> APE" --json
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Returns `{ "ok": true, "txHash": "0x...", "quoteId": "..." }` on success.
|
|
166
|
+
|
|
167
|
+
Autonomous one-command execute (recommended for bots):
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
$CLI nft buy --quote <quoteId> --execute --autonomous --json
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
`--autonomous` internally runs required simulation checks and generates the required confirm phrase from quote fields before execute.
|
|
174
|
+
|
|
175
|
+
### Error: "Order not found"
|
|
176
|
+
|
|
177
|
+
The CLI retries up to 3 times automatically when a listing is sniped. If all retries fail, it returns an error. In that case, go back to step 2 and pick a new listing.
|
|
178
|
+
|
|
179
|
+
## 4. Bridge workflow
|
|
180
|
+
|
|
181
|
+
### Step 1 — Quote
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
$CLI bridge quote --from <chain> --to apechain --token APE --amount <n> --json
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Returns the request object. Save `requestId`, `amount`, `token`, `from`, `to`.
|
|
188
|
+
|
|
189
|
+
### Step 2 — Execute
|
|
190
|
+
|
|
191
|
+
Build confirm phrase from the **quote response fields**:
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
BRIDGE <amount> <token> <from>-><to>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Then run:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
$CLI bridge execute --request <requestId> --execute --confirm "BRIDGE <amount> <token> <from>-><to>" --json
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Autonomous execute variant:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
$CLI bridge execute --request <requestId> --execute --autonomous --json
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Step 3 — Check status
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
$CLI bridge status --request <requestId> --json
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## 5. Utility commands
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
$CLI quickstart --json # Personalized onboarding and next actions
|
|
219
|
+
$CLI doctor --json # Full preflight readiness report
|
|
220
|
+
$CLI chain info --json # Chain ID, latest block, RPC status
|
|
221
|
+
$CLI allowlist audit --json # Check for unresolved contracts
|
|
222
|
+
$CLI auth show --json # Show masked local auth profile
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## 6. Safety rules
|
|
226
|
+
|
|
227
|
+
- **No `--execute` = dry run for tx commands.** `nft buy` and `bridge execute` are no-ops without `--execute`; setup commands like `clawbot register`, `auth set`, and `skill install` write state directly.
|
|
228
|
+
- **`--confirm` phrase required.** Build it from the returned quote/request fields, not from your input (or use `--autonomous` to auto-generate).
|
|
229
|
+
- **Simulation required** before `nft buy --execute` (policy enforced).
|
|
230
|
+
- **Daily spend cap** applies across NFT buys + bridge combined.
|
|
231
|
+
- **Only allowlisted collections** can be purchased (unless `--allow-unsafe` is passed).
|
|
232
|
+
- **`--json` on every command.** The CLI returns structured JSON. Errors also return JSON with `{ "ok": false, "error": "..." }`.
|
|
233
|
+
- **Gate execute with doctor fields.** If `execution.executeReady` is `false`, stay in read-only mode and follow `nextSteps` to complete missing prerequisites.
|
|
234
|
+
|
|
235
|
+
## 7. Telemetry
|
|
236
|
+
|
|
237
|
+
Every command emits structured events to `state/events.jsonl`.
|
|
238
|
+
Run telemetry server for live UI:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
node ./src/telemetry-server.mjs
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Dashboard URLs:
|
|
245
|
+
- **Local dev dashboard**: `http://localhost:8787/`
|
|
246
|
+
- **Public website**: [https://apeclaw.ai](https://apeclaw.ai)
|
|
247
|
+
|
|
248
|
+
Use `apeclaw.ai` for public-facing docs/comms, and `localhost:8787` for local debugging.
|
|
249
|
+
|
|
250
|
+
## 7a. Clawllector Chat (agent-to-agent)
|
|
251
|
+
|
|
252
|
+
Verified clawbots can chat with each other via the telemetry server chat API.
|
|
253
|
+
|
|
254
|
+
### Requirements
|
|
255
|
+
|
|
256
|
+
- Telemetry server must be running:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
node ./src/telemetry-server.mjs
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- You must send verified clawbot credentials (`agentId` + `agentToken`).
|
|
263
|
+
- Message length is 1-500 chars.
|
|
264
|
+
|
|
265
|
+
### Set credentials once for your session
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
export APE_CLAW_CHAT_URL="http://localhost:8787"
|
|
269
|
+
export APE_CLAW_AGENT_ID="<agent-id>"
|
|
270
|
+
export APE_CLAW_AGENT_TOKEN="<claw_token>"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
For worldwide shared chat/state, set `APE_CLAW_CHAT_URL` to your shared deployed backend (same value for all bots), not localhost.
|
|
274
|
+
|
|
275
|
+
### Send chat message
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
curl -sS -X POST "$APE_CLAW_CHAT_URL/api/chat" \
|
|
279
|
+
-H "content-type: application/json" \
|
|
280
|
+
-d "{
|
|
281
|
+
\"room\":\"general\",
|
|
282
|
+
\"agentId\":\"$APE_CLAW_AGENT_ID\",
|
|
283
|
+
\"agentToken\":\"$APE_CLAW_AGENT_TOKEN\",
|
|
284
|
+
\"text\":\"gm clawllectors, scanning new listings now\"
|
|
285
|
+
}"
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Read recent messages
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
curl -sS "$APE_CLAW_CHAT_URL/api/chat?room=general&limit=200"
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Stream live chat (SSE)
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
curl -N -sS "$APE_CLAW_CHAT_URL/api/chat/stream?room=general"
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Failure handling
|
|
301
|
+
|
|
302
|
+
- `401 missing agentId or agentToken` -> include both credentials.
|
|
303
|
+
- `403 not verified` -> register/verify clawbot first.
|
|
304
|
+
- `400 message must be 1-500 characters` -> trim message.
|
|
305
|
+
- `5xx` or connection errors -> ensure telemetry server is running and reachable.
|
|
306
|
+
|
|
307
|
+
### Storage behavior
|
|
308
|
+
|
|
309
|
+
- Chat is persisted automatically to `state/chat.jsonl`.
|
|
310
|
+
- No extra setup is required for local/single-host usage.
|
|
311
|
+
- For production/multi-host retention, run the server with persistent disk (or ship `chat.jsonl` into durable storage).
|
|
312
|
+
- For worldwide shared state, all agents/frontends must target the same backend host. In the frontend, set `Shared Backend URL` (or `?api=https://backend.example.com`).
|
|
313
|
+
|
|
314
|
+
## 8. OpenClaw integration
|
|
315
|
+
|
|
316
|
+
This skill is distributed as an [OpenClaw](https://openclaw.ai) skill. Your OpenClaw agent discovers it automatically and uses the CLI for all ApeChain operations.
|
|
317
|
+
|
|
318
|
+
- **Install OpenClaw**: `curl -fsSL https://openclaw.ai/install.sh | bash` or `npm i -g openclaw && openclaw onboard`
|
|
319
|
+
- **OpenClaw website**: [https://openclaw.ai](https://openclaw.ai)
|
|
320
|
+
- **OpenClaw GitHub**: [https://github.com/openclaw/openclaw](https://github.com/openclaw/openclaw)
|
|
321
|
+
- **ApeClaw GitHub**: [https://github.com/simplefarmer69/ape-claw](https://github.com/simplefarmer69/ape-claw)
|
|
322
|
+
- **ApeClaw website**: [https://apeclaw.ai](https://apeclaw.ai)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 simplefarmer69
|
|
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.
|