Skip to content

Latest commit

 

History

297 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operloom

Scalable agent systems. Your workflows. Your code.

A TypeScript workbench built for agents that grow beyond a chat window: independent conversation runtimes, durable workflows, controlled actions, and an architecture you can extend into your own product.

Verify Version TypeScript License

Get started · Build an agent · Architecture · Documentation

Built for scale and extension

flowchart LR
    UI["Next.js + React\nassistant-ui · WorkOS"] --> Control["Cloudflare Workers\nAuthorization · policy · runs"]
    UI -. "Scoped realtime" .-> Chat["Per-thread Durable Objects\nLive chat + messages"]
    Control --> Chat
    Control --> Data["D1 + R2\nControl state · audit · artifacts"]
    Control --> Runner["Node.js / Fly\nHeavy tools"]
    Runner --> Graph["LangGraph\nDelegated graph workflows"]
    Runner -. "Signed results" .-> Control
Loading
  • Separate chat from heavy execution. Each conversation has its own Durable Object; process-based tools run in Node.js. Chat and tool execution can scale independently, and the runner can stop when idle.
  • Keep authority outside the model. The control plane owns authorization, policy, and run state in D1; R2 holds artifacts. Tools receive scoped execution context rather than deciding their own permissions.
  • Compile extensions into the system. Trusted TypeScript packs register tools, workflows, state, and views through versioned contracts. Domain behavior stays in the pack instead of spreading through the core UI.

Stack: Next.js 16, React 19, TypeScript, assistant-ui, Tailwind CSS 4, Cloudflare Agents/Workers/Durable Objects/D1/R2, LangGraph, WorkOS, OpenRouter, and Sentry. Architecture, boundaries, and tradeoffs →

Run it locally

Use Node.js 24 LTS, pnpm 10.33.0, and an OpenRouter API key. Node 26 is also supported. The repository example uses ripgrep; allow about 10 GiB of available RAM for the full local stack and browser.

git clone --branch v1.0.0 https://github.com/dawi369/operloom.git
cd operloom
pnpm install --frozen-lockfile
pnpm operloom init

Add OPENROUTER_API_KEY to the generated .env.local and cloudflare/control-plane/.dev.vars, then start:

pnpm operloom doctor --offline
pnpm operloom dev

Open localhost:3000. Initialization preserves existing credentials and data; hosted accounts are not required for the local workspace. Use /agents to choose Operloom. To try a repository report, open /adminAgentsRepository AnalystUse agent, then Assess release readiness. Setup and resource limits →

Build your own agent

pnpm operloom pack create --id my-agent --name "My Agent"
pnpm install
pnpm operloom pack compile
pnpm operloom pack check --pack my-agent

The scaffold registers your pack in workbench.config.ts. Own its behavior and capabilities in index.ts and prompt.xml, execution in control-plane.ts and runner.ts, and presentation in web.ts. Packs are trusted build-time code; permissions and credentials remain server-controlled.

Here is part of Repository Analyst's workflow: call its read-only snapshot tool, derive a report, and persist it through scoped managed state. This is an excerpt from the workflow body, not a complete pack.

const snapshot = await context.tools.invoke("repo.snapshot", input);
if (!snapshot.ok) return snapshot;

const report = buildReadinessReport(snapshot.output as RepoSnapshotOutput);
const artifactId = `${context.run.id}-repo_readiness_report`;
await context.managedState.upsert({
  namespace: "repo-monitor",
  stateType: "repository-readiness",
  stateKey: "current",
  status: report.status,
  summary: report.summary,
  data: {
    report,
    runId: context.run.id,
    workflowIntentId: context.run.workflowIntentId,
    artifactRefs: [artifactId],
  },
});

The rest of the workflow returns the report as an artifact. The pack owns the report logic; the runtime supplies tool dispatch, tenant scope, and run history.

Start with Operloom, the general assistant. Repository Analyst adds a readiness workflow; Polymancer · Example demonstrates read-only research. Swordfish · Preview is parked, and Complex Operator is a conformance fixture.

First-agent walkthrough → · Extension contract →

Adapt and deploy

pnpm operloom fork init --id my-system --name "My System" --origin https://agents.example.com
pnpm operloom fork --check

The maintained public demo uses Railway + Cloudflare + Fly and can scale compute to zero when idle. Vercel remains the simplest optional web host for adopters. Supply your own resources and secrets; schedules, retained data, connections, and mutations have explicit deployment gates.

Deployment guide → · Forking and upgrades →

Engineering notes

A repository scan took milliseconds, but its workflow failed after 30 seconds: starting the stopped runner consumed most of the budget. The fix kept the runner able to stop when idle and preserved existing agent snapshots. Cold starts, deadlines, and the 1.0 fix →

Status

Operloom 1.0.0 stabilizes the web developer workbench: chat, agent packs, read-only workflows, artifacts, and history. Hosted credential brokerage, mutations, and unattended automation are experimental and disabled by default. The scaling boundaries above are architectural; no measured throughput, SLA, independent adoption evidence, or future maintenance is promised. 1.x compatibility and release scope →

Mobile is WIP / future work, preserved on codex/mobile-wip.

Contributing · Security · Release notes

License

Source-available under PolyForm Noncommercial 1.0.0. Commercial use requires a separate agreement. This is not an OSI-approved open-source license.

Built on the assistant-ui LangGraph starter, with gratitude to its maintainers.

About

Build and run agent systems you own. TypeScript, durable workflows, approvals, and an inspectable workspace.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages