clawmoat 0.7.0 → 1.0.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.
Files changed (178) hide show
  1. package/.dockerignore +9 -0
  2. package/CHANGELOG.md +18 -0
  3. package/CONTRIBUTING.md +4 -2
  4. package/DEMO.md +87 -0
  5. package/Dockerfile +5 -18
  6. package/README.md +294 -8
  7. package/SECURITY.md +58 -10
  8. package/THREAT_MODEL.md +129 -0
  9. package/agent/README.md +131 -0
  10. package/agent/index.js +471 -0
  11. package/agent/install-service.sh +94 -0
  12. package/agent/openclaw-hook.js +453 -0
  13. package/agent/provider-setup.js +649 -0
  14. package/agent/setup.js +274 -0
  15. package/assets/BADGE-USAGE.md +20 -0
  16. package/assets/clawmoat-badge.svg +21 -0
  17. package/bin/clawmoat.js +468 -111
  18. package/docs/affiliates/dashboard.html +124 -0
  19. package/docs/affiliates/index.html +236 -0
  20. package/docs/agent-install.html +183 -0
  21. package/docs/ai-agent-security-scanner.html +10 -6
  22. package/docs/badge/index.html +149 -0
  23. package/docs/badge/scanning.svg +23 -0
  24. package/docs/blog/386-malicious-skills.html +262 -0
  25. package/docs/blog/40000-exposed-openclaw-instances.html +201 -0
  26. package/docs/blog/agent-trust-protocol.html +198 -0
  27. package/docs/blog/ai-agent-earns-commissions.html +230 -0
  28. package/docs/blog/bugmageddon-agent-firewall.html +174 -0
  29. package/docs/blog/calculator-math.html +180 -0
  30. package/docs/blog/clawmoat-vs-llamafirewall-nemo-guardrails.html +229 -0
  31. package/docs/blog/host-guardian-launch.html +18 -8
  32. package/docs/blog/ibm-experts-agent-runtime-protection.html +247 -0
  33. package/docs/blog/index.html +211 -9
  34. package/docs/blog/langchain-security-tutorial.html +18 -8
  35. package/docs/blog/mcp-30-cves-security-crisis.html +286 -0
  36. package/docs/blog/meta-researcher-rogue-agent.html +201 -0
  37. package/docs/blog/microsoft-openclaw-workstation-security.html +235 -0
  38. package/docs/blog/nist-ai-agent-standards-clawmoat.html +377 -0
  39. package/docs/blog/oasis-websocket-hijack.html +212 -0
  40. package/docs/blog/ollama-openclaw-security.html +160 -0
  41. package/docs/blog/openclaw-enterprise-readiness-claw10.html +199 -0
  42. package/docs/blog/openclaw-security-reckoning-2026.html +368 -0
  43. package/docs/blog/owasp-agentic-ai-top10.html +18 -8
  44. package/docs/blog/securing-ai-agents.html +18 -8
  45. package/docs/blog/supply-chain-agents.html +18 -8
  46. package/docs/business/index.html +525 -0
  47. package/docs/business/install.html +261 -0
  48. package/docs/checklist.html +174 -0
  49. package/docs/compare/index.html +122 -0
  50. package/docs/compare/lakera/index.html +62 -0
  51. package/docs/compare/llm-guard/index.html +49 -0
  52. package/docs/compare/snyk-agent-scan/index.html +63 -0
  53. package/docs/compare.html +10 -6
  54. package/docs/dashboard/index.html +520 -0
  55. package/docs/finance/index.html +220 -0
  56. package/docs/guides/business-deployment.html +770 -0
  57. package/docs/hall-of-fame.html +174 -0
  58. package/docs/index.html +447 -154
  59. package/docs/install.sh +557 -0
  60. package/docs/integrations/langchain.html +14 -6
  61. package/docs/integrations/openai.html +14 -6
  62. package/docs/integrations/openclaw.html +55 -7
  63. package/docs/plans/2026-03-26-threat-intel-api.md +255 -0
  64. package/docs/plans/2026-04-14-bugmageddon-marketing-pack.md +329 -0
  65. package/docs/plans/2026-04-14-clawmoat-v1-bugmageddon.md +248 -0
  66. package/docs/plans/2026-04-14-v1-release-update.md +91 -0
  67. package/docs/plans/2026-04-19-supabase-audit.md +68 -0
  68. package/docs/plans/2026-05-12-sales-push.md +303 -0
  69. package/docs/playground/index.html +893 -0
  70. package/docs/playground.html +4 -7
  71. package/docs/privacy-policy/index.html +122 -0
  72. package/docs/rfcs/defense-in-depth.md +467 -0
  73. package/docs/scan/index.html +358 -0
  74. package/docs/services/case-study.html +255 -0
  75. package/docs/services/downloads/install-openclaw.bat +45 -0
  76. package/docs/services/downloads/install-openclaw.command +38 -0
  77. package/docs/services/downloads/install-openclaw.sh +38 -0
  78. package/docs/services/get-started.html +165 -0
  79. package/docs/services/index.html +598 -0
  80. package/docs/services/multi-agent-security.html +284 -0
  81. package/docs/services/one-pager.html +99 -0
  82. package/docs/services/pitch-deck.html +229 -0
  83. package/docs/services/roi-calculator.html +258 -0
  84. package/docs/sitemap.xml +192 -2
  85. package/docs/support/index.html +135 -0
  86. package/docs/templates/customer-service/HEARTBEAT.md +61 -0
  87. package/docs/templates/customer-service/MEMORY.md +89 -0
  88. package/docs/templates/customer-service/SOUL.md +41 -0
  89. package/docs/templates/customer-service/USER.md +56 -0
  90. package/docs/templates/executive/HEARTBEAT.md +86 -0
  91. package/docs/templates/executive/MEMORY.md +92 -0
  92. package/docs/templates/executive/SOUL.md +44 -0
  93. package/docs/templates/executive/USER.md +62 -0
  94. package/docs/templates/finance/HEARTBEAT.md +58 -0
  95. package/docs/templates/finance/MEMORY.md +87 -0
  96. package/docs/templates/finance/SOUL.md +38 -0
  97. package/docs/templates/finance/USER.md +53 -0
  98. package/docs/templates/index.html +115 -0
  99. package/docs/templates/operations/HEARTBEAT.md +63 -0
  100. package/docs/templates/operations/MEMORY.md +68 -0
  101. package/docs/templates/operations/SOUL.md +38 -0
  102. package/docs/templates/operations/USER.md +49 -0
  103. package/docs/templates/sales/HEARTBEAT.md +55 -0
  104. package/docs/templates/sales/MEMORY.md +89 -0
  105. package/docs/templates/sales/SOUL.md +34 -0
  106. package/docs/templates/sales/USER.md +54 -0
  107. package/docs/terms-of-service/index.html +122 -0
  108. package/eslint.config.js +32 -0
  109. package/evals/README.md +29 -0
  110. package/evals/cases.json +390 -0
  111. package/evals/results.md +68 -0
  112. package/evals/run.js +180 -0
  113. package/examples/basic-usage.js +38 -0
  114. package/examples/demo-attack/demo.js +186 -0
  115. package/examples/python-quickstart/README.md +54 -0
  116. package/examples/python-quickstart/clawmoat_client.py +167 -0
  117. package/examples/video-demo/README.md +14 -0
  118. package/examples/video-demo/scene-a-normal.js +29 -0
  119. package/examples/video-demo/scene-b-attack-arrives.js +31 -0
  120. package/examples/video-demo/scene-c-hijack.js +44 -0
  121. package/examples/video-demo/scene-d-clawmoat.js +46 -0
  122. package/integrations/crewai/README.md +32 -0
  123. package/integrations/crewai/clawmoat_crewai/__init__.py +17 -0
  124. package/integrations/crewai/clawmoat_crewai/guard.py +103 -0
  125. package/integrations/crewai/pyproject.toml +21 -0
  126. package/integrations/langchain/README.md +91 -0
  127. package/integrations/langchain/clawmoat_langchain/__init__.py +17 -0
  128. package/integrations/langchain/clawmoat_langchain/callback.py +489 -0
  129. package/integrations/langchain/pyproject.toml +32 -0
  130. package/integrations/litellm/README.md +324 -0
  131. package/integrations/litellm/clawmoat_litellm/__init__.py +21 -0
  132. package/integrations/litellm/clawmoat_litellm/callback.py +329 -0
  133. package/integrations/litellm/clawmoat_litellm/proxy_middleware.py +224 -0
  134. package/integrations/litellm/pyproject.toml +74 -0
  135. package/integrations/openai-agents/README.md +392 -0
  136. package/integrations/openai-agents/clawmoat_openai_agents/__init__.py +20 -0
  137. package/integrations/openai-agents/clawmoat_openai_agents/guardrail.py +431 -0
  138. package/integrations/openai-agents/clawmoat_openai_agents/middleware.py +311 -0
  139. package/integrations/openai-agents/pyproject.toml +76 -0
  140. package/package.json +6 -5
  141. package/plugins/openclaw-adapter/PHASE1.md +439 -0
  142. package/plugins/openclaw-adapter/README.md +103 -0
  143. package/plugins/openclaw-adapter/SPEC.md +1644 -0
  144. package/plugins/openclaw-adapter/package.json +31 -0
  145. package/plugins/openclaw-adapter/src/index.test.ts +226 -0
  146. package/plugins/openclaw-adapter/src/index.ts +140 -0
  147. package/plugins/openclaw-adapter/tsconfig.json +14 -0
  148. package/server/data/threats.json +290 -0
  149. package/server/index.js +224 -10
  150. package/src/adapters/express.js +161 -0
  151. package/src/adapters/index.js +92 -0
  152. package/src/adapters/langchain.js +185 -0
  153. package/src/approval/index.js +456 -0
  154. package/src/ban-scanner.js +200 -0
  155. package/src/boundary-scanner.js +296 -0
  156. package/src/ci-scanner.js +279 -0
  157. package/src/code-scanner.js +245 -0
  158. package/src/enforce.js +166 -0
  159. package/src/finance/index.js +585 -0
  160. package/src/finance/mcp-firewall.js +486 -0
  161. package/src/formatters/json.js +80 -0
  162. package/src/formatters/sarif.js +388 -0
  163. package/src/guardian/alerts.js +34 -3
  164. package/src/guardian/gateway-monitor.js +590 -0
  165. package/src/guardian/index.js +41 -2
  166. package/src/index.js +105 -0
  167. package/src/integrations/agentmesh.js +501 -0
  168. package/src/language-detector.js +201 -0
  169. package/src/mcp-scanner.js +253 -0
  170. package/src/multimodal/index.js +579 -0
  171. package/src/obfuscation-scanner.js +457 -0
  172. package/src/policy-engine.js +402 -0
  173. package/src/scanners/dependency-attacks.js +128 -0
  174. package/src/scanners/prompt-injection.js +18 -0
  175. package/src/scanners/supply-chain.js +14 -0
  176. package/src/templates/default-config.yml +90 -0
  177. package/src/vuln-ops/exploitability.js +46 -0
  178. package/src/watch/live-monitor.js +720 -0
@@ -0,0 +1,248 @@
1
+ # ClawMoat v1 Bugmageddon Implementation Plan
2
+
3
+ > **For implementation:** Use the executing-plans skill to implement this plan task-by-task.
4
+
5
+ **Goal:** Ship the first ClawMoat v1 feature set around AI-era vulnerability operations, starting with exploitability-focused triage instead of raw finding spam.
6
+
7
+ **Architecture:** Build on the existing scanner core instead of inventing a second product. Add a lightweight vulnerability-ops layer that normalizes findings, scores exploitability, groups related findings, and exposes a simple report format in CLI/docs. Keep it zero-dependency and compatible with current scan flows.
8
+
9
+ **Tech Stack:** Node.js built-ins only, existing ClawMoat scanner architecture, node:test, Markdown docs.
10
+
11
+ ---
12
+
13
+ ## Product thesis
14
+
15
+ AI is making bug discovery cheap.
16
+
17
+ That means the bottleneck is shifting from detection to triage, prioritization, containment, and proof of closure. ClawMoat v1 should not compete on “we also find bugs.” It should compete on “we help you decide what matters first, while runtime protections stay on.”
18
+
19
+ ## v1 scope
20
+
21
+ Ship now:
22
+ - exploitability scoring for findings
23
+ - finding clustering / dedupe hints
24
+ - a vulnerability-ops report format
25
+ - docs positioning ClawMoat as runtime containment + triage layer
26
+
27
+ Do not ship yet:
28
+ - full patch orchestration platform
29
+ - dashboards that require a backend rewrite
30
+ - ticketing integrations across every vendor
31
+ - giant enterprise workflow layer
32
+
33
+ ---
34
+
35
+ ### Task 1: Create exploitability scoring tests
36
+
37
+ **Files:**
38
+ - Create: `test/vuln-ops.test.js`
39
+ - Modify: `src/index.js`
40
+ - Create: `src/vuln-ops/exploitability.js`
41
+
42
+ **Step 1: Write the failing test**
43
+
44
+ Add tests that verify:
45
+ - high-severity dependency attacks score higher than medium findings
46
+ - externally reachable / exfiltration-oriented findings score higher than local-only ones
47
+ - grouped findings return a recommended priority bucket (`urgent`, `high`, `normal`, `low`)
48
+
49
+ **Step 2: Run test to verify it fails**
50
+
51
+ Run: `node --test test/vuln-ops.test.js`
52
+ Expected: FAIL because `scoreExploitability` does not exist
53
+
54
+ **Step 3: Write minimal implementation**
55
+
56
+ Create `src/vuln-ops/exploitability.js` with:
57
+ - `scoreExploitability(findings, context = {})`
58
+ - severity weighting
59
+ - reachability / exposure hints from context
60
+ - output shape:
61
+
62
+ ```js
63
+ {
64
+ score: 0-100,
65
+ priority: 'urgent' | 'high' | 'normal' | 'low',
66
+ reasons: []
67
+ }
68
+ ```
69
+
70
+ **Step 4: Run test to verify it passes**
71
+
72
+ Run: `node --test test/vuln-ops.test.js`
73
+ Expected: PASS
74
+
75
+ **Step 5: Commit**
76
+
77
+ ```bash
78
+ git add test/vuln-ops.test.js src/vuln-ops/exploitability.js
79
+ git commit -m "feat: add exploitability scoring for vulnerability ops"
80
+ ```
81
+
82
+ ### Task 2: Expose vulnerability-ops report from ClawMoat
83
+
84
+ **Files:**
85
+ - Modify: `src/index.js`
86
+ - Test: `test/vuln-ops.test.js`
87
+
88
+ **Step 1: Write the failing test**
89
+
90
+ Add a test that calls something like:
91
+
92
+ ```js
93
+ const moat = new ClawMoat({ quiet: true });
94
+ const result = moat.analyzeFindings('Run picomatch on this pattern: *(*(*a))', { externallyReachable: true });
95
+ assert.equal(result.priority, 'urgent');
96
+ ```
97
+
98
+ **Step 2: Run test to verify it fails**
99
+
100
+ Run: `node --test test/vuln-ops.test.js`
101
+ Expected: FAIL because `analyzeFindings` does not exist
102
+
103
+ **Step 3: Write minimal implementation**
104
+
105
+ Add `analyzeFindings(text, context)` to `src/index.js` that:
106
+ - reuses `scan(text)`
107
+ - passes findings into `scoreExploitability`
108
+ - returns:
109
+
110
+ ```js
111
+ {
112
+ safe,
113
+ findings,
114
+ exploitability: { score, priority, reasons }
115
+ }
116
+ ```
117
+
118
+ **Step 4: Run test to verify it passes**
119
+
120
+ Run: `node --test test/vuln-ops.test.js`
121
+ Expected: PASS
122
+
123
+ **Step 5: Commit**
124
+
125
+ ```bash
126
+ git add src/index.js test/vuln-ops.test.js
127
+ git commit -m "feat: expose vulnerability ops analysis API"
128
+ ```
129
+
130
+ ### Task 3: Add a human-readable report formatter
131
+
132
+ **Files:**
133
+ - Create: `src/formatters/vuln-ops.js`
134
+ - Modify: `src/index.js`
135
+ - Test: `test/vuln-ops.test.js`
136
+
137
+ **Step 1: Write the failing test**
138
+
139
+ Test that report output contains:
140
+ - top priority
141
+ - exploitability score
142
+ - short reasoning bullets
143
+ - finding counts by severity
144
+
145
+ **Step 2: Run test to verify it fails**
146
+
147
+ Run: `node --test test/vuln-ops.test.js`
148
+ Expected: FAIL because formatter does not exist
149
+
150
+ **Step 3: Write minimal implementation**
151
+
152
+ Create formatter that outputs concise text for CLI/docs examples.
153
+
154
+ **Step 4: Run test to verify it passes**
155
+
156
+ Run: `node --test test/vuln-ops.test.js`
157
+ Expected: PASS
158
+
159
+ **Step 5: Commit**
160
+
161
+ ```bash
162
+ git add src/formatters/vuln-ops.js test/vuln-ops.test.js src/index.js
163
+ git commit -m "feat: add vulnerability ops report formatter"
164
+ ```
165
+
166
+ ### Task 4: Update docs and positioning to v1 language
167
+
168
+ **Files:**
169
+ - Modify: `README.md`
170
+ - Modify: `docs/index.html`
171
+ - Modify: `package.json` version only if shipping release immediately
172
+
173
+ **Step 1: Write the doc diff first**
174
+
175
+ Add language that says:
176
+ - AI made bug discovery abundant
177
+ - ClawMoat helps prioritize and contain
178
+ - runtime security + exploitability triage
179
+
180
+ **Step 2: Add example API usage**
181
+
182
+ Document:
183
+
184
+ ```js
185
+ const analysis = moat.analyzeFindings(input, { externallyReachable: true });
186
+ console.log(analysis.exploitability.priority);
187
+ ```
188
+
189
+ **Step 3: Verify docs are accurate**
190
+
191
+ Run:
192
+ ```bash
193
+ grep -n "analyzeFindings\|exploitability\|Bugmageddon" README.md docs/index.html
194
+ ```
195
+ Expected: matching lines present
196
+
197
+ **Step 4: Commit**
198
+
199
+ ```bash
200
+ git add README.md docs/index.html
201
+ git commit -m "docs: position ClawMoat v1 around exploitability triage"
202
+ ```
203
+
204
+ ### Task 5: Verification pass
205
+
206
+ **Files:**
207
+ - Test: `test/vuln-ops.test.js`
208
+ - Test: `test/scanners.test.js`
209
+ - Test: `test/multimodal.test.js`
210
+
211
+ **Step 1: Run focused verification**
212
+
213
+ Run:
214
+ ```bash
215
+ node --test test/vuln-ops.test.js test/scanners.test.js test/multimodal.test.js
216
+ ```
217
+ Expected: PASS
218
+
219
+ **Step 2: Optional broader run if resources allow**
220
+
221
+ Run:
222
+ ```bash
223
+ node --test test/*.test.js
224
+ ```
225
+ Expected: PASS, unless environment kills long run under load
226
+
227
+ **Step 3: Capture evidence**
228
+
229
+ Save the passing output in the session notes / commit message summary before claiming done.
230
+
231
+ **Step 4: Commit release prep**
232
+
233
+ ```bash
234
+ git add -A
235
+ git commit -m "chore: verify ClawMoat v1 vulnerability ops update"
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Recommended execution order right now
241
+
242
+ 1. Task 1
243
+ 2. Task 2
244
+ 3. Task 5 focused verification
245
+ 4. Task 4 docs update
246
+ 5. Task 3 formatter if time remains today
247
+
248
+ That gets a real v1 wedge shipped fast without boiling the ocean.
@@ -0,0 +1,91 @@
1
+ # ClawMoat v1.0.0 update
2
+
3
+ ## What changed
4
+
5
+ ClawMoat is moving from a fast-moving v0 project to a stable v1 product category:
6
+
7
+ **The open-source agent firewall.**
8
+
9
+ This is not just a semantic version bump.
10
+ It is a category claim.
11
+
12
+ The product now has enough surface area and enough market validation to stop sounding like an experiment:
13
+
14
+ - prompt injection scanning
15
+ - outbound secret and exfiltration scanning
16
+ - policy engine
17
+ - enforcement middleware
18
+ - MCP scanner
19
+ - supply chain scanner
20
+ - host/runtime controls
21
+ - live monitoring dashboard
22
+ - audit trail
23
+ - framework integrations
24
+
25
+ That is a real security product.
26
+
27
+ ## Why now
28
+
29
+ The market just got a cleaner narrative.
30
+
31
+ WSJ framed the next phase as **bugmageddon**: AI getting much better at vulnerability discovery.
32
+
33
+ That matters because:
34
+ - bug discovery accelerates
35
+ - exploit discovery becomes cheaper
36
+ - patching remains slow
37
+ - agents already have high privileges
38
+
39
+ So ClawMoat’s job is clearer than ever:
40
+
41
+ **contain what agents can do when vulnerabilities are inevitable**
42
+
43
+ ## New top-line message
44
+
45
+ **They protect the model. ClawMoat protects the machine.**
46
+
47
+ Backup line:
48
+
49
+ **As AI finds bugs faster, runtime containment stops being optional.**
50
+
51
+ ## What shipped in this update
52
+
53
+ 1. Homepage hero updated to v1.0.0 framing
54
+ 2. New blog post: `blog/bugmageddon-agent-firewall.html`
55
+ 3. Blog index updated with the new post and v1 tag
56
+ 4. Package version moved to `1.0.0`
57
+ 5. Version references updated in formatter tests/docs where needed
58
+ 6. Marketing pack created for X, Reddit, HN, LinkedIn, Dev.to, homepage copy
59
+
60
+ ## What still needs to happen
61
+
62
+ ### Release hygiene
63
+ - run tests
64
+ - publish npm package as `1.0.0`
65
+ - tag GitHub release
66
+ - add release notes to README or GitHub Releases
67
+
68
+ ### Distribution
69
+ - post X thread manually if API credits still dead
70
+ - post Reddit piece manually
71
+ - publish Dev.to version
72
+ - announce in GitHub README / release notes
73
+
74
+ ### Strong next product moves
75
+ - `clawmoat doctor` or `clawmoat exposure` command that outputs a shareable risk summary
76
+ - first-class MCP risk scoring report
77
+ - clearer “monitor vs enforce” onboarding path
78
+ - more obvious enterprise / team runtime policy story
79
+
80
+ ## Julian take
81
+
82
+ Going to v1 is right.
83
+
84
+ The mistake would be calling it v1 while still talking like a hobby scanner.
85
+
86
+ So the real upgrade is not the version number.
87
+ It is the language:
88
+
89
+ - from “security tool” to **agent firewall**
90
+ - from “prompt injection detection” to **runtime containment**
91
+ - from “nice to have” to **mandatory infrastructure for over-permissioned agents**
@@ -0,0 +1,68 @@
1
+ # ClawMoat Supabase audit
2
+
3
+ Date: 2026-04-19
4
+ Project: `bfnoxngfskhzgnqkwuhb`
5
+
6
+ ## Executive summary
7
+
8
+ ClawMoat does use Supabase, but only in a narrow way right now.
9
+
10
+ ### Confirmed usage in repo
11
+
12
+ Only one live code path in the ClawMoat repo references this Supabase project:
13
+
14
+ - `docs/affiliates/index.html`
15
+ - browser POST to `/rest/v1/affiliates`
16
+ - purpose: store affiliate signups
17
+
18
+ ## What is NOT currently wired to Supabase in the repo
19
+
20
+ I did not find repo references showing Supabase is currently required for:
21
+
22
+ - core npm package
23
+ - CLI scans
24
+ - GitHub repo flows
25
+ - main homepage
26
+ - enforcement middleware
27
+ - MCP scanner
28
+ - prompt injection scanning
29
+ - blog/site rendering outside affiliate signup
30
+
31
+ ## Blast radius if Supabase pauses
32
+
33
+ ### Likely affected
34
+ - affiliate signup form submission
35
+ - any future dashboard/admin features built on the same project
36
+
37
+ ### Likely unaffected
38
+ - `clawmoat` npm package itself
39
+ - GitHub repo
40
+ - core docs/site pages
41
+ - scanner runtime behavior
42
+ - local CLI usage
43
+
44
+ ## Cleanup performed
45
+
46
+ Deleted the temporary keepalive test row that had been inserted into `affiliates`.
47
+
48
+ ## Preventive action added
49
+
50
+ Added a read-only keepalive job:
51
+
52
+ - script: `/home/ildar/.openclaw/scripts/clawmoat-supabase-keepalive.py`
53
+ - schedule: every 3 days via crontab
54
+ - checks:
55
+ - `auth/v1/health`
56
+ - `rest/v1/affiliates?select=id&limit=1`
57
+
58
+ Log file:
59
+ - `/home/ildar/.openclaw/logs/clawmoat-supabase-keepalive.log`
60
+
61
+ ## Recommendation
62
+
63
+ Good enough for now.
64
+
65
+ If ClawMoat starts depending more heavily on Supabase, next step should be to:
66
+ - move from inline browser fetches to a small controlled backend
67
+ - remove public coupling from the static affiliates page
68
+ - define exactly which features are allowed to depend on Supabase
@@ -0,0 +1,303 @@
1
+ # ClawMoat sales push — May 12, 2026
2
+
3
+ ## Straight diagnosis
4
+
5
+ ClawMoat has a real product shape now, but sales are being throttled by execution gaps, not by the idea.
6
+
7
+ The strong part: the category claim is sharp. **They protect the model. ClawMoat protects the machine.** That is a real wedge because the market is crowded with prompt filters, MCP scanners, and guardrail libraries, while ClawMoat can credibly claim host/runtime containment.
8
+
9
+ The weak part: the public product funnel is split across too many offers and some proof points are stale. The homepage sells open-source security SaaS. `/services/` sells done-for-you OpenClaw setup. `/business/` sells enterprise assessment. The npm package still shows `0.8.0` even though the repo is `1.0.0`. That inconsistency kills trust right before purchase.
10
+
11
+ ## Current baseline
12
+
13
+ - GitHub: 39 stars, 6 forks.
14
+ - npm: latest published version is `0.8.0`, while repo `package.json` is `1.0.0`.
15
+ - npm downloads last 30 days: 43.
16
+ - Tests: 527 passing, 0 failing.
17
+ - Site: deployed and current on `clawmoat.com`.
18
+ - Checkout endpoint: live at `https://clawmoat-production.up.railway.app/api/checkout` for POST, health check live.
19
+ - Homepage paid CTA exists for Developer and Team plans.
20
+ - Services page has live Stripe links.
21
+
22
+ ## Market read
23
+
24
+ The agent-security category has moved fast. GitHub search shows several adjacent tools with more stars:
25
+
26
+ - `luckyPipewrench/pipelock` — 583 stars, "Open-source AI agent firewall for MCP security: agent egress control, DLP, SSRF, and prompt injection defense."
27
+ - `getagentseal/agentseal` — 254 stars, security toolkit for dangerous skills, MCP configs, supply chain attacks, prompt-injection resistance.
28
+ - `snyk/agent-scan` — 2392 stars, security scanner for AI agents, MCP servers, and agent skills.
29
+ - `splx-ai/agentic-radar` — 966 stars, scanner for LLM agentic workflows.
30
+ - `cisco-ai-defense/mcp-scanner` — 923 stars, MCP server scanner.
31
+ - `protectai/llm-guard` and `NVIDIA-NeMo/Guardrails` are broader LLM guardrail/toolkit players.
32
+
33
+ This means ClawMoat cannot win by saying "we scan prompt injection". That claim is already commoditized.
34
+
35
+ ClawMoat should win by owning this exact sentence:
36
+
37
+ > Prompt filters inspect text. ClawMoat controls what the agent can do to your machine.
38
+
39
+ ## Best buyer segments
40
+
41
+ ### 1. Self-hosted AI agent users
42
+
43
+ People running Claude Code, OpenClaw, Cursor, Aider, MCP servers, local agents, or homegrown agent loops on real machines.
44
+
45
+ Their pain: "I want the power, but I don't trust the blast radius."
46
+
47
+ Best offer: free CLI + scanner + badge, then Developer plan for alerts, persistent logs, threat intel.
48
+
49
+ ### 2. Small technical teams adopting coding agents
50
+
51
+ Founders and engineering leads with 3-25 developers. They are not ready for enterprise procurement but they do worry about credentials, repo access, and MCP sprawl.
52
+
53
+ Their pain: "My team is installing agent tools faster than security can track them."
54
+
55
+ Best offer: Team plan at $49/mo or one-time implementation/security review.
56
+
57
+ ### 3. Consultants / AI automation shops
58
+
59
+ They deploy agents for clients and need a trust story. They can resell or bundle ClawMoat.
60
+
61
+ Their pain: "I need to convince the client this won't leak their data."
62
+
63
+ Best offer: affiliate/referral program + `Secured by ClawMoat` badge + white-label report.
64
+
65
+ ### 4. Security-aware enterprises
66
+
67
+ This is slower sales. Useful for credibility, not first revenue unless there is a warm intro.
68
+
69
+ Their pain: "Employees are using agents with access to production credentials and no audit trail."
70
+
71
+ Best offer: Business assessment, compliance report, managed rollout.
72
+
73
+ ## Funnel problems to fix first
74
+
75
+ ### 1. npm is stale
76
+
77
+ Repo says v1.0.0. npm says v0.8.0. Homepage says v1.0.0. A developer who runs `npm view clawmoat` sees the mismatch. This is the biggest immediate trust leak.
78
+
79
+ Action: publish `clawmoat@1.0.0` after package hygiene checks.
80
+
81
+ ### 2. Package contents include junk
82
+
83
+ `npm pack --dry-run` currently includes `clawmoat-0.8.0.tgz`, `server/index.js.patch`, and `server/data/api-keys.json`. The public preview key is not catastrophic, but shipping key stores and patch scraps looks sloppy.
84
+
85
+ Action: exclude stale tarballs, patch scraps, and local key stores from npm.
86
+
87
+ ### 3. The product has too many offers
88
+
89
+ Homepage pricing: Developer/Team SaaS. Services page: setup packages. Business page: assessment. Scanner page: free tool. That is not fatal, but the paths need to be explicit:
90
+
91
+ - Developers: install free → scan → upgrade for logs/alerts.
92
+ - Teams: scan fleet → Team plan.
93
+ - Businesses: book assessment.
94
+ - Consultants: affiliate/resell.
95
+
96
+ ### 4. Proof needs to be more concrete
97
+
98
+ "40/40 eval" is useful, but buyers need one visceral demo:
99
+
100
+ - poisoned README tries to exfiltrate `.env`
101
+ - ClawMoat blocks it
102
+ - audit log shows why
103
+ - policy says what would have happened
104
+
105
+ Action: make the attack demo the primary conversion asset.
106
+
107
+ ### 5. Sales CTA is mostly passive
108
+
109
+ Waiting for traffic will not work. The immediate sales motion should be direct outreach to people already showing intent: maintainers of agent repos, AI automation consultants, and founders posting about Claude Code/MCP security.
110
+
111
+ ## Positioning
112
+
113
+ Primary headline:
114
+
115
+ > Your AI agent has access to your machine. ClawMoat decides what it can touch.
116
+
117
+ Secondary:
118
+
119
+ > The open-source firewall for AI agents running on real machines.
120
+
121
+ Mechanism:
122
+
123
+ > Prompt filters inspect the conversation. ClawMoat monitors the boundary: files, shell commands, network calls, MCP configs, secrets, and outbound data.
124
+
125
+ Contrast:
126
+
127
+ > Lakera, LLM Guard, and NeMo focus on model/prompt safety. Snyk and MCP scanners focus on config/static scanning. ClawMoat focuses on runtime containment for the host.
128
+
129
+ ## 14-day sales push
130
+
131
+ ### Day 0: Product hygiene
132
+
133
+ - Publish npm `1.0.0`.
134
+ - Add GitHub release notes.
135
+ - Pin attack demo GIF/video in README and homepage.
136
+ - Make `/scan/` the top CTA everywhere.
137
+ - Verify checkout with one test Stripe session.
138
+
139
+ ### Days 1-3: Founder/dev launch
140
+
141
+ - X thread: "Your agent has root access. Does it deserve it?"
142
+ - Hacker News Show HN: ClawMoat, open-source firewall for AI agents.
143
+ - Reddit posts in `r/LocalLLaMA`, `r/ClaudeAI`, `r/cybersecurity`, `r/mcp`, `r/selfhosted`.
144
+ - Dev.to post with attack demo code.
145
+ - GitHub Discussions/community posts only where relevant, not spam.
146
+
147
+ ### Days 4-7: Direct outbound
148
+
149
+ Build a list of 100 targets:
150
+
151
+ - AI automation consultants.
152
+ - Agent framework maintainers.
153
+ - MCP tool authors.
154
+ - Founders posting about Claude Code/OpenClaw/Cursor agents.
155
+ - Security engineers discussing prompt injection or MCP risk.
156
+
157
+ Send 20/day. The CTA is not "buy now". The CTA is:
158
+
159
+ > I scanned your agent/tooling surface and found a few places ClawMoat can help. Want the report?
160
+
161
+ ### Days 8-14: Convert proof into revenue
162
+
163
+ - Offer free 15-minute agent exposure assessment to first 10 teams.
164
+ - Turn every assessment into a sanitized case study.
165
+ - Ask every technical adopter to add the `Secured by ClawMoat` badge.
166
+ - Ask every consultant to join affiliate program.
167
+ - Push Team plan only after a real risk finding.
168
+
169
+ ## Outbound message drafts
170
+
171
+ ### For AI automation consultants
172
+
173
+ Subject: quick security layer for the agents you deploy
174
+
175
+ I saw you deploy AI agents for clients. Quick question: are you giving those agents file/shell/API access, or keeping them inside a narrow sandbox?
176
+
177
+ I’m building ClawMoat, an open-source firewall for AI agents. It scans prompts, MCP configs, shell/file/network actions, and outbound data so you can tell clients, “your agent can’t touch what it shouldn’t.”
178
+
179
+ If useful, I’ll run a free exposure scan on one demo setup and send you the report. No pitch deck.
180
+
181
+ ### For agent framework/tool maintainers
182
+
183
+ Subject: want a free security badge for your agent project?
184
+
185
+ I’m building ClawMoat, an open-source agent firewall.
186
+
187
+ The useful part for your project is simple: scan MCP configs, dangerous tool permissions, prompt-injection payloads, secrets, and exfiltration patterns. If it passes, you can add a `Secured by ClawMoat` badge and link to the report.
188
+
189
+ Want me to run it against your repo and send a PR with the badge/report if it’s clean?
190
+
191
+ ### For founders using Claude Code / OpenClaw / Cursor agents
192
+
193
+ Subject: your coding agent probably has more access than you think
194
+
195
+ Your coding agent can likely read SSH keys, env files, browser sessions, and cloud credentials. That’s fine until one poisoned README, website, or MCP tool tells it to exfiltrate them.
196
+
197
+ ClawMoat is the open-source firewall I built for that boundary: files, shell, network, MCP, secrets, outbound data.
198
+
199
+ If you send me the agent stack you’re using, I’ll tell you the top 3 exposure points and how to lock them down.
200
+
201
+ ## Public post drafts
202
+
203
+ ### X short post
204
+
205
+ Your AI agent has access to your machine.
206
+
207
+ SSH keys. `.env` files. AWS creds. Browser cookies. Repo history.
208
+
209
+ Prompt filters inspect text.
210
+ ClawMoat controls what the agent can actually touch.
211
+
212
+ Open-source agent firewall.
213
+ https://clawmoat.com
214
+
215
+ ### X thread
216
+
217
+ 1/ Your AI agent has access to your machine.
218
+
219
+ That means SSH keys, `.env` files, AWS creds, browser sessions, source code, shell commands, MCP tools, and outbound network calls.
220
+
221
+ That is not a chatbot anymore. That is an intern with root-ish access.
222
+
223
+ 2/ Most AI security tools protect the model or inspect the prompt.
224
+
225
+ Useful, but incomplete.
226
+
227
+ The real question is what happens after the model decides to act.
228
+
229
+ What can it read?
230
+ What can it run?
231
+ What can it send?
232
+ What gets logged?
233
+ What gets blocked?
234
+
235
+ 3/ That is the boundary ClawMoat is built for.
236
+
237
+ It scans inbound content, outbound content, tool calls, MCP configs, secrets, PII, dangerous shell commands, supply-chain patterns, and runtime behavior.
238
+
239
+ 4/ The category is simple:
240
+
241
+ Prompt filters inspect the conversation.
242
+ ClawMoat protects the machine.
243
+
244
+ 5/ It’s open source, zero-dependency Node.js, MIT licensed, and the test suite is green.
245
+
246
+ Install:
247
+ `npm install -g clawmoat`
248
+
249
+ Scan:
250
+ `clawmoat scan-mcp`
251
+
252
+ Site:
253
+ https://clawmoat.com
254
+
255
+ ### Hacker News Show HN draft
256
+
257
+ Title: Show HN: ClawMoat, an open-source firewall for AI agents
258
+
259
+ I built ClawMoat because local AI agents are getting real permissions faster than they’re getting real security.
260
+
261
+ If you run Claude Code, OpenClaw, Cursor agents, MCP servers, or custom agent loops on your machine, the agent can often read files, run shell commands, access credentials, and make network calls. Prompt injection is only part of the problem. The bigger problem is runtime containment.
262
+
263
+ ClawMoat scans inbound text, outbound text, MCP configs, tool calls, secrets, PII, dangerous shell commands, supply-chain payloads, and exfiltration patterns. The goal is not to make the model “safe”. The goal is to control what the agent can touch.
264
+
265
+ It’s MIT licensed, zero-dependency Node.js, and runs locally.
266
+
267
+ Install:
268
+
269
+ ```bash
270
+ npm install -g clawmoat
271
+ clawmoat scan-mcp
272
+ clawmoat watch ~/.openclaw/agents/main
273
+ ```
274
+
275
+ I’d especially like feedback from people running local agents with real file/shell access. What boundary would you want enforced before trusting an agent on your laptop?
276
+
277
+ Repo: https://github.com/darfaz/clawmoat
278
+ Site: https://clawmoat.com
279
+
280
+ ## Revenue math
281
+
282
+ The first sales target should not be enterprise. It should be:
283
+
284
+ - 10 Developer subscribers at $9/mo = tiny but validates checkout.
285
+ - 5 Team subscribers at $49/mo = $245 MRR.
286
+ - 3 setup/service sales at $249-$999 = immediate cash and case studies.
287
+ - 2 consultant affiliates = distribution leverage.
288
+
289
+ The fastest path to revenue is a hybrid: open-source product for credibility, paid setup/security reviews for cash, Team subscriptions for recurring revenue.
290
+
291
+ ## My recommendation
292
+
293
+ Do not spend the next week adding features.
294
+
295
+ Spend it converting existing product into trust:
296
+
297
+ 1. Publish npm v1.0.0.
298
+ 2. Clean npm package contents.
299
+ 3. Push one attack demo hard.
300
+ 4. Run 100 targeted outbound messages.
301
+ 5. Turn every response into either a report, badge PR, or paid setup call.
302
+
303
+ The hard truth: ClawMoat is currently more built than sold. That is fixable, but only if we stop treating content as the sales motion. Content supports sales. Direct outreach creates sales.