ZeroClaw’s runtime is deliberately lightweight — common operations use under 5 MB of RAM — but compile-time requirements are significantly higher. This page explains the gap between runtime and build-time resource needs, documents the currently proposed resource-limit mechanisms, and covers the configuration schema under active design.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/openagen/zeroclaw/llms.txt
Use this file to discover all available pages before exploring further.
Runtime vs. build-time resource requirements
| Phase | RAM | Disk |
|---|---|---|
| Runtime (common operations) | <5 MB | minimal |
| Full source build | 2 GB RAM + swap minimum, 4 GB+ recommended | 6+ GB free |
matrix-sdk, ruma, vodozemac), TLS and crypto native build scripts (aws-lc-sys, ring), and rusqlite’s bundled SQLite C compilation. The compiled binary itself is small; only the compilation process is expensive.
On constrained hosts, use
./install.sh --prefer-prebuilt to skip compilation entirely. See the troubleshooting guide for more detail.The resource cap problem
ZeroClaw currently enforces rate limiting (20 actions/hour) but has no hard resource caps. A runaway agent could:- Exhaust available memory
- Spin CPU at 100%
- Fill disk with logs or output
Proposed resource limit mechanisms
Option 1: cgroups v2 (Linux, recommended)
Option 1: cgroups v2 (Linux, recommended)
Automatically create a systemd cgroup for the ZeroClaw service with hard limits. This is the recommended approach for Linux deployments because enforcement happens at the kernel level.Add resource directives to the systemd service unit:This constrains the entire ZeroClaw process tree without requiring application-level changes.
Option 2: per-task CPU timeout via tokio
Option 2: per-task CPU timeout via tokio
Wrap async tasks with a timeout to prevent task starvation and runaway CPU usage.This is low-effort and high-impact for preventing individual tasks from running indefinitely.
Option 3: custom global allocator for memory monitoring
Option 3: custom global allocator for memory monitoring
Track heap usage with a custom This gives fine-grained control over heap growth without relying on OS-level mechanisms.
GlobalAlloc implementation and abort the process if a configured limit is exceeded.Proposed config schema
The following[resources] section is under design and not yet active in the runtime.
Implementation priority
| Phase | Feature | Effort | Impact |
|---|---|---|---|
| P0 | Memory monitoring + kill | Low | High |
| P1 | CPU timeout per command | Low | High |
| P2 | cgroups integration (Linux) | Medium | Very High |
| P3 | Disk I/O limits | Medium | Medium |