The fastest self-growing agent runtime. Written in Zig.
TigerClaw is an autonomous AI assistant runtime built for developers who care about what's actually running on their machine. Single ~3 MB binary. Under 1 ms startup. ~1 MB peak RSS. Runs full with negligible CPU and RAM impact. 7 AI providers. 26 channels. 10 memory backends. Everything swappable via vtable interfaces — no rewrites, no lock-in.
If you've outgrown chat wrappers and Python orchestration frameworks that ship 400 MB of dependencies to run a loop — this is for you.
| OpenClaw | NanoBot | PicoClaw | ZeroClaw | TigerClaw | |
|---|---|---|---|---|---|
| Language | TypeScript | Python | Go | Rust | Zig |
| RAM | > 1 GB | > 100 MB | < 10 MB | < 5 MB | ~1 MB |
| Startup | > 500 s | > 30 s | < 1 s | < 10 ms | < 1 ms |
| Binary Size | ~28 MB | N/A (scripts) | ~8 MB | ~8.8 MB | ~3 MB |
| Tests | — | — | — | 1,017 | 6,700+ |
| Channels | ~5 | ~3 | ~8 | ~10 | 26 |
| Hardware support | ✗ | ✗ | partial | ✗ | ✓ |
Measured with
/usr/bin/timeon ReleaseSmall builds. TigerClaw is a static binary with zero runtime dependencies beyond libc.
Most agent runtimes make the wrong tradeoffs:
| Problem | TigerClaw's answer |
|---|---|
| Bloated runtimes with huge dependency trees | Single ~3 MB binary, zero runtime deps beyond libc |
| Agents that peg your CPU and eat RAM | ~1 MB peak RSS, <1 ms startup, light on CPU by design |
| Hard-coded providers — switching costs weeks | Vtable interfaces — swap providers, channels, or memory via config |
| Agents that only work in the cloud | Runs on ARM, x86, RISC-V. Raspberry Pi, STM32, embedded edge |
| Security bolted on after the fact | Pairing, AEAD encryption, sandbox isolation, allowlists — all default-on |
| "Trust us" black-box runtimes | 310 Zig source files, 6,700+ tests, vendored SQLite with SHA256 verification |
Deploy an agent to Telegram today. Move it to Discord tomorrow. Add a memory backend. Swap your AI provider. None of that requires touching core logic — every subsystem is a vtable you implement or swap.
7 providers · 26 channels · 10 memory engines · 59 tools · ~3 MB binary · <1 ms startup
Providers: Anthropic, OpenAI, Gemini, Vertex AI, Ollama, OpenRouter, any OpenAI-compatible endpoint
Channels: Telegram, Discord, Slack, Signal, Matrix, WhatsApp, Mattermost, Teams, IRC, Email, Nostr, iMessage, Line, Lark, DingTalk, WeChat, WeCom, QQ, OneBot, MaixCam, Web, stdio JSON-RPC, and more
Memory: SQLite (hybrid FTS5 + vector search), PostgreSQL, Redis, LanceDB, ClickHouse, Markdown, LRU, Lucid, API, None
Tools: File I/O, web browsing, shell execution, memory management, vision, hardware control, scheduling, and more
Hardware: Arduino, Raspberry Pi GPIO, STM32/Nucleo via Serial, I2C, SPI
Requires: Zig 0.15.2 (exact)
git clone https://github.com/MagnovaAI/tigerclaw.git
cd tigerclaw
zig build -Doptimize=ReleaseSmall# Set up with your API key
./zig-out/bin/tigerclaw onboard --api-key sk-... --provider openrouter
# Chat
./zig-out/bin/tigerclaw agent -m "Hello"
# Start the HTTP gateway
./zig-out/bin/tigerclaw gatewayEvery subsystem is a ptr: *anyopaque + vtable: *const VTable. Extension means implementing a vtable struct and registering it in a factory — not forking core logic.
| Subsystem | Interface | Built-in implementations |
|---|---|---|
| AI Models | Provider |
Anthropic, OpenAI, Gemini, Vertex AI, Ollama, OpenRouter, Compatible |
| Channels | Channel |
26 transports |
| Memory | Memory |
SQLite, Postgres, Redis, LanceDB, ClickHouse, Markdown, LRU, API, None |
| Tools | Tool |
59 tools across file, web, shell, vision, hardware, scheduling |
| Runtime | RuntimeAdapter |
Native, Docker, WASM (wasmtime) |
| Sandbox | Sandbox |
Landlock, Firejail, Bubblewrap, Docker, auto-detect |
| Tunnel | Tunnel |
Cloudflare, Tailscale, ngrok, Custom |
| Hardware | Peripheral |
Serial, Arduino, Raspberry Pi GPIO, STM32/Nucleo |
Extension rule: callers must own the implementing struct. Never return a vtable interface pointing to a temporary — the pointer dangles.
Security is default-on, not a feature flag.
| Layer | How |
|---|---|
| Not publicly exposed | Binds 127.0.0.1. Refuses 0.0.0.0 without tunnel or explicit opt-in |
| Pairing required | 6-digit one-time code on startup. POST /pair for bearer token |
| Filesystem scoped | workspace_only = true by default. Null byte injection blocked. Symlink escape detection |
| Encrypted secrets | API keys encrypted with ChaCha20-Poly1305 using local key file |
| Sandbox isolation | Auto-detects: Landlock → Firejail → Bubblewrap → Docker |
| Audit logging | Signed event trail with configurable retention |
| Channel allowlists | Empty = deny all. "*" = allow all (explicit opt-in). Otherwise exact-match |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/health |
GET | None | Health check |
/pair |
POST | X-Pairing-Code |
Exchange one-time code for bearer token |
/webhook |
POST | Bearer <token> |
Send message: {"message": "prompt"} |
/.well-known/agent-card.json |
GET | None | A2A Agent Card discovery |
/a2a |
POST | Bearer <token> |
A2A JSON-RPC (Google A2A v0.3.0) |
TOKEN=$(curl -s -X POST -H "X-Pairing-Code: 123456" http://localhost:3000/pair | jq -r .token)
curl -H "Authorization: Bearer $TOKEN" -d '{"message":"hello"}' http://localhost:3000/webhookConfig at ~/.tigerclaw/config.json.
{
"models": {
"providers": {
"openrouter": { "api_key": "sk-or-..." },
"anthropic": { "api_key": "sk-ant-..." }
}
},
"agents": {
"defaults": {
"model": { "primary": "openrouter/anthropic/claude-sonnet-4" }
}
},
"channels": {
"telegram": {
"accounts": {
"main": { "bot_token": "123:ABC", "allow_from": ["your_username"] }
}
}
},
"memory": {
"backend": "sqlite",
"embedding_provider": "openai",
"vector_weight": 0.7,
"keyword_weight": 0.3
},
"gateway": { "port": 3000, "require_pairing": true },
"autonomy": { "level": "supervised", "workspace_only": true }
}See source config types for full reference.
| Command | Description |
|---|---|
onboard --api-key sk-... --provider openrouter |
Quick setup |
onboard --interactive |
Full interactive wizard |
agent -m "..." |
Single message |
agent |
Interactive chat |
gateway |
Start HTTP gateway (default: 127.0.0.1:3000) |
service install|start|stop|status |
Background service management |
channel list|start|status |
Channel management |
memory stats|search|list |
Memory inspection |
cron list|add|once |
Scheduled tasks |
skills list|install|remove |
Skill packs |
doctor |
Diagnose system health |
migrate openclaw [--dry-run] |
Import from OpenClaw |
update [--check] |
Update |
Build and tests pinned to Zig 0.15.2.
zig build # dev build
zig build -Doptimize=ReleaseSmall # release build (~3 MB)
zig build test --summary all # full test suite — must pass, 0 leaks
zig fmt src/ # formatBuild flags:
zig build -Dchannels=telegram,cli # specific channels only
zig build -Dengines=base,sqlite # specific memory engines only
zig build -Dtarget=x86_64-linux-musl # cross-compile
zig build -Dversion=2026.4.17 # override CalVer versionStats:
Language: Zig 0.15.2
Source files: 310
Tests: 6,700+
Dependencies: vendored SQLite (SHA256 verified) + websocket.zig
Binary size: ~3 MB (ReleaseSmall)
Startup: <2 ms
Peak RSS: ~1 MB
Layout:
src/
main.zig CLI entry point
agent/ Agent orchestration, routing, context
gateway/ HTTP server, routes, middleware, web UI
providers/backends/ 7 AI provider backends
channels/transports/ 26 channel implementations
tools/ 59 tools (file, web, shell, vision, hardware, scheduling)
memory/engines/ 10 memory engines
security/ Sandbox, audit, crypto
config/ Config types and parser
core/ Bus, state, hooks, capabilities, vtable primitives
CI runs on Ubuntu (x86_64), macOS (aarch64), Windows (x86_64). Release builds target 7 platforms including linux-riscv64.
- Fork → feature branch → PR
- Read
AGENTS.md— engineering protocol, architecture, naming conventions, change playbooks zig build test --summary allmust pass with 0 leaks before submitting
Extension points:
- New provider →
src/providers/backends/ - New channel →
src/channels/transports/ - New tool →
src/tools/ - New memory backend →
src/memory/engines/ - New sandbox →
src/security/sandbox/ - New hardware peripheral →
src/peripherals.zig
- Multi-platform bots: same agent logic across Telegram, Discord, Slack, WhatsApp
- Internal automation: agents that interact with your infrastructure, not a cloud vendor's
- Edge / embedded: autonomous agents on Raspberry Pi, ARM boards, low-power hardware
- Research: custom tools + memory backends for data analysis pipelines
- Self-hosted AI gateway: A2A-compatible endpoint for agent-to-agent orchestration
TigerClaw is open-source software. No token. No cryptocurrency. No blockchain. No financial instrument of any kind.
MIT — see LICENSE
Small binary. Zero lock-in. Runs anywhere.

