clawmoat 0.8.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 (171) hide show
  1. package/.dockerignore +9 -0
  2. package/CHANGELOG.md +18 -0
  3. package/DEMO.md +87 -0
  4. package/Dockerfile +5 -18
  5. package/README.md +232 -8
  6. package/THREAT_MODEL.md +129 -0
  7. package/agent/README.md +131 -0
  8. package/agent/index.js +471 -0
  9. package/agent/install-service.sh +94 -0
  10. package/agent/openclaw-hook.js +453 -0
  11. package/agent/provider-setup.js +649 -0
  12. package/agent/setup.js +274 -0
  13. package/assets/BADGE-USAGE.md +20 -0
  14. package/assets/clawmoat-badge.svg +21 -0
  15. package/bin/clawmoat.js +468 -111
  16. package/docs/affiliates/dashboard.html +124 -0
  17. package/docs/affiliates/index.html +236 -0
  18. package/docs/agent-install.html +183 -0
  19. package/docs/ai-agent-security-scanner.html +10 -6
  20. package/docs/badge/index.html +149 -0
  21. package/docs/badge/scanning.svg +23 -0
  22. package/docs/blog/386-malicious-skills.html +11 -4
  23. package/docs/blog/40000-exposed-openclaw-instances.html +11 -4
  24. package/docs/blog/agent-trust-protocol.html +5 -4
  25. package/docs/blog/ai-agent-earns-commissions.html +230 -0
  26. package/docs/blog/bugmageddon-agent-firewall.html +174 -0
  27. package/docs/blog/calculator-math.html +180 -0
  28. package/docs/blog/clawmoat-vs-llamafirewall-nemo-guardrails.html +10 -4
  29. package/docs/blog/host-guardian-launch.html +18 -8
  30. package/docs/blog/ibm-experts-agent-runtime-protection.html +15 -6
  31. package/docs/blog/index.html +67 -9
  32. package/docs/blog/langchain-security-tutorial.html +18 -8
  33. package/docs/blog/mcp-30-cves-security-crisis.html +11 -4
  34. package/docs/blog/meta-researcher-rogue-agent.html +201 -0
  35. package/docs/blog/microsoft-openclaw-workstation-security.html +5 -4
  36. package/docs/blog/nist-ai-agent-standards-clawmoat.html +16 -8
  37. package/docs/blog/oasis-websocket-hijack.html +11 -4
  38. package/docs/blog/ollama-openclaw-security.html +10 -4
  39. package/docs/blog/openclaw-enterprise-readiness-claw10.html +5 -4
  40. package/docs/blog/openclaw-security-reckoning-2026.html +11 -4
  41. package/docs/blog/owasp-agentic-ai-top10.html +18 -8
  42. package/docs/blog/securing-ai-agents.html +18 -8
  43. package/docs/blog/supply-chain-agents.html +18 -8
  44. package/docs/business/index.html +11 -16
  45. package/docs/business/install.html +21 -7
  46. package/docs/checklist.html +10 -4
  47. package/docs/compare/index.html +122 -0
  48. package/docs/compare/lakera/index.html +62 -0
  49. package/docs/compare/llm-guard/index.html +49 -0
  50. package/docs/compare/snyk-agent-scan/index.html +63 -0
  51. package/docs/compare.html +10 -6
  52. package/docs/dashboard/index.html +520 -0
  53. package/docs/finance/index.html +9 -6
  54. package/docs/guides/business-deployment.html +770 -0
  55. package/docs/hall-of-fame.html +11 -5
  56. package/docs/index.html +266 -137
  57. package/docs/integrations/langchain.html +14 -6
  58. package/docs/integrations/openai.html +14 -6
  59. package/docs/integrations/openclaw.html +55 -7
  60. package/docs/plans/2026-03-26-threat-intel-api.md +255 -0
  61. package/docs/plans/2026-04-14-bugmageddon-marketing-pack.md +329 -0
  62. package/docs/plans/2026-04-14-clawmoat-v1-bugmageddon.md +248 -0
  63. package/docs/plans/2026-04-14-v1-release-update.md +91 -0
  64. package/docs/plans/2026-04-19-supabase-audit.md +68 -0
  65. package/docs/plans/2026-05-12-sales-push.md +303 -0
  66. package/docs/playground/index.html +893 -0
  67. package/docs/playground.html +4 -7
  68. package/docs/rfcs/defense-in-depth.md +467 -0
  69. package/docs/scan/index.html +156 -12
  70. package/docs/services/case-study.html +255 -0
  71. package/docs/services/downloads/install-openclaw.bat +45 -0
  72. package/docs/services/downloads/install-openclaw.command +38 -0
  73. package/docs/services/downloads/install-openclaw.sh +38 -0
  74. package/docs/services/get-started.html +165 -0
  75. package/docs/services/index.html +598 -0
  76. package/docs/services/multi-agent-security.html +284 -0
  77. package/docs/services/one-pager.html +99 -0
  78. package/docs/services/pitch-deck.html +229 -0
  79. package/docs/services/roi-calculator.html +258 -0
  80. package/docs/sitemap.xml +62 -2
  81. package/docs/support/index.html +12 -1
  82. package/docs/templates/customer-service/HEARTBEAT.md +61 -0
  83. package/docs/templates/customer-service/MEMORY.md +89 -0
  84. package/docs/templates/customer-service/SOUL.md +41 -0
  85. package/docs/templates/customer-service/USER.md +56 -0
  86. package/docs/templates/executive/HEARTBEAT.md +86 -0
  87. package/docs/templates/executive/MEMORY.md +92 -0
  88. package/docs/templates/executive/SOUL.md +44 -0
  89. package/docs/templates/executive/USER.md +62 -0
  90. package/docs/templates/finance/HEARTBEAT.md +58 -0
  91. package/docs/templates/finance/MEMORY.md +87 -0
  92. package/docs/templates/finance/SOUL.md +38 -0
  93. package/docs/templates/finance/USER.md +53 -0
  94. package/docs/templates/index.html +115 -0
  95. package/docs/templates/operations/HEARTBEAT.md +63 -0
  96. package/docs/templates/operations/MEMORY.md +68 -0
  97. package/docs/templates/operations/SOUL.md +38 -0
  98. package/docs/templates/operations/USER.md +49 -0
  99. package/docs/templates/sales/HEARTBEAT.md +55 -0
  100. package/docs/templates/sales/MEMORY.md +89 -0
  101. package/docs/templates/sales/SOUL.md +34 -0
  102. package/docs/templates/sales/USER.md +54 -0
  103. package/eslint.config.js +32 -0
  104. package/evals/README.md +29 -0
  105. package/evals/cases.json +390 -0
  106. package/evals/results.md +68 -0
  107. package/evals/run.js +180 -0
  108. package/examples/demo-attack/demo.js +186 -0
  109. package/examples/python-quickstart/README.md +54 -0
  110. package/examples/python-quickstart/clawmoat_client.py +167 -0
  111. package/examples/video-demo/README.md +14 -0
  112. package/examples/video-demo/scene-a-normal.js +29 -0
  113. package/examples/video-demo/scene-b-attack-arrives.js +31 -0
  114. package/examples/video-demo/scene-c-hijack.js +44 -0
  115. package/examples/video-demo/scene-d-clawmoat.js +46 -0
  116. package/integrations/crewai/README.md +32 -0
  117. package/integrations/crewai/clawmoat_crewai/__init__.py +17 -0
  118. package/integrations/crewai/clawmoat_crewai/guard.py +103 -0
  119. package/integrations/crewai/pyproject.toml +21 -0
  120. package/integrations/langchain/README.md +91 -0
  121. package/integrations/langchain/clawmoat_langchain/__init__.py +17 -0
  122. package/integrations/langchain/clawmoat_langchain/callback.py +489 -0
  123. package/integrations/langchain/pyproject.toml +32 -0
  124. package/integrations/litellm/README.md +324 -0
  125. package/integrations/litellm/clawmoat_litellm/__init__.py +21 -0
  126. package/integrations/litellm/clawmoat_litellm/callback.py +329 -0
  127. package/integrations/litellm/clawmoat_litellm/proxy_middleware.py +224 -0
  128. package/integrations/litellm/pyproject.toml +74 -0
  129. package/integrations/openai-agents/README.md +392 -0
  130. package/integrations/openai-agents/clawmoat_openai_agents/__init__.py +20 -0
  131. package/integrations/openai-agents/clawmoat_openai_agents/guardrail.py +431 -0
  132. package/integrations/openai-agents/clawmoat_openai_agents/middleware.py +311 -0
  133. package/integrations/openai-agents/pyproject.toml +76 -0
  134. package/package.json +6 -5
  135. package/plugins/openclaw-adapter/PHASE1.md +439 -0
  136. package/plugins/openclaw-adapter/README.md +103 -0
  137. package/plugins/openclaw-adapter/SPEC.md +1644 -0
  138. package/plugins/openclaw-adapter/package.json +31 -0
  139. package/plugins/openclaw-adapter/src/index.test.ts +226 -0
  140. package/plugins/openclaw-adapter/src/index.ts +140 -0
  141. package/plugins/openclaw-adapter/tsconfig.json +14 -0
  142. package/server/data/threats.json +290 -0
  143. package/server/index.js +142 -7
  144. package/src/adapters/express.js +161 -0
  145. package/src/adapters/index.js +92 -0
  146. package/src/adapters/langchain.js +185 -0
  147. package/src/approval/index.js +456 -0
  148. package/src/ban-scanner.js +200 -0
  149. package/src/boundary-scanner.js +296 -0
  150. package/src/ci-scanner.js +279 -0
  151. package/src/code-scanner.js +245 -0
  152. package/src/enforce.js +166 -0
  153. package/src/formatters/json.js +80 -0
  154. package/src/formatters/sarif.js +388 -0
  155. package/src/guardian/alerts.js +34 -3
  156. package/src/guardian/index.js +41 -2
  157. package/src/index.js +102 -0
  158. package/src/integrations/agentmesh.js +501 -0
  159. package/src/language-detector.js +201 -0
  160. package/src/mcp-scanner.js +253 -0
  161. package/src/multimodal/index.js +579 -0
  162. package/src/obfuscation-scanner.js +457 -0
  163. package/src/policy-engine.js +402 -0
  164. package/src/scanners/dependency-attacks.js +128 -0
  165. package/src/scanners/prompt-injection.js +18 -0
  166. package/src/scanners/supply-chain.js +14 -0
  167. package/src/templates/default-config.yml +90 -0
  168. package/src/vuln-ops/exploitability.js +46 -0
  169. package/src/watch/live-monitor.js +720 -0
  170. package/clawmoat-0.8.0.tgz +0 -0
  171. package/server/index.js.patch +0 -1
@@ -0,0 +1,180 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <link rel="icon" type="image/png" href="/favicon.png">
5
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png">
6
+ <meta charset="UTF-8">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+ <title>She Was Paying Someone Two Days a Month to Do Math With a Calculator — ClawMoat</title>
9
+ <meta name="description" content="A business owner was spending $3,200/month on financial reporting that took two days. We replaced it in an afternoon. The reports are better now.">
10
+ <meta property="og:title" content="She Was Paying Someone Two Days a Month to Do Math With a Calculator">
11
+ <meta property="og:description" content="A business owner was spending $3,200/month on financial reporting that took two days. We replaced it in an afternoon.">
12
+ <meta property="og:type" content="article">
13
+ <meta property="og:url" content="https://clawmoat.com/blog/calculator-math.html">
14
+ <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🏰</text></svg>">
15
+ <style>
16
+ *{margin:0;padding:0;box-sizing:border-box}
17
+ :root{--navy:#0F172A;--navy-light:#1E293B;--navy-mid:#334155;--blue:#3B82F6;--emerald:#10B981;--white:#F8FAFC;--gray:#94A3B8;--red:#EF4444}
18
+ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--navy);color:var(--white);line-height:1.7}
19
+ a{color:var(--blue);text-decoration:none}
20
+ a:hover{text-decoration:underline}
21
+ .container{max-width:760px;margin:0 auto;padding:0 24px}
22
+
23
+ nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(15,23,42,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(59,130,246,.15);padding:16px 0}
24
+ nav .inner{max-width:760px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}
25
+ .logo{font-size:1.25rem;font-weight:700;color:var(--white)}
26
+ .logo span{color:var(--emerald)}
27
+ .nav-links{display:flex;gap:24px}
28
+ .nav-links a{color:var(--gray);font-size:.9rem}
29
+ .nav-links a:hover{color:var(--white);text-decoration:none}
30
+
31
+ article{padding:120px 0 80px}
32
+ .meta{color:var(--gray);font-size:.9rem;margin-bottom:32px}
33
+ article h1{font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800;line-height:1.2;margin-bottom:12px;letter-spacing:-.02em}
34
+ article h2{font-size:1.4rem;font-weight:700;margin:48px 0 16px;color:var(--white)}
35
+ article h3{font-size:1.15rem;font-weight:700;margin:32px 0 12px;color:var(--white)}
36
+ article p{color:var(--gray);font-size:1.05rem;margin-bottom:20px}
37
+ article strong{color:var(--white)}
38
+ article em{color:var(--gray)}
39
+ article ul,article ol{color:var(--gray);margin:0 0 16px 24px}
40
+ article li{margin-bottom:8px}
41
+ article hr{border:none;border-top:1px solid var(--navy-mid);margin:48px 0}
42
+ article blockquote{border-left:3px solid var(--emerald);padding:12px 20px;margin:24px 0;background:rgba(16,185,129,.06);border-radius:0 8px 8px 0}
43
+ article blockquote p{color:var(--white);font-style:italic;margin-bottom:0}
44
+
45
+ .highlight{background:var(--navy-light);border-radius:10px;padding:24px 28px;margin:24px 0;border-left:3px solid var(--emerald)}
46
+ .highlight p{margin-bottom:0}
47
+
48
+ .tags{display:flex;gap:8px;margin-top:32px;flex-wrap:wrap}
49
+ .tag{background:rgba(59,130,246,.12);color:var(--blue);padding:4px 12px;border-radius:20px;font-size:.8rem}
50
+
51
+ .back{display:inline-flex;align-items:center;gap:6px;color:var(--gray);font-size:.9rem;margin-bottom:24px}
52
+ .back:hover{color:var(--white);text-decoration:none}
53
+
54
+ .cta{background:var(--navy-light);border:1px solid var(--navy-mid);border-radius:12px;padding:32px;margin:48px 0;text-align:center}
55
+ .cta h3{margin-top:0;font-size:1.2rem}
56
+ .cta p{font-size:.95rem}
57
+ .cta a.btn{display:inline-block;background:var(--emerald);color:var(--navy);padding:12px 28px;border-radius:8px;font-weight:600;margin-top:12px;text-decoration:none}
58
+ .cta a.btn:hover{opacity:.9;text-decoration:none}
59
+
60
+ footer{border-top:1px solid rgba(255,255,255,.06);padding:32px 0;color:var(--gray);font-size:.85rem;text-align:center}
61
+ </style>
62
+ </head>
63
+ <body>
64
+
65
+ <nav>
66
+ <div class="inner">
67
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
68
+ <div class="nav-links">
69
+ <a href="/">Home</a>
70
+ <a href="/blog/">Blog</a>
71
+ <a href="https://github.com/darfaz/clawmoat">GitHub</a>
72
+ </div>
73
+ </div>
74
+ </nav>
75
+
76
+ <div class="container">
77
+ <article>
78
+ <a href="/blog/" class="back">← Back to Blog</a>
79
+ <h1>She Was Paying Someone Two Days a Month to Do Math With a Calculator</h1>
80
+ <div class="meta">March 1, 2026 · 4 min read</div>
81
+
82
+ <p>Two days a month. That's what Sarah's financial reporting cost her.</p>
83
+
84
+ <p>Not two days of her time — she'd outsourced it. A subcontractor at $200/day came in, pulled numbers from three different systems, typed them into spreadsheets, ran formulas on a calculator, and copy-pasted charts into a slide deck.</p>
85
+
86
+ <p>Sixteen hours of work. $3,200 a month. $38,400 a year.</p>
87
+
88
+ <p>For reports that were late half the time and wrong the other half.</p>
89
+
90
+ <h2>The Part That Should Make You Uncomfortable</h2>
91
+
92
+ <p>Sarah isn't bad at her job. She runs a 22-person company. She's sharp. She negotiates contracts, closes deals, manages a team.</p>
93
+
94
+ <p>But she'd been paying for this reporting setup for three years. Never questioned it. Because it felt like what businesses do — you hire someone, they make the reports, the reports go in a folder, you glance at them before the board meeting.</p>
95
+
96
+ <p>Here's the uncomfortable truth: <strong>she was paying $100/hour for someone to do $15/hour work.</strong></p>
97
+
98
+ <p>Not because the subcontractor was charging too much. Because the work itself — manual data entry, calculator math, copy-paste formatting — is $15/hour work. It just happened to be wrapped in a monthly invoice that felt normal.</p>
99
+
100
+ <p>And it was invisible. Nobody in Sarah's company thought to ask: "Why does this take two days?"</p>
101
+
102
+ <h2>What Happened on a Tuesday Afternoon</h2>
103
+
104
+ <p>We set it up in four hours.</p>
105
+
106
+ <p>No new software to buy. No six-month implementation. No consultants with slide decks about "digital transformation."</p>
107
+
108
+ <p>We connected her three data sources. Built the logic — the same math her subcontractor did by hand, except without the typos. Added the presentation layer so the output looked like something you'd actually want to show a board.</p>
109
+
110
+ <p>That was it.</p>
111
+
112
+ <p>Now her data goes in, the analysis runs, and the presentation comes out. Under an hour. Every month. No missed deadlines. No transposed numbers. No $3,200 invoice.</p>
113
+
114
+ <div class="highlight">
115
+ <p><strong>Before:</strong> 16 hours, $3,200/month, reports with errors, delivered late.<br>
116
+ <strong>After:</strong> 47 minutes, automated, accurate, ready before she asks.</p>
117
+ </div>
118
+
119
+ <h2>The Moment It Clicked</h2>
120
+
121
+ <p>Sarah didn't get excited about the technology. She barely asked how it worked.</p>
122
+
123
+ <p>What she said was: <strong>"I want to run my whole business like this."</strong></p>
124
+
125
+ <p>Because the reporting was just the first thing she could see. Once it was gone — once the two-day ritual turned into a 47-minute background process — she started looking at everything else.</p>
126
+
127
+ <p>The proposal formatting that took her office manager half a day. The client onboarding checklist that lived in someone's head. The weekly email summary that three people contributed to and nobody read.</p>
128
+
129
+ <p>All of it — the same shape. Humans doing mechanical work. Slowly. Expensively. With errors.</p>
130
+
131
+ <h2>Why This Exists and Nobody Told You</h2>
132
+
133
+ <p>Because the people who build this technology talk about it in a language you'd never search for.</p>
134
+
135
+ <p>They call it "agentic AI" and "workflow automation" and "LLM orchestration." They demo it at conferences you don't attend, in Slack channels you've never heard of, using jargon that sounds like it's from a different industry.</p>
136
+
137
+ <p>Meanwhile, you're paying someone two days a month to do math with a calculator.</p>
138
+
139
+ <p>Not because you're behind. Because nobody translated it into your language. Nobody said: "That thing you're annoyed about? The slow reports, the manual busywork, the stuff that feels like it should be faster? It can be. Today. In an afternoon."</p>
140
+
141
+ <h2>The Question</h2>
142
+
143
+ <p>Sarah's subcontractor didn't get fired. He started working on things that actually need a human brain — analysis, recommendations, strategy. The kind of work that's worth $200/day.</p>
144
+
145
+ <p>But the calculator math? That's done.</p>
146
+
147
+ <p>So here's what I'd ask you:</p>
148
+
149
+ <p><strong>What's your version of two days a month with a calculator?</strong></p>
150
+
151
+ <p>Because you have one. Every business owner does. Some process that takes too long, costs too much, and nobody's questioned in years because "that's just how we do it."</p>
152
+
153
+ <p>It doesn't have to be financial reporting. It could be client intake. Invoicing. Inventory reconciliation. The weekly status update that takes three hours to compile.</p>
154
+
155
+ <p>Whatever it is — it probably doesn't need to take two days anymore.</p>
156
+
157
+ <div class="cta">
158
+ <h3>Curious what this looks like for your business?</h3>
159
+ <p>We help business owners find the calculator-math in their operations and replace it. No jargon. No six-month timeline. Usually an afternoon.</p>
160
+ <a href="mailto:dar@clawmoat.com?subject=Calculator%20math%20in%20my%20business" class="btn">Let's talk →</a>
161
+ </div>
162
+
163
+ <div class="tags">
164
+ <span class="tag">AI agents</span>
165
+ <span class="tag">automation</span>
166
+ <span class="tag">business operations</span>
167
+ <span class="tag">ROI</span>
168
+ </div>
169
+
170
+ </article>
171
+ </div>
172
+
173
+ <footer>
174
+ <div class="container">
175
+ © 2026 ClawMoat · <a href="/">Home</a> · <a href="/blog/">Blog</a>
176
+ </div>
177
+ </footer>
178
+
179
+ </body>
180
+ </html>
@@ -39,10 +39,16 @@ blockquote{border-left:3px solid #3B82F6;padding:12px 20px;margin:20px 0;backgro
39
39
  </head>
40
40
  <body>
41
41
  <nav>
42
- <a href="/">🏰 ClawMoat</a>
43
- <a href="/blog/">Blog</a>
44
- <a href="https://github.com/darfaz/clawmoat">GitHub</a>
45
- <a href="/#pricing">Pricing</a>
42
+ <div class="container">
43
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
44
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
45
+ <div class="nav-links">
46
+ <a href="/">Security</a>
47
+ <a href="/services/">AI Agents</a>
48
+ <a href="/blog/">Blog</a>
49
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
50
+ </div>
51
+ </div>
46
52
  </nav>
47
53
  <div class="container">
48
54
  <article>
@@ -63,14 +63,16 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:32px 0;color:var(--gra
63
63
  <body>
64
64
 
65
65
  <nav>
66
- <div class="inner">
67
- <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
68
- <div class="nav-links">
69
- <a href="/">Home</a>
70
- <a href="/blog/">Blog</a>
71
- <a href="https://github.com/darfaz/clawmoat">GitHub</a>
72
- </div>
66
+ <div class="container">
67
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
68
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
69
+ <div class="nav-links">
70
+ <a href="/">Security</a>
71
+ <a href="/services/">AI Agents</a>
72
+ <a href="/blog/">Blog</a>
73
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
73
74
  </div>
75
+ </div>
74
76
  </nav>
75
77
 
76
78
  <div class="container">
@@ -338,7 +340,15 @@ console.log(guardian.report());
338
340
  </div>
339
341
 
340
342
  <footer>
341
- <div 2026 ClawMoat. Built for the OpenClaw community. 🏰</div>
343
+ <div class="container">
344
+ <div style="display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:16px">
345
+ <a href="https://github.com/darfaz/clawmoat" style="color:var(--gray)">GitHub</a>
346
+ <a href="https://www.npmjs.com/package/clawmoat" style="color:var(--gray)">npm</a>
347
+ <a href="/blog/" style="color:var(--gray)">Blog</a>
348
+ <a href="mailto:hello@clawmoat.com" style="color:var(--gray)">hello@clawmoat.com</a>
349
+ </div>
350
+ <p style="text-align:center;color:var(--gray);font-size:.85rem">© 2026 ClawMoat</p>
351
+ </div>
342
352
  </footer>
343
353
 
344
354
  </body>
@@ -56,11 +56,12 @@ li{margin-bottom:8px}
56
56
  <nav>
57
57
  <div class="container">
58
58
  <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
59
- <div style="display:flex;gap:20px">
59
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
60
+ <div class="nav-links">
61
+ <a href="/">Security</a>
62
+ <a href="/services/">AI Agents</a>
60
63
  <a href="/blog/">Blog</a>
61
- <a href="/#features">Features</a>
62
- <a href="/business/">For Business</a>
63
- <a href="https://github.com/darfaz/clawmoat">GitHub</a>
64
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
64
65
  </div>
65
66
  </div>
66
67
  </nav>
@@ -231,8 +232,16 @@ li{margin-bottom:8px}
231
232
  </div>
232
233
  </article>
233
234
 
234
- <footer style="border-top:1px solid rgba(255,255,255,.06);padding:32px 0;color:var(--gray);font-size:.85rem;text-align:center">
235
- © 2026 ClawMoat. Built for the OpenClaw community. 🏰
235
+ <footer>
236
+ <div class="container">
237
+ <div style="display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:16px">
238
+ <a href="https://github.com/darfaz/clawmoat" style="color:var(--gray)">GitHub</a>
239
+ <a href="https://www.npmjs.com/package/clawmoat" style="color:var(--gray)">npm</a>
240
+ <a href="/blog/" style="color:var(--gray)">Blog</a>
241
+ <a href="mailto:hello@clawmoat.com" style="color:var(--gray)">hello@clawmoat.com</a>
242
+ </div>
243
+ <p style="text-align:center;color:var(--gray);font-size:.85rem">© 2026 ClawMoat</p>
244
+ </div>
236
245
  </footer>
237
246
  </body>
238
247
  </html>
@@ -42,14 +42,16 @@ nav .container{display:flex;align-items:center;justify-content:space-between}
42
42
  </head>
43
43
  <body>
44
44
  <nav>
45
- <div class="container">
46
- <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
47
- <div class="nav-links">
48
- <a href="/">Home</a>
49
- <a href="/blog/">Blog</a>
50
- <a href="https://github.com/darfaz/clawmoat">GitHub</a>
51
- </div>
45
+ <div class="container">
46
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
47
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
48
+ <div class="nav-links">
49
+ <a href="/">Security</a>
50
+ <a href="/services/">AI Agents</a>
51
+ <a href="/blog/">Blog</a>
52
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
52
53
  </div>
54
+ </div>
53
55
  </nav>
54
56
 
55
57
  <div class="container">
@@ -59,6 +61,54 @@ nav .container{display:flex;align-items:center;justify-content:space-between}
59
61
  </div>
60
62
 
61
63
  <div class="posts">
64
+ <div class="post-card" style="border-color:var(--emerald)">
65
+ <h2><a href="/blog/bugmageddon-agent-firewall.html">Bugmageddon Is Coming for AI Agents. ClawMoat Is the Firewall.</a></h2>
66
+ <div class="post-meta">April 14, 2026 · 6 min read · <span style="color:var(--emerald)">NEW — v1.0.0</span></div>
67
+ <p class="post-desc">WSJ gave the market a name for it: bugmageddon. If AI is finding vulnerabilities faster than teams can patch them, agent runtime containment becomes mandatory. This is the clearest statement yet of the ClawMoat thesis.</p>
68
+ <div class="tags">
69
+ <span class="tag">v1.0.0</span>
70
+ <span class="tag">runtime-security</span>
71
+ <span class="tag">bugmageddon</span>
72
+ <span class="tag">agent firewall</span>
73
+ </div>
74
+ </div>
75
+
76
+ <div class="post-card" style="border-color:var(--emerald)">
77
+ <h2><a href="/blog/ai-agent-earns-commissions.html">Our AI Agent Just Got a Wallet. It Earns Commission Every Time It Recommends ClawMoat.</a></h2>
78
+ <div class="post-meta">March 2, 2026 · 6 min read · <span style="color:var(--emerald)">NEW</span></div>
79
+ <p class="post-desc">We gave our AI agent a crypto wallet and enrolled it in our affiliate program. 50% commission, on-chain payments, powered by Coinbase AgentKit. The agent economy isn't coming — we just shipped it.</p>
80
+ <div class="tags">
81
+ <span class="tag">agent economy</span>
82
+ <span class="tag">Coinbase AgentKit</span>
83
+ <span class="tag">affiliate</span>
84
+ <span class="tag">FinanceGuard</span>
85
+ </div>
86
+ </div>
87
+
88
+ <div class="post-card" style="border-color:var(--emerald)">
89
+ <h2><a href="/blog/meta-researcher-rogue-agent.html">A Meta AI Researcher's Agent Deleted Her Entire Inbox. Here's What ClawMoat Would Have Caught.</a></h2>
90
+ <div class="post-meta">March 1, 2026 · 7 min read · <span style="color:var(--emerald)">NEW</span></div>
91
+ <p class="post-desc">Meta's director of AI alignment gave her OpenClaw agent access to Gmail. It speedran deleting her inbox while ignoring her commands. Every failure maps to a ClawMoat feature that already ships: permission tiers, forbidden zones, audit trails, anomaly alerts.</p>
92
+ <div class="tags">
93
+ <span class="tag">OpenClaw</span>
94
+ <span class="tag">email security</span>
95
+ <span class="tag">Host Guardian</span>
96
+ <span class="tag">real-world failure</span>
97
+ </div>
98
+ </div>
99
+
100
+ <div class="post-card" style="border-color:var(--emerald)">
101
+ <h2><a href="/blog/calculator-math.html">She Was Paying Someone Two Days a Month to Do Math With a Calculator</a></h2>
102
+ <div class="post-meta">March 1, 2026 · 4 min read · <span style="color:var(--emerald)">NEW</span></div>
103
+ <p class="post-desc">A business owner was spending $3,200/month on financial reporting that took two days. Manual data entry, calculator math, copy-paste into presentations. We replaced it in an afternoon. The reports are better now.</p>
104
+ <div class="tags">
105
+ <span class="tag">AI agents</span>
106
+ <span class="tag">automation</span>
107
+ <span class="tag">business operations</span>
108
+ <span class="tag">ROI</span>
109
+ </div>
110
+ </div>
111
+
62
112
  <div class="post-card" style="border-color:var(--emerald)">
63
113
  <h2><a href="/blog/nist-ai-agent-standards-clawmoat.html">NIST Is Standardizing AI Agent Security — ClawMoat Already Ships It</a></h2>
64
114
  <div class="post-meta">February 28, 2026 · 10 min read · <span style="color:var(--emerald)">NEW</span></div>
@@ -253,8 +303,16 @@ nav .container{display:flex;align-items:center;justify-content:space-between}
253
303
  </div>
254
304
  </div>
255
305
 
256
- <footer style="border-top:1px solid rgba(255,255,255,.06);padding:32px 0;color:var(--gray);font-size:.85rem;text-align:center">
257
- © 2026 ClawMoat. Built for the OpenClaw community. 🏰
306
+ <footer>
307
+ <div class="container">
308
+ <div style="display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:16px">
309
+ <a href="https://github.com/darfaz/clawmoat" style="color:var(--gray)">GitHub</a>
310
+ <a href="https://www.npmjs.com/package/clawmoat" style="color:var(--gray)">npm</a>
311
+ <a href="/blog/" style="color:var(--gray)">Blog</a>
312
+ <a href="mailto:hello@clawmoat.com" style="color:var(--gray)">hello@clawmoat.com</a>
313
+ </div>
314
+ <p style="text-align:center;color:var(--gray);font-size:.85rem">© 2026 ClawMoat</p>
315
+ </div>
258
316
  </footer>
259
317
  </body>
260
318
  </html>
@@ -62,14 +62,16 @@ footer{border-top:1px solid rgba(255,255,255,.06);padding:32px 0;color:var(--gra
62
62
  <body>
63
63
 
64
64
  <nav>
65
- <div class="inner">
66
- <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
67
- <div class="nav-links">
68
- <a href="/">Home</a>
69
- <a href="/blog/">Blog</a>
70
- <a href="https://github.com/darfaz/clawmoat">GitHub</a>
71
- </div>
65
+ <div class="container">
66
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
67
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
68
+ <div class="nav-links">
69
+ <a href="/">Security</a>
70
+ <a href="/services/">AI Agents</a>
71
+ <a href="/blog/">Blog</a>
72
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
72
73
  </div>
74
+ </div>
73
75
  </nav>
74
76
 
75
77
  <div class="container">
@@ -312,7 +314,15 @@ console.log(stats);
312
314
  </div>
313
315
 
314
316
  <footer>
315
- <div 2026 ClawMoat. Built for the OpenClaw community. 🏰</div>
317
+ <div class="container">
318
+ <div style="display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:16px">
319
+ <a href="https://github.com/darfaz/clawmoat" style="color:var(--gray)">GitHub</a>
320
+ <a href="https://www.npmjs.com/package/clawmoat" style="color:var(--gray)">npm</a>
321
+ <a href="/blog/" style="color:var(--gray)">Blog</a>
322
+ <a href="mailto:hello@clawmoat.com" style="color:var(--gray)">hello@clawmoat.com</a>
323
+ </div>
324
+ <p style="text-align:center;color:var(--gray);font-size:.85rem">© 2026 ClawMoat</p>
325
+ </div>
316
326
  </footer>
317
327
 
318
328
  </body>
@@ -51,10 +51,17 @@
51
51
  </head>
52
52
  <body>
53
53
  <div class="container">
54
- <nav class="nav">
55
- <a href="/">ClawMoat</a>
56
- <a href="/blog/">Blog</a>
57
- <a href="https://github.com/darfaz/clawmoat">GitHub</a>
54
+ <nav>
55
+ <div class="container">
56
+ <a href="/" class="logo">🏰 Claw<span>Moat</span></a>
57
+ <button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
58
+ <div class="nav-links">
59
+ <a href="/">Security</a>
60
+ <a href="/services/">AI Agents</a>
61
+ <a href="/blog/">Blog</a>
62
+ <a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
63
+ </div>
64
+ </div>
58
65
  </nav>
59
66
 
60
67
  <article>