The runtime is already running. Take a token.

loomcycle.cloud is the fastest path to a live agentic runtime: sign in with Google, mint a named tenant token, point @loomcycle/client at app.loomcycle.cloud. No VPS, no compose file, no brew install. The same Go binary you would self-host — Apache-2.0, unchanged.

See the three steps

Free while in preview · Bring your own provider key · v1.23.1

The loom, running

loomcycle Version v1.23.1

0M

Circuits, 8-hour soak

0M

Agent runs completed

0

Waves at 100% completion

0

Goroutine or memory leaks



The cast
Loop

The agent loop

model → tool_use → tool_result

The hardened cycle the whole runtime exists to run. Seven inference modes behind tier-based routing with a fallback cascade, per-agent sampling, and context compaction at a clean turn boundary. Pause, resume, snapshot — including cross-instance resume of a parked mid-run. A run survives the client disconnecting and is re-attachable by run_id, replaying from any sequence number.

Memory

Memory, in three facets

Memory · sql_query · $embed

Key/value; vector search over sqlite-vec or pgvector on a pluggable MemoryBackend; and per-scope SQL — real tables, joins and aggregates in a database the runtime owns, isolated from the main store. Default-deny capability gate, statement timeouts, byte quotas, nested transactions, and a full audit trail on every statement.

Tools

Nineteen built-in tools

Read Write Edit Grep Glob · Bash Bashbox · HTTP WebFetch WebSearch

Claude Code parity on the file tools, plus a true in-process shell sandbox — Bashbox runs commands with no OS process and no network, and honours read-only volumes through a RAM write overlay. Filesystem access exists only through a bound Volume: sandbox by default. MCP servers ingest as tools on one side; loomcycle serves as an MCP server on the other.

Substrate

The runtime-mutable substrate

Agent Skill MCPServer Schedule Webhook MemoryBackend Volume A2A Team

Nine content-addressed, tenant-scoped, versioned definition families, authored at runtime from any transport — no redeploy, no config reload. Fork, promote and retire each one; content_sha256 is the authority, not a name. Your tenant token authors all of it without ever holding cross-tenant admin.

Teams

Agent teams & task workflows

TeamDef · success / pushback / conditional

A team is an author-defined state machine: states, transitions, and a per-state handler that is one agent, a parallel fan-out with a consolidator, or a terminal. Loops are bounded by a per-state iteration cap. It renders as a Mermaid state diagram, walks end to end through the sub-agent machinery, and reports progress on a Document task board a human can steer.

Five primitives, one loop. The runtime is not a wrapper around a model — it is the thing that keeps thousands of agents running 24/7.


What loomcycle is

The agentic runtime, in a sidecar

One Go binary, ~50 MB. It runs alongside your application, not inside it — your app calls it over HTTP, gRPC, MCP, or the TypeScript and Python adapters, and stays in whatever language you wrote it in.

The hardened model → tool_use → tool_result loop, multi-provider routing, memory and channel primitives, MCP server identity, OpenTelemetry traces and multi-replica coordination all live in the binary.

The market gives you three shapes: a library embedded in your process, a managed service welded to one vendor's IAM, or a gateway that proxies model calls without running agents. loomcycle is the fourth — a self-hostable runtime that owns the loop and speaks every wire format your stack already uses. Cloud is that binary, hosted, so you can start in a minute instead of an afternoon.


What a tenant gets

01

Seven inference modes

Anthropic, OpenAI, DeepSeek, Gemini, Ollama (cloud + local), the synthetic code-js provider and a mock. Tier-based routing with a fallback cascade, model aliases, and a live routing view showing what actually serves you now. More providers land as they clear testing — the catalog is config-declared, so adding one is an option you set, not a release you wait for.

02

Nineteen built-in tools

Claude Code parity — Read, Write, Edit, Grep, Glob, NotebookEdit — plus HTTP, WebFetch, WebSearch, Bash, Bashbox, Agent, Skill, Memory, Channel, Path, Document and Context. Filesystem access only through a bound Volume; sandbox by default.

03

A runtime-mutable substrate

Agent, Skill, MCPServer, Schedule, Webhook, MemoryBackend, Volume, A2A and Team defs — content-addressed and versioned, authored at runtime from any transport. Your tenant token authors all of it without ever holding cross-tenant admin.

04

Memory in three facets

Key/value, vector (sqlite-vec / pgvector) on a pluggable MemoryBackend, and per-scope SQL — real tables, joins and aggregates behind a default-deny capability gate, statement timeouts, byte quotas and a full audit trail.

05

MCP on both sides

Ingest MCP servers as tools, and serve loomcycle itself as an MCP server on a per-principal transport — your substrate:tenant token drives a fully tenant-confined session, so an MCP agent's documents land where your Web UI reads them.

06

Budgets, usage and cost attribution

A per-call token ledger tagged with which key paid, a grouped usage report, and soft/hard monthly token limits per tenant and per user. A hard limit refuses new runs at admission; an in-flight run warns and finishes.


How it works

Step 01

Sign in with Google

OAuth on loomcycle.cloud, served from Cloudflare. Your Google subject becomes the authoritative principal — no password, no separate account. First sign-in provisions your tenant.

Step 02

Get a token — yours or your group's

Mint a bearer bound to (tenant, subject, scopes) through the OperatorTokenDef substrate, with the admin token held server-side — or add a token a colleague minted for their tenant and sent you, which puts you in the same documents, memory and Path tree. Either way it is shown once and wrapped into a vault in your browser: AES-256-GCM under a non-extractable key in IndexedDB. No .env file to leave lying around.

Step 03

Pick a token and sign in

Pick a token by name and sign in — it opens app.loomcycle.cloud/ui already authenticated: the runtime consumes the bearer, sets an HttpOnly session cookie, and drops it from the address bar. The runtime itself sits behind a reverse proxy on its own VPS.


Isolation

01

Your credentials, encrypted per tenant

Provider keys live in a CredentialDef store: AES-256-GCM with a per-tenant HKDF-derived key, row-bound AAD, fail-closed, metadata-only reads. Bring your own Anthropic or OpenAI key and it is your key that pays and your bill that arrives.

02

Cross-tenant reads are an opaque 404

Every store read goes through a central tenant-scoping accessor. Writes stamp the authoritative tenant resolved from your bearer, never from the wire. Tokens minted for you carry substrate:tenant — full power inside your tenant, none outside it.

03

Secrets never reach the model

The redact context-transform plugin scrubs resolved secrets on the outbound path, and host-command credentials are injected into the child process only — model-invisible. Dial-time SSRF guards apply to every HTTP, WebFetch and MCP call.



Claude Code

Drive your cloud tenant from the IDE

# in Claude Code
/plugin marketplace add denn-gubsky/claude-code-plugin-loomcycle
/plugin install loomcycle

01

What the plugin adds

Six slash commands — /loomcycle:run, :runs, :cancel, :snapshot, :eval, :connect. Four skills: spawn-evaluator, replay-failed-run, diff-agentdefs, import-claude-code. Two opt-in hooks: run telemetry and auto-snapshot-on-error, both off by default.

02

Authorization

Install prompts you for the base URL and the bearer, and stores the token in your OS keychain — the same posture as the browser vault, one layer down. Point the base URL at https://app.loomcycle.cloud and paste a token from your vault; the MCP session then runs as your (tenant, subject), so documents and memory an agent writes from the IDE land where your Web UI reads them.

03

One runtime, not two

A substrate:tenant token drives a fully tenant-confined MCP session: the admin-only meta-tools — minting, runtime admin, snapshots — are withheld per-tool. Against a cloud tenant always use the thin-client form, --upstream, so the MCP server proxies your running instance instead of booting a second one; that is also what makes cancel_run and interruption_resolve work across the connection.

The plugin does not bundle or start a runtime — with loomcycle.cloud you do not need one locally. Source and issues: denn-gubsky/claude-code-plugin-loomcycle.


loomboard

A chat app for your cloud tenant — desktop or browser

A thin-client chat UI for loomcycle — runs, streaming, history, documents, memory — Apache-2.0. Native desktop app, latest v0.1.2:

macOS · DMG  ·  Windows · EXE  ·  Linux · AppImage  ·  all builds (.deb / .msi) →

# or run it locally — serves the app + reverse-proxies /v1 to your tenant
npm install -g @loomboard/app

# or embed the chat as a React component
npm install @loomboard/chat

01

Thin client, your loop

No loomboard backend — it talks straight to your tenant over loomcycle’s /v1 wire with @loomcycle/client. Anything it writes (runs, documents, memory) lands where your Web UI reads it.

02

Open in your browser

No install: board.loomcycle.cloud runs the same app, hosted next to your runtime. Sign in from your token vault and it hands loomboard your bearer over an origin-checked postMessage — the same posture as the Web UI login, never in the URL.

03

One token, everywhere

Desktop, CLI, and browser all authenticate with a bearer from your vault against https://app.loomcycle.cloud. Desktop keeps it in the OS keychain; the hosted app in browser storage — loomcycle owns real persistence.

Downloads are GitHub releases of denn-gubsky/loomboard; the hosted browser app is the same source, served alongside your runtime.


Quickstart

Two minutes from token to first run

// npm i @loomcycle/client
import { LoomcycleClient } from "@loomcycle/client";

const lc = new LoomcycleClient({
  baseUrl: "https://app.loomcycle.cloud",
  token: process.env.LOOMCYCLE_AUTH_TOKEN!,   // the token you just minted
});

for await (const ev of lc.runStreaming({
  agent: "chat/medium",
  prompt: "Read ./CHANGELOG.md and summarise the last release.",
})) console.log(ev.type, ev);

Cost

Free while in preview

No card. Open signup. A monthly token budget per tenant, enforced by the runtime's own limit primitive — you see the counter, we do not surprise you.

Your keys, your bill

Bring your own Anthropic, OpenAI, DeepSeek or Gemini key. It is stored encrypted per tenant and used only for your requests. Inference cost never routes through us.

Paid tiers — reserved

Not priced yet. When they land they will be about capacity and support, not about unlocking primitives: the runtime is Apache-2.0 and stays whole.

Sign in. Take a token. Run an agent.

Google OAuth, one named token, and app.loomcycle.cloud is yours. Self-hosting stays a brew install away — nothing here is a lock-in.

Page ground #f6f7ed
Hero animation size 50%
Hero frame
Hero overlays
Loom clips
Mascot band