Memory
shipped v0.8.0Persistent state per agent or per user. Atomic incr. TTL. Cross-run continuity that survives process restarts.
// set a memory key {"tool":"memory", "input":{"op":"set", "scope":"user", "key":"last_seen", "value":"…"}}
UNIX-style operator/caller trust separation. Default-deny everything. The substrate where agents live, talk, and learn — one Go binary, shaped to grow from a single-replica VPS to multi-replica HA.
Apache-2.0 · v0.8.14 · Active development through v1.0
Memory and Channel are the substrate. AgentDef and Evaluation are the self-evolution loop. Context is the introspection primitive that closes it.
Persistent state per agent or per user. Atomic incr. TTL. Cross-run continuity that survives process restarts.
// set a memory key {"tool":"memory", "input":{"op":"set", "scope":"user", "key":"last_seen", "value":"…"}}
Persistent inter-agent message bus. One agent publishes; another subscribes; no orchestrator handoff. Cursor-based delivery.
// publish to a channel {"tool":"channel", "input":{"op":"publish", "name":"jobs.scored", "payload":{...}}}
Agents fork themselves into versioned definitions with lineage tracking. The substrate for self-evolution.
// fork a new definition {"tool":"agentdef", "input":{"op":"fork", "from":"matcher.v4", "prompt":"…"}}
Rate runs against versioned definitions. Selection stays policy — never auto-promote. Humans (or downstream agents) choose.
// score a run {"tool":"evaluation", "input":{"op":"score", "run":"r_82a1", "rubric":"match.v2"}}
The introspection primitive. Ten ops covering self · tools · agents · history · help. The closing loop that makes the substrate learnable — an agent that can read itself can rewrite itself.
// what tools do I have? {"tool":"context", "input":{"op":"tools"}} // → list with shapes, costs, allowed-hosts
The UNIX shape you already know — operator, caller, agent. Operator config is the floor; callers can narrow per-request but never widen. The bearer token is the authority.
allowed_hostsShared-server deployments processing untrusted input. Multi-tenant SaaS. Anywhere the caller isn't the operator.
allowed_hostsLocal development. Internal trusted operators. The single-machine workflow where you are the caller.
Resolver picks (provider, model) per tier and effort. Cross-provider fallback with reasoning_content strip. Cache_control where supported. Native HTTP-only.
→ Pin-after-success ends the transcript-translation bug class. Cache_control where supported. No bundled SDK.
jobs-search-agent — the first production user of an agentic runtime substrate — migrated off vendor SDK backends to loomcycle in May 2026 after a single bug class generated unattributable production cost.
The bug: subprocess auth inheritance. The CLI-based SDK runner inherited the operator's Anthropic Pro auth across spawned children, so multi-tenant agent runs billed against the operator's subscription instead of the tenant's API key. The SDK can't help — the leakage is at the OS process-inheritance layer.
Loomcycle's HTTP-only loop has no subprocess. Credentials are supplied per-request, never inherited. The entire bug class is structurally eliminated, not patched.
Self-host on a single replica in under three minutes. Set an API key, copy the example config, run the binary.
No "Q3 2026" calendar guessing — versions and triggers. Each line has a concrete what and a concrete why.
Per-request user_bearer auth. Operator-yaml-templated MCP header substitution. The credential boundary now terminates at the HTTP frontier.
Loomcycle exposes itself as an MCP server. Claude Code and external orchestrators drive it through standard MCP. The substrate becomes addressable from outside.
Built-in primitive for "ask the operator." Rides system channels. Agents pause cleanly on uncertainty instead of confabulating an answer.
Runtime-wide quiesce + cross-version-portable JSON snapshot. Precondition for v0.9.x multi-replica HA.
Per-tenant fairness. OTEL traces. Multi-replica HA via Redis cancel pubsub.
Homebrew · Docker · Helm · operator cookbook · settings UI. External code contributions open here.
We'd like to hear what you're building. Production users inform v1.0 design, and integration-shape ideas are the things that get RFCs written. No sales process, no NDA, no waitlist — just a real conversation about whether loomcycle fits your shape.
denn@loomcycle.dev