It kind of sounds like the LLM built a large system that doesn't necessarily achieve any actual value.
We need to know if the email being sent by an agent is supposed to be sent and if an agent is actually supposed to be making that transaction on my behalf. etc
Every time a project is shared that uses WASM.
A VM is too coarse grained and doesn't know how to deal with sensitive data in a structured and secure way. Everything's just in the same big box.
You don't want to give a a single agent access to your email, calendar, bank, and the internet, but you may want to give an agent access to your calendar and not the general internet; another access to your credit card but nothing else; and then be able to glue them together securely to buy plane tickets.
1. An LLM given untrusted input produces untrusted output and should only be able to generate something for human review or that's verifiably safe.
2. Even an LLM without malicious input will occasionally do something insane and needs guardrails.
There's a gnarly orchestration problem I don't see anyone working on yet.
Sandboxes could provide that level of observability, HOWEVER, it is a hard lift. Yet, I don't have better ideas either. Do you?
However, this design is still under development as it creates quite a bit of challenges.
Solutions no, for now continued cat/mouse with things like "good agents" in the mix (i.e. ai as a judge - of course just as exploitable through prompt injection), and deterministic policy where you can (e.g. OPA/rego).
We should continue to enable better integrations with runtime - why i created the original feature request for hooks in claude code. Things like IFC or agent-as-a-judge can form some early useful solutions.
The problem is that it seems (at least for now) a very hard problem, even for very constrained workflows. It seems even harder for "open-ended" / dynamic workflows. This gets more complicated the more you think about it, and there's a very small (maybe 0 in some cases) intersection of "things it can do safely" and "things I need it to do".
Can't wait for the bubble to pop.
At this rate, it's going to be simply impossible to catchup in just a few months.
Your secure personal AI assistant, always on your side
Philosophy β’ Features β’ Installation β’ Configuration β’ Security β’ Architecture
IronClaw is built on a simple principle: your AI assistant should work for you, not against you.
In a world where AI systems are increasingly opaque about data handling and aligned with corporate interests, IronClaw takes a different approach:
IronClaw is the AI assistant you can actually trust with your personal and professional life.
Visit Releases page to see the latest updates.
Download the Windows Installer and run it.
irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh
Install it with cargo, just make sure you have Rust installed on your computer.
# Clone the repository
git clone https://github.com/nearai/ironclaw.git
cd ironclaw
# Build
cargo build --release
# Run tests
cargo test
For full release (after modifying channel sources), run ./scripts/build-all.sh to rebuild channels first.
# Create database
createdb ironclaw
# Enable pgvector
psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;"
Run the setup wizard to configure IronClaw:
ironclaw onboard
The wizard handles database connection, NEAR AI authentication (via browser OAuth),
and secrets encryption (using your system keychain). All settings are saved to
~/.ironclaw/settings.toml.
IronClaw implements defense in depth to protect your data and prevent misuse.
All untrusted tools run in isolated WebAssembly containers:
WASM βββΊ Allowlist βββΊ Leak Scan βββΊ Credential βββΊ Execute βββΊ Leak Scan βββΊ WASM
Validator (request) Injector Request (response)
External content passes through multiple security layers:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Channels β
β ββββββββ ββββββββ βββββββββββββββ βββββββββββββββ β
β β REPL β β HTTP β βWASM Channelsβ β Web Gateway β β
β ββββ¬ββββ ββββ¬ββββ ββββββββ¬βββββββ β (SSE + WS) β β
β β β β ββββββββ¬βββββββ β
β βββββββββββ΄βββββββββββββββ΄βββββββββββββββββ β
β β β
β βββββββββββΌββββββββββ β
β β Agent Loop β Intent routing β
β ββββββ¬ββββββββββ¬βββββ β
β β β β
β ββββββββββββΌββββ ββββΌβββββββββββββββ β
β β Scheduler β β Routines Engine β β
β β(parallel jobs)β β(cron, event, wh) β β
β ββββββββ¬ββββββββ ββββββββββ¬ββββββββββ β
β β β β
β βββββββββββββββΌββββββββββββββββββββ β
β β β β
β βββββΌβββββ ββββββΌβββββββββββββββββ β
β β Local β β Orchestrator β β
β βWorkers β β βββββββββββββββββ β β
β β(in-proc)β β β Docker Sandboxβ β β
β βββββ¬βββββ β β Containers β β β
β β β β βββββββββββββ β β β
β β β β βWorker / CCβ β β β
β β β β βββββββββββββ β β β
β β β βββββββββββββββββ β β
β β βββββββββββ¬ββββββββββββ β
β ββββββββββββββββββββ€ β
β β β
β βββββββββββββΌβββββββββββ β
β β Tool Registry β β
β β Built-in, MCP, WASM β β
β ββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Component | Purpose |
|---|---|
| Agent Loop | Main message handling and job coordination |
| Router | Classifies user intent (command, query, task) |
| Scheduler | Manages parallel job execution with priorities |
| Worker | Executes jobs with LLM reasoning and tool calls |
| Orchestrator | Container lifecycle, LLM proxying, per-job auth |
| Web Gateway | Browser UI with chat, memory, jobs, logs, extensions, routines |
| Routines Engine | Scheduled (cron) and reactive (event, webhook) background tasks |
| Workspace | Persistent memory with hybrid search |
| Safety Layer | Prompt injection defense and content sanitization |
# First-time setup (configures database, auth, etc.)
ironclaw onboard
# Start interactive REPL
cargo run
# With debug logging
RUST_LOG=ironclaw=debug cargo run
# Format code
cargo fmt
# Lint
cargo clippy --all --benches --tests --examples --all-features
# Run tests
createdb ironclaw_test
cargo test
# Run specific test
cargo test test_name
./channels-src/telegram/build.sh before cargo build so the updated WASM is bundled.IronClaw is a Rust reimplementation inspired by OpenClaw. See FEATURE_PARITY.md for the complete tracking matrix.
Key differences:
Licensed under either of:
at your option.
OCI supports far more and has a much bigger ecosystem