The first physical AI agent in a global agent ecosystem β and the only one that scales from a $15 Raspberry Pi to a $249 NVIDIA Jetson with the same C-native binary.
A lightweight AI assistant written in C that runs on NVIDIA Jetson Orin Nano Super (8 GB, 67 TOPS, CUDA-accelerated local LLM) for the edge-AI maker / researcher persona, and on Raspberry Pi Zero 2 W (~$15, smallest viable Linux SBC) for the hobbyist persona β from a single aarch64 binary with runtime board detection. It communicates with other agents through the agentic marketplace, using ASAP Protocol.
Two personas, one binary (see DR-015, DR-016):
| Persona | Hardware | Headline capability |
|---|---|---|
| Edge-AI maker / researcher | Jetson Orin Nano Super 8 GB Dev Kit | Local Llama-3.1-8B Q4 @ 14β18 tok/s or Phi-3-mini Q4 @ 25β35 tok/s via CUDA; GPIO/I2C/CSI camera; NVMe boot |
| Hobbyist / IoT tinkerer | Raspberry Pi Zero 2 W | < 5 MB RAM, < 500 KB binary on the cheapest viable Linux SBC; GPIO/I2C/CSI camera; cloud LLM primary with TinyLlama emergency fallback |
Roadmap (high level):
| Phase | Version | Status | Focus |
|---|---|---|---|
| 1: Foundation | v0.1.0 | β Done | Core agent loop, CLI + Telegram, Anthropic/OpenAI, shell/search/file tools, SQLite memory & sessions, skill loading |
| 2: Gateway | v0.2.0 | β Done | HTTP server, embedded Web UI, WebSocket chat, cron scheduler, pairing auth, ASAP manifest, skill hot-reload |
| 3: Protocol | v0.3.0 | β Done | ASAP client/server, registry, asap_invoke tool, process sandbox (namespaces + cgroups), Tavily search, /asap + /api/asap/log, rate limits |
| 4: Autonomy | v0.4.0 | β Done | Local inference (llama.cpp), provider fallback, Discord channel, systemd service, OTA updates, context tool, dashboard |
| 5: Edge AI Hardware & Release | v1.0.0 | β | Jetson Orin Nano Super primary target: GPIO/I2C/camera, CUDA-accelerated local LLM, Ed25519 signing, ASAP marketplace registration, security audit, full docs |
| 6: Hobbyist Portability | v1.1.0 | β | Raspberry Pi Zero 2 W validation: same binary, RPi-specific install + benchmarks + docs, optional pre-built SD image |
ShellClaw is not another OpenClaw clone in a different language. It is a hardware-native, dual-persona agent: it interacts with the physical world (GPIO, I2C sensors, camera) on both ends of the SBC spectrum, runs production-grade local LLMs on edge-AI hardware (CUDA on Jetson), and collaborates with cloud agents through a standardized protocol β all from a single C source tree and a single aarch64 binary.
| Feature | ShellClaw |
|---|---|
| Binary | < 500 KB base, < 600 KB with hardware backends |
| Agent RAM | < 5 MB idle, < 15 MB active (on both boards) |
| Startup | < 1 s on Jetson, < 2 s on RPi Zero 2 W |
| Language | C (~5,500 lines target after Phase 5) |
| Hardware | GPIO, I2C, CSI/USB Camera (single abstraction, per-board backends) |
| Sandbox | Native Linux namespaces + cgroups v2 |
| Web UI | Embedded in binary |
| Local inference | CUDA llama-server on Jetson (14β35 tok/s); CPU llama-server on RPi (emergency) |
| Agent network | ASAP Protocol (first non-Python + first edge-AI ASAP agent) |
| Hardware range | Same binary runs on a $15 RPi Zero 2 W and a $249 Jetson Orin Nano Super |
Build: make shellclaw β binary at build/shellclaw. make test β builds and runs all tests in build/.
Run: ./build/shellclaw
Quality checks:
make staticβ cppcheck onsrc/(requires cppcheck)make coverageβ coverage report; fails if core < 80% (requires lcov)- CI enforces release binary < 2 MB; optional
asap-compliancewhen the Python package is available - Before opening a PR: run
CI=true make clean && CI=true make test(matches Linux CI with-Werror), or on a machine with the same apt deps as .github/workflows/ci.yml:chmod +x scripts/ci-local.sh && ./scripts/ci-local.sh
Phase 3 configuration (optional): registry and revocation URLs, Tavily API key name, and sandbox-related keys are documented in .env.example. Install libwebsockets (pkg-config must find it) to build the gateway and run GATEWAY=1 make test_gateway_http.
Phase 5 (v1.0.0, planned): edge-AI release on Jetson Orin Nano Super β hardware tools (GPIO/I2C/camera), CUDA-accelerated local inference, Ed25519 manifest signing, ASAP marketplace registration, security audit, full documentation.
Phase 6 (v1.1.0, planned): Raspberry Pi Zero 2 W portability β same binary validated and benchmarked on the $15 hobbyist board, with RPi-specific install script and side-by-side docs.
WebSocket auth (breaking vs early gateway builds): browsers cannot send Authorization on WebSocket; use subprotocol bearer.<pairing-token> when opening /ws (see web/js/app.js).
Debug (macOS): Symbols in tests-dSYM/. Use lldb build/test_agent then settings set target.debug-file-search-path tests-dSYM. Old .dSYM in repo root? Run make clean-root-dsym.
The main agent loop is single-threaded: memory, providers, channels and tools keep much of their state in process-wide data initialized at startup. Inbound HTTP/WebSocket paths (for example ASAP POST /asap and the WebSocket chat dispatcher) may run on libwebsockets worker threads.
Those code paths must call agent_lock() before agent_run() and agent_unlock() afterward so only one agent_run uses shared session/memory state at a time. Do not call agent_run, provider chat, or memory functions from arbitrary new threads without the same discipline.
Channels (Telegram, Discord, WebChat)
β
βΌ
ββββββββββββββββ βββββββββββββββββββββββββββββββ
β Agent Loop ββββββΊβ LLM APIs β
β (ReAct) β β Claude Β· OpenAI Β· local β
β βββββββ (local = llama-server β
β β β CUDA on Jetson / β
β β β CPU on RPi) β
ββββββββ¬ββββββββ βββββββββββββββββββββββββββββββ
β
ββββββββΌββββββββ βββββββββββββββββββββββββββββββ
β Tools ββββββΊβ Hardware β
β (shell, β β GPIO Β· I2C Β· CSI/USB cam β
β search, β β (libgpiod + per-board β
β cron, β β backends, runtime β
β file, β β board detection) β
β asap) β βββββββββββββββββββββββββββββββ
β β
β β βββββββββββββββββββββββββββββββ
β ββββββΊβ ASAP Agent Ecosystem β
ββββββββββββββββ β (marketplace + peers) β
βββββββββββββββββββββββββββββββ
One source tree, one aarch64 binary, two hardware personas. The agent reads /proc/device-tree/compatible at startup and selects the right hardware backends (Jetson tegra234-gpio / nvarguscamerasrc vs RPi bcm2835-gpio / libcamera-still). The architecture above is identical on both boards; only the leaf backends and the local LLM throughput differ.
MIT β permissive, simple and aligned with the ASAP ecosystem and similar agents. Use, modify and distribute freely; keep the copyright notice.