ClamBot: AI Agent Runs LLM-Generated Code in WASM Sandbox for Security

✍️ OpenClawRadar📅 Published: April 13, 2026🔗 Source
ClamBot: AI Agent Runs LLM-Generated Code in WASM Sandbox for Security
Ad

What ClamBot Does

ClamBot is an AI agent framework that addresses security concerns with existing agent frameworks by running all LLM-generated code in a WebAssembly sandbox instead of using exec() or subprocess calls. The creator built it after trying frameworks that execute arbitrary code directly on the host machine, citing examples like LangChain having a CVE for this approach, AutoGen shelling out with subprocess, and SWE-Agent running bash commands from the model.

Technical Implementation

ClamBot is built on top of amla-sandbox, a WASM sandbox that uses QuickJS in Wasmtime. The LLM writes JavaScript code that runs in a memory-isolated sandbox with zero network access. Every tool call (HTTP, filesystem, cron) must pass through an approval gate back in Python. No Docker or VM is required - it runs as one binary.

Key Features

  • Sandbox Security: All code runs in WASM - cannot touch host memory or network
  • Approval Gate: SHA-256 fingerprinted approval gate on every tool call with pre-approve patterns (e.g., "allow web_fetch for api.coinbase.com")
  • Clam Reuse: Successful scripts get saved as "clams" and can be reused, reducing API costs for repeated requests
  • Multi-Provider Support: OpenRouter, Anthropic, OpenAI, Gemini, DeepSeek, Groq, Ollama
  • Telegram Integration: Telegram bot with inline approval buttons
  • Additional Features: Persistent memory, cron scheduling, SSRF protection that blocks private IPs, secrets never appear in logs/tool args/traces
Ad

Example Workflow

User asks: "what are the top movers on binance?" The sandbox executes JavaScript → makes http_request to Binance API → goes through approval gate → returns result. The bot responds with the top 10 movers on Binance by 24h change.

Getting Started

bash git clone https://github.com/clamguy/clambot.git
cd clambot
uv run clambot onboard
uv run clambot agent

Stack and Scale

The project is built with Python + QuickJS/Wasmtime, contains approximately 10K lines of code, and was inspired by OpenClaw and nanobot. The creator built it because they wanted "an AI agent I could actually trust on my server."

📖 Read the full source: r/openclaw

Ad

👀 See Also

ClawCode: Migrate OpenClaw Agents to Claude Code as a Plugin
Tools

ClawCode: Migrate OpenClaw Agents to Claude Code as a Plugin

ClawCode is a Node.js plugin for Claude Code that imports OpenClaw agents, including IDENTITY, SOUL, memory, skills, and crons from ~/.openclaw/workspace/. It provides SQLite+FTS5 searchable memory, messaging plugins for WhatsApp, Telegram, Discord, iMessage, and Slack, and a nightly 'dream' process for memory consolidation.

OpenClawRadar
Claude Desktop + Blender via MCP: Real-Time 3D Workflow Closes the Feedback Loop
Tools

Claude Desktop + Blender via MCP: Real-Time 3D Workflow Closes the Feedback Loop

An open-source Blender add-on runs an MCP server inside Blender, letting Claude Desktop inspect scenes, create objects, render images, and read results—closing the script-paste feedback loop.

OpenClawRadar
Mengram adds persistent memory to OpenClaw agents
Tools

Mengram adds persistent memory to OpenClaw agents

Mengram is an open-source memory system that gives OpenClaw agents long-term memory across sessions, solving the problem of agents forgetting everything when they restart. It provides episodic, entity, and procedural memory with smart archival of outdated facts.

OpenClawRadar
Savant Commander 48B: A Custom Qwen 3 Mixture-of-Experts Model with 12 Distilled Models
Tools

Savant Commander 48B: A Custom Qwen 3 Mixture-of-Experts Model with 12 Distilled Models

Savant Commander 48B is a custom Qwen 3 Mixture-of-Experts model with hand-coded routing that combines 12 distilled models from providers like Claude, Gemini, OpenAI, and Deepseek. It features 256K context length and allows prompt-controlled activation of specific distilled models.

OpenClawRadar