A secure, modular agent harness for zero-trust environments.
KelvinClaw starts from a minimal trusted core and expands outward. Capability is added deliberately — every plugin ships as a signed WASM binary, declaring its scopes upfront. Security isn't duct-taped on. It is the foundation.
The runtime never takes a plugin on faith.
Every plugin declares its scopes and capabilities before it runs — including our own first-party ones. Trust operates in levels: from unsigned local builds up to verified, registry-vetted releases. Nothing installs without passing a quality gate.
- Signed WASM plugins. Ed25519 manifests, SHA-256 entrypoints, no exceptions for first-party.
- Capability declarations. Filesystem, network, and tool scopes gated before execution.
- Local-first. Run end-to-end with no API keys via the built-in echo provider.
Trust operates in tiers.
Plugins move from local development to first-party release through escalating proof. Each tier defines what verification is required and what the runtime is willing to admit. Nothing installs without passing the gate appropriate to its tier.
trusted_publishers.json.Two plugin types. Signed WASM. No exceptions.
KelvinClaw ships with no plugins by default. Discover and install through the integrated plugin manager, backed by a hosted index that tracks versions, checksums, and trust tiers. Point at ours, or fork and run your own.
wasm_tool_v1 — whitelisted web host access
wasm_tool_v1 — read-only wikipedia fetch
wasm_model_v1 — claude messages API
wasm_model_v1 — chat completions
wasm_model_v1 — local inference, no egress
wasm_model_v1 — multi-provider routing
Memory and orchestration live in separate planes.
A compromised plugin in the control plane has no direct path to memory operations. The memory data plane is an independent process communicating over gRPC, validating JWT delegation per operation, and running isolated WASM memory modules.
Orchestration & trust
- kelvin-brain · agent loop
- kelvin-gateway · WebSocket ingress
- kelvin-host · trusted executive
- trust policy enforcement
- telemetry & lifecycle events
Memory, isolated
- kelvin-memory-api · gRPC contracts
- kelvin-memory-controller · server + policy
- kelvin-memory-module-sdk · WASM modules
- per-op JWT delegation check
- independent process boundary
The control plane assigns privilege by ingress origin: operators on the WebSocket get elevated access; Telegram and Discord get a reduced scope; unpaired guests interact under different permissions entirely.
4B-class models can do meaningful work.
With kelvin.ollama, no prompts, tokens, or tool outputs leave the host. The minimal core and failure containment change what is realistic with local inference — a flubbed tool call trips a circuit breaker instead of derailing the session.
Keep data inside your infrastructure
Sending agent interactions to a cloud API means sending data outside your infrastructure — conflicting with legal, contractual, or internal policy requirements. A local model plugin removes that dependency entirely.
Circuit breakers, fuel budgets, bounded retries
The runtime doesn't rely on the model for security. When a tool call fails, it trips a breaker. Sessions stay stable even when small models misstep.
Building in the open. Warts and all.
We built the trust model first because it is the part you can't tape on later. Everything else is a work in progress — here is exactly what works and what doesn't today.
Works today
- Core runtime — prompts, tool execution, lifecycle events
- Plugin index, search, and installation
- Failure containment — circuit breakers, fuel budgets, bounded retries
- Telegram and Discord ingress
- Session management and notes
- Whitelisted web hosts and restricted filesystem access
- Ed25519 signed-manifest verification
- Ollama, Anthropic, OpenAI, OpenRouter providers
Not yet · in progress
- Shell execution in the ABI — tough security problem, unsolved
- MCP and skills integrations — same category
- Plugin types for memory modules & ingress channels
- Tool plugins only support one tool per plugin (coming soon)
- Community plugin submission helpers aren't fully tested
- Whatever bugs you find — kick our tires
Run the full stack locally. No API key required.
Try KelvinClaw with the built-in echo provider — no OpenAI or Anthropic key needed. When you are ready, swap in a real model plugin with kpm install.
Linux · macOS · Windows bundles published. SHA-256 for every artifact. MIT licensed.