[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84203":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":10,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":26,"discoverSource":27},84203,"loom","valkor-ai\u002Floom","valkor-ai","An open delivery harness that turns Claude Code, Codex, OpenCode, and other coding agents into repeatable software delivery systems.","",null,"TypeScript",218,12,2,0,30,135,195,3.34,"Apache License 2.0",false,"main",[],"2026-06-12 02:04:38","\u003Cdiv align=\"center\">\n  \u003Cimg src=\".\u002Fassets\u002Floom-logo.svg\" alt=\"Loom\" width=\"560\">\n  \u003Cp>\u003Cstrong>Dynamic workflows for agentic software delivery.\u003C\u002Fstrong>\u003C\u002Fp>\n  \u003Cp>An open delivery harness that turns Claude Code, Codex, OpenCode\u002Fopencode, OpenClaw, Cline, Cursor Agent, and other coding agents into repeatable software delivery systems.\u003C\u002Fp>\n  \u003Cp>\n    \u003Ca href=\".\u002FREADME.zh-CN.md\">Simplified Chinese\u003C\u002Fa>\n    ·\n    \u003Ca href=\"#why-a-harness\">Why a Harness?\u003C\u002Fa>\n    ·\n    \u003Ca href=\"#use-cases\">Use Cases\u003C\u002Fa>\n    ·\n    \u003Ca href=\"#quick-start\">Quick Start\u003C\u002Fa>\n    ·\n    \u003Ca href=\"#how-to-use\">How to Use\u003C\u002Fa>\n    ·\n    \u003Ca href=\"#faq\">FAQ\u003C\u002Fa>\n  \u003C\u002Fp>\n  \u003Cp>\n    \u003Ca href=\".\u002FLICENSE\">\u003Cimg alt=\"License: Apache-2.0\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache--2.0-blue.svg\">\u003C\u002Fa>\n    \u003Cimg alt=\"Node.js\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-20%2B-339933?logo=node.js&logoColor=white\">\n    \u003Cimg alt=\"Status\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-open-brightgreen\">\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n## What Is Loom?\n\nLoom is an open-source delivery harness for existing coding agents. It does not replace the model or editor you already use; it turns each delivery goal into a structured loop of planning, building, verification, repair, preview, and handoff.\n\nLoom uses dynamic workflows to choose the right delivery path for each goal, then makes that path durable: project context, task contracts, backend state, test results, preview evidence, repair notes, and handoff reports are persisted so the next session, agent, or CLI can continue without starting over.\n\nCoding agents can write code. Loom helps them keep the delivery promise from idea to release, with fewer wasted tokens.\n\nUse Loom when a request is larger than a one-shot edit: a feature needs clarification, architecture, task splitting, implementation evidence, review, repair, preview, deployment, or a clean handoff.\n\n## Why a Harness?\n\nWebsite and app generation is becoming table stakes. The harder problem is reliable delivery: keeping the agent aligned after compaction, preserving requirements across many turns, verifying its own work without bias, repairing failures, and resuming from the right step after an interruption.\n\nLong-running agent work tends to break down in predictable ways:\n\nFailure mode | Loom response\n--- | ---\nPartial completion | Bounded tasks, explicit result files, continue routing, and final-response guards keep agents from declaring done after partial progress.\nGoal drift | Confirmed scope, architecture contracts, task plans, and compact context packs preserve the original objective across sessions.\nSelf-check bias | Review, verification, repair requests, and evidence records separate implementation from validation.\nToken waste | Project summaries, task graphs, backend\u002Fruntime state, test results, and deployment evidence reduce repeated whole-repo reads.\nHandoff gaps | Delivery reports, preview checks, logs, and repair history make the final state inspectable by humans and other agents.\n\nThe hard part is the harness around the model: durable state, scoped work, routing, verification, recovery, and human-readable evidence. Loom uses dynamic workflows as the operating pattern, then lifts them to the project level so delivery can survive interruptions, compaction, adapter switches, and future handoffs.\n\nThat is where Loom is different from prompt files, one-off workflows, and single-agent scripts: it stores delivery state in `.loom\u002F`, exposes an agent-neutral CLI, and makes verification, repair, preview, and handoff first-class protocol steps.\n\n## Use Cases\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample3-web.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample3-web.webp\" alt=\"AI product launch site demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Web - AI product launch site\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample4-web.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample4-web.webp\" alt=\"Creator analytics workspace demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Web - Creator analytics workspace\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample5-web.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample5-web.webp\" alt=\"Interactive campaign microsite demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Web - Interactive campaign microsite\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample1-game.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample-game1.webp\" alt=\"Flight simulator demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Game - Flight simulator\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample2-finance.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample2-finance.webp\" alt=\"Quant trading workbench demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Finance - Quant trading workbench\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"50%\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample6-research.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample6-research.webp\" alt=\"Global biodiversity research demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>Research - Global biodiversity research\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" colspan=\"2\">\n      \u003Ca href=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Fexample7-app.mp4\">\u003Cimg src=\".\u002Fassets\u002Fexample7-app.webp\" alt=\"Nutrition health app demo\" width=\"420\">\u003C\u002Fa>\n      \u003Cbr>\n      \u003Cstrong>App - Nutrition health app\u003C\u002Fstrong>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## From Demo to Delivery\n\nVibe Coding and AI Coding are making software creation accessible to more builders than ever. More people can now turn an idea into a demo, prototype a product, or build a tool for themselves with the help of coding agents.\n\nBut there is still a large gap between a demo that works once and a production-grade application that can be trusted, shipped, repaired, and evolved.\n\nThat gap is not only about model capability. Even as models improve, builders still need to clarify requirements, preserve project context, make architectural decisions, prepare backend\u002Fruntime state, run checks, inspect failures, repair issues, verify again, preview the result, and collect delivery evidence.\n\nLoom exists to close that gap.\n\nIt is an open-source delivery layer for existing coding agents. It helps agents move from one-shot coding to repeatable software delivery: clarify the request, plan the work, split tasks, preserve context, execute checks, repair failures, and report evidence.\n\nThe goal is simple: help builders move from vibe-coded demos and personal tools to reliable, production-ready applications with less manual effort and fewer wasted tokens.\n\nCapability | What it changes\n--- | ---\nDynamic workflows | Turn each delivery goal into an adaptive loop for clarification, planning, execution, verification, repair, and handoff.\nDelivery harness | Route work through requirement clarification, planning, building, checking, previewing, reviewing, repairing, and reporting.\nToken-saving context | Persist project summaries, task graphs, backend\u002Fruntime state, tests, and deployment results so agents do not reread the whole repository every turn.\nTask contracts | Turn broad goals into bounded tasks with source refs, acceptance intent, result files, and continuation rules.\nExecutable tools | Give agents CLI commands for context collection, task routing, result recording, deployment checks, and delivery evidence.\nBackend readiness | Track databases, auth, storage, functions, environment variables, services, and runtime requirements as part of the delivery state.\nUIX guidance | Preserve visual direction, interaction flows, responsive states, accessibility expectations, and product-specific interface details as delivery requirements.\nVerification loop | Turn smoke tests, Playwright-style checks, logs, error summaries, repair requests, and re-verification into a repeatable loop.\nMulti-agent protocol | Bring the same delivery process to Claude Code, Codex, OpenCode\u002Fopencode, OpenClaw, Cline, Cursor Agent, and other agents.\n\n## Prerequisites\n\n- Node.js >= 20\n- npm\n- The coding agent CLI for the adapter you install: Codex CLI for Codex, Claude Code CLI for Claude Code, or opencode CLI for opencode\n- Docker for `loom deploy`\n\n## Quick Start\n\n```bash\n# 1. Clone Loom and install dependencies\ngit clone https:\u002F\u002Fgithub.com\u002Fvalkor-ai\u002Floom.git\ncd loom\nnpm install\n\n# 2. Install or refresh the local adapter you use\n\n# Codex: installs or updates the Codex local plugin and the shared launcher.\nnpm run plugin:install-codex\n\n# Claude Code: installs the Claude Code plugin package, skills, hooks, and launcher.\nnpm run plugin:install-claude\n\n# opencode: installs local slash commands, plugin hook, references, and launcher.\nnpm run plugin:install-opencode\n\n# All adapters: useful when developing or testing multiple agents on this machine.\nnpm run plugin:install-adapters\n```\n\nEach adapter install script builds the CLI, writes the stable launcher at `~\u002F.loom\u002Fbin\u002Floom-cli`, records adapter metadata under `~\u002F.loom\u002Fadapters\u002F\u003Cagent>`, and refreshes that agent's local adapter files. Agent-facing commands use this launcher instead of depending on a `loom` binary in your shell `PATH`.\n\n`plugin:install-adapters` installs or refreshes Codex, Claude Code, and opencode together.\n\nAfter installing or updating an adapter, open a new agent session so the refreshed local plugin is loaded.\n\nTo verify the install without starting a delivery, run:\n\n```bash\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" --version\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" status --project-root \u002Fpath\u002Fto\u002Fproject\n```\n\n`status` is read-only. In a project that has not used Loom yet, `STATE_NOT_INITIALIZED` is a valid smoke-check result: it means the launcher works, and no delivery has been started. You can also verify the adapter command from a fresh agent session with `@loom status` in Codex, or `\u002Floom status` in Claude Code and opencode.\n\nYou normally do not need to run `loom init` by hand. Starting a delivery from an agent, such as `@loom build ...` or `\u002Floom build ...`, will initialize `.loom\u002F` in that project when needed. Direct CLI users can still initialize explicitly:\n\n```bash\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" init --project-root \u002Fpath\u002Fto\u002Fproject\n```\n\n## How to Use\n\nStart from your coding agent with its Loom command surface:\n\nCodex:\n\n```text\n@loom build a visitor registration system\n@loom plan this feature first\n@loom continue\n@loom review\n@loom deploy\n```\n\nClaude Code and opencode:\n\n```text\n\u002Floom build a visitor registration system\n\u002Floom plan this feature first\n\u002Floom continue\n\u002Floom review\n\u002Floom deploy\n```\n\nIn all adapters, the command starts the same Loom delivery protocol. The adapter sets its own agent profile and uses the shared launcher installed by the adapter install scripts.\n\nUse `continue` whenever you want Loom to resume or advance the current delivery safely. This is the right first action after reopening an agent session, after an interruption, after a command succeeds but the agent does not keep going, or when you are not sure which internal step is next. Do not guess internal commands such as `next-task`, `review`, or `repair` first; run `continue` and follow the returned instruction.\n\n```text\n@loom continue     # Codex\n\u002Floom continue     # Claude Code and opencode\n```\n\nOr run the CLI directly through the stable launcher:\n\n```bash\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" status --project-root \u002Fpath\u002Fto\u002Fproject\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" plan --project-root \u002Fpath\u002Fto\u002Fproject --request \"Add team invitations\"\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" continue --project-root \u002Fpath\u002Fto\u002Fproject\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" review --project-root \u002Fpath\u002Fto\u002Fproject\n\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" deploy run --project-root \u002Fpath\u002Fto\u002Fproject\n```\n\nAgent adapters usually set `LOOM_AGENT_PROFILE` and `LOOM_COMPACT_OUTPUT` automatically. If you are wiring a new adapter, run routing commands through the launcher and prefer compact routing output:\n\n```bash\nLOOM_AGENT_PROFILE=codex LOOM_COMPACT_OUTPUT=1 \"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" continue --project-root \u002Fpath\u002Fto\u002Fproject\n```\n\n## How It Works\n\nLoom creates project-local delivery state under `.loom\u002F` and uses it as the source of truth for the agent's next action. The core loop is short:\n\n1. Capture and confirm the delivery scope.\n2. Build a compact context pack.\n3. Generate planning, architecture, and task contracts.\n4. Execute one bounded task at a time.\n5. Record evidence and run verification.\n6. Review, repair, and re-check.\n7. Report the final delivery state.\n\n## Learn More\n\nNeed | Command or file\n--- | ---\nSee available commands | `\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" --help`\nInstall or refresh all adapters | `npm run plugin:install-adapters`\nInstall or refresh Codex adapter | `npm run plugin:install-codex`\nInstall or refresh Claude Code adapter | `npm run plugin:install-claude`\nInstall or refresh opencode adapter | `npm run plugin:install-opencode`\nRun a local deployment preview | `\"$HOME\u002F.loom\u002Fbin\u002Floom-cli\" deploy run --project-root \u002Fpath\u002Fto\u002Fproject`\n\n## FAQ\n\n\u003Cdetails>\n\u003Csummary>How is Loom different from \u003Ccode>CLAUDE.md\u003C\u002Fcode>, \u003Ccode>AGENTS.md\u003C\u002Fcode>, or \u003Ccode>.cursorrules\u003C\u002Fcode>?\u003C\u002Fsummary>\n\nThose files are useful entry points, but they tend to become large prompts. Loom adds stateful delivery routing, task artifacts, review results, repair requests, deployment evidence, and agent-neutral CLI commands around them.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Is Loom only for Codex?\u003C\u002Fsummary>\n\nNo. Loom is a CLI protocol for multiple coding agents. This repository currently ships local adapters for Codex, Claude Code, and opencode, and the workflow is designed for other agent platforms too.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Does Loom deploy to production?\u003C\u002Fsummary>\n\nNot yet. Production deployment will be added later. Current deployment support focuses on local Docker Compose previews, validation, logs, and repair guidance.\n\n\u003C\u002Fdetails>\n\n## Uninstalling Local Adapters\n\nIf you need to remove a local adapter from this machine, use the matching uninstall command:\n\n```bash\nnpm run plugin:uninstall-codex\nnpm run plugin:uninstall-claude\nnpm run plugin:uninstall-opencode\n```\n\nTo remove all local Loom adapters from this machine:\n\n```bash\nnpm run plugin:uninstall-adapters\n```\n\nThe uninstall scripts remove only user-level adapter install artifacts, such as Codex plugin source\u002Fcache entries, Claude Code commands\u002Fskills, opencode commands\u002Fplugins\u002Freferences, and `~\u002F.loom\u002Fadapters\u002F\u003Cagent>` metadata. They do not delete project-local `.loom\u002F` delivery state. The shared launcher `~\u002F.loom\u002Fbin\u002Floom-cli` is removed only when no Loom adapter metadata remains under `~\u002F.loom\u002Fadapters\u002F`.\n\nAfter uninstalling an adapter, open a new agent session so that agent reloads its local command\u002Fplugin state.\n\n## Supported By\n\n\u003Cimg src=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Flogo\u002FZhejiang_University_Logo.svg\" alt=\"Zhejiang University\" width=\"220\"> \u003Cimg src=\"https:\u002F\u002Fzonodqioyxil6r3k.public.blob.vercel-storage.com\u002Flogo\u002FUniversity_College_London_logo.svg\" alt=\"University College London\" width=\"220\">\n\n## License\n\nLoom is open source under the [Apache License 2.0](.\u002FLICENSE).\n","2026-06-11 04:12:34","CREATED_QUERY"]