Skip to content

MagnovaAI/tigerclaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

206 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TigerClaw
TigerClaw

The fastest self-growing agent runtime. Written in Zig.

CI Latest Release Discord License: MIT

TigerClaw Web UI Preview


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.


Why TigerClaw

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/time on 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

What It Does

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


Quick Start

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 gateway

Architecture

Every 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

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

Gateway API

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/webhook

Configuration

Config 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.


Commands

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

Development

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/                       # format

Build 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 version

Stats:

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.


Contributing

  1. Fork → feature branch → PR
  2. Read AGENTS.md — engineering protocol, architecture, naming conventions, change playbooks
  3. zig build test --summary all must 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

Use Cases

  • 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

Disclaimer

TigerClaw is open-source software. No token. No cryptocurrency. No blockchain. No financial instrument of any kind.


License

MIT — see LICENSE


Small binary. Zero lock-in. Runs anywhere.

Star History Chart

About

The fastest self-growing agent runtime. Written in Zig.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors