Skip to main content
loomcycle
§ comparison

AWS Loom vs loomcycle.

Both projects live near the same problem shape. Both use "loom" in the name. They are different kinds of tools, they run in different places, and they compose with a very different set of primitives. This page lays them side by side so you can pick the one that fits.

Two different projects, same base word. AWS Loom (github.com/awslabs/loom, AWS Labs) is an opinionated control plane for Amazon Bedrock AgentCore. loomcycle (github.com/denn-gubsky/loomcycle, Apache-2.0) is a self-hosted agentic runtime. Related space, unrelated codebases, unrelated authors. This page uses "AWS Loom" and "loomcycle" throughout to keep the two clearly separate.

The one-line difference. AWS Loom is a control plane. loomcycle is a runtime. If your agents already run on Amazon Bedrock AgentCore and you need governance, tagging, and a management UI around them, AWS Loom is a fit. If you want the runtime itself, portable and self-hosted, with a substrate of eleven versioned primitives and six LLM providers including local Ollama, loomcycle is a fit.

What each one is

AWS Loom

what: control plane over Bedrock AgentCore

runs on: an AWS account, cloud-only

providers: Amazon Bedrock only

status: AWS Labs (experimental)

shape: FastAPI backend + management UI + paved-path blueprints

Wraps AWS Bedrock AgentCore Runtime, Bedrock AgentCore Memory, AWS Secrets Manager, and AWS Agent Registry behind a unified API and console. Agents ship as pre-written Python code (Strands Agents SDK) or as no-code deployments on AgentCore's managed harness. Explicit invariant: no AI-generated code at runtime. Governance via required tags (loom:application / loom:group / loom:owner) and ABAC over those tags.

loomcycle

what: self-hosted agentic runtime

runs on: a ~50 MB Go binary, laptop / VPS / container / k8s

providers: Anthropic direct, OpenAI, DeepSeek, Ollama, Gemini, Bedrock, more

license: Apache-2.0, versioned to v1.20.0

shape: HTTP + gRPC + MCP + WebSocket + TS + Python surface, ships as one process

The runtime that owns the agent loop. Eleven content-addressed substrate primitives (AgentDef, SkillDef, TeamDef, VolumeDef, ChannelDef, CredentialDef, ScheduleDef, MCPServerDef, WebhookDef, MemoryBackendDef, A2AServerCardDef) plus non-def surfaces (Documents, Path, History, Memory, Channel, Bashbox, client-executed tools). Multi-tenant with strict server-side identity folding on every read. Talks to any provider that speaks native HTTP.

Where they overlap

The two projects genuinely try to solve some of the same problems. Both externalize credentials rather than storing them inline. Both attach identity to every call and refuse cross-tenant reads. Both have a human-in-the-loop primitive that pauses on sensitive tool calls and asks for approval. Both give agents a memory surface with a lifecycle attached to it. Both integrate with MCP servers as tool sources. Both provide per-scope cost visibility. This isn't accidental. The shape of "run agents in production" converges on a similar set of concerns regardless of who builds it.

Capability matrix

Rows marked are where loomcycle's answer is materially different from AWS Loom's. Some of those rows favor loomcycle, some favor AWS Loom; the mark just flags a real divergence, not a value judgement.

Capability AWS Loom loomcycle
License AWS Labs (unstated in the launch post)experimental / unsupported status Apache-2.0versioned to v1.20.0, weekly ship cadence
Runs where Amazon AWS account onlyBedrock AgentCore Runtime hosts everything Laptop, VPS, homelab, container, k8sone ~50 MB Go binary + sqlite by default
LLM providers Amazon Bedrock onlyAnthropic models via Bedrock Anthropic direct, OpenAI, DeepSeek, Ollama, Gemini, Bedrock, morenative HTTP, no vendor SDK, provider-cascade fallback circuit
Local LLM inference Ollama, llama.cpp, LM Studio; qwen3.6 at 6-9 tok/s on a Ryzen 7 8700G iGPU
Distribution shape FastAPI control plane deployed on AWSplus AWS infrastructure setup Single binary, curl + chmod +x + runor a Docker image, or a Homebrew tap
Owns the agent loop ~delegates to Bedrock AgentCore the loop is the product
MCP client (consumes MCP servers) MCP servers configurable with OAuth2 MCPServerDef primitive, per-tenant credentials
MCP server (the runtime addressable via MCP) stdio MCP server; 21+ meta-tools including history, document, path, teamdef
Multi-agent workflows / state machines ~A2A integrations mentioned; no state-machine primitive TeamDef (RFC AP + RFC BD): states, transitions, parallel + consolidator, pushback loops, durable boards, interrupt-on-cap
Skills primitive (on-demand context) SkillDef (RFC BA): loads only when the agent asks for it; no default context cost
Documents (chunked-graph structured knowledge) Document (RFC AK): chunks, types, relations, Markdown round-trip
Path VFS (tenant-rooted directory tree) Path (RFC AL): Unix-like paths over Documents + Volumes + Memory entries
Filesystem volumes (per-tenant, sandboxed) VolumeDef (RFC AH): read-only / read-write mounts, resolveInsideRoot guarantee
In-process shell sandbox no explicit sandboxing mentioned Bashbox (RFC AJ): in-process shell parser, allowlisted builtins, host-command fallback
Persistent memory Bedrock AgentCore Memory Memory + SQL Memory + vector Memory + MemoryBackendDef
Client-executed tools (browser / IDE / phone) RFC BC: a client opens a WebSocket, registers tools, and executes them locally when the agent calls them
History (list, search, recap, resume, related) ~Agent Registry lists agents; no chat-history op set History (RFC BE): 10 ops including recap + resume + semantic related, tenant-safe fold on every read
Credentials externalized AWS Secrets Manager CredentialDef, per-tenant encrypted at rest, $cred: references
Multi-tenant isolation ABAC via loom:group tag, RBAC tiers tenant scope on every def + every read, fold-first by-id ops, opaque not-found
Human-in-the-loop Strands hooks + interrupts + MCP elicitations Interruption tool (in-loop + off-run); interrupt-on-cap for TeamDef
Cost attribution AWS cost console via required tags RFC AV: per-scope token/cost ledger; RFC AW: enforceable per-scope budgets
Governance review board / approval gate Agent Registry review workflow before production ~content-addressed versions + fork/promote/retire; explicit review-board flag not shipped yet
Chained identity token exchange (RFC 8693) end-user + agent identity through delegated MCP + API calls ~OperatorTokenDef + RunIdentity; RFC 8693 chaining queued as an RFC candidate
Deep managed-AWS integration Bedrock AgentCore, Secrets Manager, API Gateway, Agent Registry reaches AWS via native HTTP where useful; not AWS-native
Scheduled runs (cron + per-user forks) ~via EventBridge integration ScheduleDef primitive, in-flight tracker, x30k stress-tested
Input webhooks (HMAC-verified, idempotent) ~via API Gateway routing WebhookDef: three signature envelopes auto-detected, verify-before-parse
OpenAI-compatible gateway in-process /v1/chat/completions + /v1/embeddings; drop-in for any OpenAI client
shipped ~ partial or indirect not present material divergence between the two

Where AWS Loom fits better

Straightforward cases. Pick AWS Loom if:

Where loomcycle fits better

Also straightforward. Pick loomcycle if:

A note on the shared name

Loomcycle's project name is a compound (weaving + cycle) and has been on loomcycle.dev since 2025. AWS Loom launched in 2026 as an AWS Labs project. Same base word, different products, no shared code, no shared maintainers. The two projects will show up next to each other in searches for a while. If you're looking for the AWS product, you want github.com/awslabs/loom and the AWS blog. If you're looking for the self-hosted runtime, you want github.com/denn-gubsky/loomcycle and this site.

Try loomcycle

One binary. One config file. Route to any provider. Run on the machine you already have.

curl -L https://github.com/denn-gubsky/loomcycle/releases/latest/download/loomcycle-$(uname -s | tr A-Z a-z)-$(uname -m) -o loomcycle
chmod +x loomcycle
./loomcycle serve --config loomcycle.yaml