Meet Wippy.
An open-source, actor-model runtime for agentic systems. A few decisions shape the whole thing. Here is each one.
Just Lua.
Small enough to read on day one, strict enough to trust.
Lua is small: an AI writes it and you read it without a manual. Wippy runs it typed, linted, and capability-scoped, so mistakes are caught before they execute and generated code only touches what you grant. Underneath sits the full Go ecosystem, reachable as modules, with WASM and Temporal for heavier compute; the runtime is open source (MPL-2.0) and extensible in Go.
local funcs = require("funcs") -- typed; returns (value, nil) or (nil, error) local function plan_for(id: integer): (string?, error?) local user, err = funcs.call("api:get_user", id) if err then return nil, err end return user.plan end
The actor model.
Isolation, concurrency, and recovery from one rule.
Code runs as lightweight processes that share nothing and talk by message. A crash stays contained; the scheduler runs thousands of them with no locks; and a supervisor restarts whatever fails instead of letting it cascade.
One node, or many.
Address a process by name, not a machine.
Actors are addressed by name, not by machine, so the same code runs on one node or many. Gossip tracks which nodes are alive with no central coordinator; a bounded Raft core agrees on the few values that need one source of truth. Spawn, send, and supervise behave the same whether the target is local or remote.
Everything is an entry.
One versioned store, not config plus code plus a database.
Every part of an app is a typed entry, and its kind decides what it becomes. Change one while it runs and the system reacts; every change is versioned and rolls back in a call. That's what makes editing a live app, by a person or an agent over MCP, safe.
Security is a capability.
Nothing runs with power it wasn't granted.
Every request carries an actor and a scope; declarative policies weigh the action, the resource, and metadata, and decide before it runs. In a multi-tenant system that's the isolation boundary itself: one policy set enforced centrally, not re-checked in every handler.