Talk to a chip; it comes alive by light.
Describe a behaviour in plain words. An LLM compiles a tiny, safety-checked program and your screen beams it as flickering light to a $3, radio-less Arduino — which then runs it forever, offline. No IDE. No USB cable. No WiFi. No app.
▶ Watch the full 90-second HD demo →
Type a behaviour → the screen beams it as light → a $3 Arduino runs it. Filmed in one take.
Not "an LLM in 2 KB" (that's impossible) — it's LLM-compiled agency in 2 KB. The model thinks once, off-chip. The chip acts forever, on its own.
The 2026 wave — OpenClaw → ESP-Claw (Espressif) → MimiClaw — races to put an AI agent on a chip. Every one of them needs Wi-Fi, megabytes of PSRAM, and a round-trip to the cloud. BeamClaw is the honest opposite.
| BeamClaw | ESP-Claw / MimiClaw | USB (Firmata) | |
|---|---|---|---|
| Radio | ✅ none | ❌ Wi-Fi required | none (wired) |
| Chip RAM | ✅ 2 KB | ≥ 400 KB | any |
| Runs offline | ✅ forever | ❌ needs the cloud | needs a host PC |
| How code arrives | ✅ light (screen → sensor) | Wi-Fi / flash | cable |
| Program many at once | ✅ yes — one screen | ❌ no | ❌ no |
| Receiver cost | ✅ ~$3 + 50¢ | ~$5–10 | board + cable |
Not competing with the cloud Claws on raw power — owning the niche they can't serve: air-gapped, 2 KB, light-delivered, offline.
- Flash once — open
flash.htmlin desktop Chrome/Edge, plug in an Arduino Uno, click Flash. Installs the firmware over Web Serial — no Arduino IDE. You only do this once. - Wire a light sensor — a 3-pin LDR module:
S→A0,+→5V,−→GND. Point it at your screen. - Talk to it — open
app.html, type e.g. "blink when it gets dark." Built-ins are free; add your own Anthropic key for free-form requests. Hold the sensor to the panel and press Beam.
The chip stores the program and runs it offline forever. Re-beam any time to change it.
English → compile + safety-check (off-chip) → frame · whiten · CRC → LIGHT (screen → LDR) → chip stores to EEPROM → a 2 KB virtual machine runs it forever.
A deterministic assembler turns the proposal into bytecode and a validator proves it's safe —
legal opcodes, in-range jumps, never driving the serial or sensor pins — before a single bit
leaves the screen. Full write-up, wiring and the instruction set are in docs.html.
beamclaw/
├─ index.html · app.html · flash.html · docs.html the website (static, no build step)
├─ assets/ style.css, app.js (console engine), flash.js (Web Serial flasher),
│ fx.js, firmware.js (embedded firmware), diagrams, icons, og image
├─ firmware/ beamclaw_agent.ino (source) + beamclaw_agent.hex (compiled)
└─ _smoke/ smoke.sh — pre-deploy checks
Static site — host it anywhere. It's live at beam-claw.com on shared
Apache (the included .htaccess gives clean, extensionless URLs). For GitHub Pages: Settings →
Pages → Deploy from branch → main / root, add a custom domain, and HTTPS is automatic — don't buy
an SSL certificate. Netlify and Cloudflare Pages work the same way (drag-drop, free HTTPS). Run
bash _smoke/smoke.sh before shipping.
One-click flashing needs desktop Chrome or Edge over
https://orlocalhost(Web Serial isn't available in Safari/Firefox or on phones). Everything else works anywhere.
Firmware is hardware-confirmed: 498 B RAM / 23 % flash on an ATmega328 (Uno). The optical link decodes through 70 % packet loss in simulation. Today it's slow (~10–15 bps), line-of-sight, one-way and unauthenticated — fine for hobby and education; add an HMAC signature for anything sensitive.
MIT — free for anyone to use, modify and even sell; it just keeps the copyright
notice attached, so you always get credit. A ⭐ and a link back are appreciated. "BeamClaw" and
the logo are trademarks of Akash Jayswal (see LICENSE.md) — fork under a different
name.
Built on the shoulders of the Claw ecosystem (OpenClaw, ESP-Claw, MimiClaw), plus ggwave, Microvium and the Timex Datalink — pioneers of tiny agents and data-over-light/sound.
