RepoDaily · 2026-08-05 · Infrastructure / Runtime

LoopX: A Local Control Plane That Keeps Long-Running Agent Work Reviewable and Restartable

#13 Infrastructure / Runtime Python +618 huangruiteng/loopx Open repository

LoopX is a lightweight Python state kernel for multi-day AI agent objectives. It holds durable goals, gates, todos, evidence, and quota while Codex, Claude Code, or Cursor execute bounded turns.

Repo typeInfrastructure / Runtime
Best forTeams running multi-day engineering, research, or experiment loops where objectives, evidence, and handoffs must survive across agent sessions and peer agents.
Risk levelMedium — early v0.x with a focused public/private boundary, but no proven production autonomy claims.
Time to evaluate2–4 hours to install, run loopx doctor and loopx demo, then trace one objective through claim, gate, and writeback.

Primary question: Does your agent work last long enough that chat memory and a timer are no longer sufficient to govern scope, evidence, and spend?

91/100

RepoDaily adoption score

RepoDaily rates this as 91/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Medium
100Evidence quality

6 source(s) across 4 source category/categories, plus a RepoDaily-specific evidence module when available.

100Installability

6 workflow step(s), 5 next-action step(s), and 3 command/install signal(s) were detected.

65Maintenance confidence

Trending momentum is +618 stars, with maintenance/release/issue signals counted when present.

93Production readiness

Risk is marked medium, with 5 security note(s) and 4 explicit skip condition(s).

100Differentiation

3 opportunity lens item(s), 4 alternative(s), and 5 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

90Agent / AI fit

8 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

LoopX is an agent-agnostic local control plane for what it calls loop engineering — the discipline of keeping long-running AI agent work legible, restartable, and reviewable across many bounded turns. The project positions itself explicitly as a state kernel, not a replacement for your agent runtime. Codex, Claude Code, Cursor, or a custom shell agent still executes each turn; LoopX holds the durable control state that decides what happens before, between, and after those turns.

The core abstraction is a compact layer that combines objective, gates, todos, scope, evidence, and quota. The README describes this as an agent-native Kanban for long-running work: cards carry identity, authority, evidence, and continuation, and moves are validated operators such as claim, gate, monitor, and writeback. The board is a projection; the LoopX state remains the source of truth.

Registered agents are peers rather than workers under a leader. Claims, leases, task boundaries, capabilities, and typed continuation decide who acts next, so no durable leader identity is required. This makes LoopX a fit for peer-agent teams where ownership and handoff matter — a multi-agent research workspace with a proposer, executor, and evaluator/promoter is shown directly in the README showcase imagery.

The project is honest about its limits. The README states plainly that LoopX is not an autonomous production controller. Dangerous permissions, publishing, production writes, and final ownership stay with the human. The two public evidence trajectories (OpenViking Issue-Fix and Auto ML Experiment) are described as spanning 200+ hours of elapsed loop lifetime — wall-clock project time, not 200 hours of continuous model execution or unattended autonomy.

Problem it solves

  • Chat memory and a timer are insufficient to govern work where objectives drift, owner decisions appear mid-loop, and evidence becomes stale across sessions.
  • A naive scheduler can keep spending tokens after no useful transition remains, because nothing in the loop encodes a quota-aware stop condition.
  • Peer-agent teams need a shared notion of ownership, leases, and handoff — without it, two agents can claim the same work or silently drop a handoff.
  • Long-running issue and PR loops lose scope and review state when context windows roll over or sessions restart, making the work illegible to a human reviewer.
  • Operators who are not engineers still need to read progress, and a raw agent transcript is not a usable status surface for them.

How it works

  1. An objective, issue, or project enters LoopX state, which materializes as objective plus gates plus todos plus scope plus evidence plus quota.
  2. Before each turn, LoopX checks whether human judgment is needed. If yes, it asks a concrete question and waits. If a safe fallback exists, it runs one bounded agent slice.
  3. The configured agent runtime — Codex, Claude Code, Cursor, or a shell agent — executes exactly one turn. LoopX does not replace this layer.
  4. After the turn, the agent writes evidence, handoff, and the next todo. Quota then decides whether and when the next tick occurs.
  5. The loopx turn run-once command is one atomic governed transaction: it may decide, invoke one bounded host segment, validate independently, write back, spend once, and project the latest scheduler phase.
  6. A Turn Loop Controller (the outer runtime owner) consumes the typed result and the shared scheduler_hint to decide whether to wait, route a user action, repair, replan, continue, or stop.

Product demo and interface preview

Auto Research multi-agent workspace with proposer, executor, evaluator/promoter, todo, quota, evidence, and targeted wake activity
Auto Research Multi Agent Showcase — Shows the proposer/executor/evaluator peer-agent topology and how quota, evidence, and wake decisions appear on one board. README.md image
Auto ML Experiment trajectory with experiment lineages, evidence gates, and promotion decisions
Long Running Loop Ml Experiment Trajectory — Illustrates how experiment lineages and evidence gates persist across a long-running ML loop. README.md image
Open-source issue-fix trajectory linking focused PR delivery with reusable LoopX capabilities
Long Running Loop Openviking Trajectory — Links focused PR delivery to the reusable LoopX operators behind an issue-fix loop. README.md image

Architecture: State Kernel, Turn Transaction, Host Adapter

LoopX separates three layers that projects often conflate. The state kernel holds objective, gates, todos, scope, evidence, and quota, and remains the single source of truth. The turn transaction (loopx turn run-once) is one atomic governed unit that may decide, invoke a bounded host segment, validate, write back, spend quota, and project scheduler phase. The host adapter translates one typed request and result and owns the opaque host session and tools, but does not own LoopX state, quota, completion, validation, or replan policy.

CONTRIBUTING.md is explicit about what must not live inside run-once: no sleep loop, no cron implementation, no recurring daemon, no operator notification path, and no multi-Turn replan loop. Those concerns belong to the Turn Loop Controller, the outer runtime owner. This separation keeps the atomic transaction honest and testable.

The mental model the docs repeat is an agent-native Kanban. Cards carry identity, authority, evidence, and continuation. Moves are validated operators — claim, gate, monitor, writeback — rather than free-form state mutations. Registered agents are peers; claims, leases, task boundaries, capabilities, and typed continuation decide who acts next.

Command Surface

  • loopx doctor — verify the local checkout and environment after install.
  • loopx demo — run the bundled demonstration loop without a live model call.
  • loopx turn run-once — execute one atomic governed transaction as defined in CONTRIBUTING.md.
  • loopx canary premerge --from-git-diff — run focused pre-merge checks derived from the current diff.
  • loopx check --scan-path <path> — run the public/private boundary scan before sending docs or examples.
  • python -m ruff check tests loopx/canary loopx/control_plane loopx/domain_packs loopx/presentation — the documented lint target list from CONTRIBUTING.md.
  • python -m mypy — type-check the strict-mode file list declared in pyproject.toml.
  • python -m pytest -q — the baseline test invocation.

Integration Surface: Runtimes, Extensions, and Capabilities

pyproject.toml declares three console scripts: loopx (loopx.entrypoint:main), loopx-lark-provider (loopx.extensions.lark.provider:main), and loopx-openviking-semantic-preference (loopx.extensions.openviking_semantic_preference.provider:main). The Lark extension and the OpenViking periodic report and semantic preference extensions are packaged with extension.toml metadata.

A capability surface for auto_research is declared via package data at loopx.capabilities.auto_research.worker_skill.SKILL.md, which aligns with the multi-agent proposer/executor/evaluator workspace shown in the README showcase. An opencode_goal_mode integration ships JavaScript and MJS files under loopx.opencode_goal_mode.

The docs index lists dedicated references for state interaction model, project agent todo contract, quota allocation (should-run and spend semantics), heartbeat automation prompt, status data contract, and the public/private boundary. These are the contracts an integrator reads before wiring a new runtime.

Try-It Path

The documented local install is git clone https://github.com/huangruiteng/loopx ~/loopx followed by ~/loopx/scripts/install-local.sh, then export PATH="$HOME/.local/bin:$PATH", then loopx doctor and loopx demo. The core package has zero declared runtime dependencies and requires Python 3.11 or later, so the install footprint is small.

For evaluation without code changes, the hosted frontstage at https://huangruiteng.github.io/loopx/frontstage/ and the Feishu user manual provide a longer onboarding path. The docs README recommends starting with guides/getting-started.md for a repository trial, then newcomer-command-path.md for the shortest command tour.

Maintenance Risk and Release Posture

The project is labeled v0.4.1 in pyproject.toml, and the README badge reads status: loop agents early. The product/release-readiness.md doc is referenced as the source for supported v0.x install, compatibility, and promotion gates — readers should treat the API and CLI surface as mutable.

mypy runs in strict mode on a declared file list that includes control_plane/quota/states.py, control_plane/runtime modules, control_plane/work_items lifecycle and delivery modules, and presentation renderers. This is a meaningful type-safety commitment for an early project, but it covers a subset of the codebase rather than the whole tree.

Experimental features are isolated under loopx/experiments/<experiment-id>/ with a policy that core modules must not import experimental packages. This reduces the risk that an early adopter accidentally depends on a prototype that can be removed as one unit.

Who should pay attention?

Good fit if

  • Multi-day engineering, research, benchmark, or experiment objectives where context will roll over and evidence must persist.
  • Issue and PR loops that must preserve scope, evidence, and review state across sessions and agents.
  • Peer-agent teams where ownership, leases, and typed handoff are first-class concerns.
  • Projects with owner, safety, publication, or private-data gates that require human judgment before proceeding.
  • Creator, research, or operations loops whose progress must stay legible to a non-engineering operator.

Skip for now if

  • Single-turn tasks that complete in one session — LoopX adds overhead with no durability benefit.
  • Teams that need an autonomous production controller — LoopX is explicit that dangerous permissions and final ownership stay with the human.
  • Projects requiring a stable v1 API contract — LoopX is v0.4.1 and labeled early.
  • Environments where a cron daemon or recurring scheduler is expected inside the control plane — CONTRIBUTING.md forbids sleep loops, cron, and recurring daemons inside run-once.

Risks and cautions

Medium

Early v0.x with disciplined boundaries, zero core dependencies, and strict mypy on a declared file list, but no production autonomy claim and a mutable CLI/API surface.

  • Version 0.4.1 and the README badge status: loop agents early signal that contracts can change.
  • The 200+ hour evidence trajectories are wall-clock elapsed lifetime, not continuous unattended execution — the README is explicit about this distinction.
  • Strict mypy covers a declared subset of files, not the entire codebase, so type coverage is not uniform.
  • LoopX depends on an external Turn Loop Controller for wake, repair, and replan decisions — adopters must build or integrate that outer layer.
  • MIT License, copyright 2026 LoopX contributors, with the standard AS-IS warranty disclaimer.
  • CONTRIBUTING.md forbids committing .loopx/, .codex/goals/, or live ACTIVE_GOAL_STATE.md files to avoid leaking runtime state.
  • The loopx check --scan-path command enforces the public/private boundary before docs or examples are submitted.
  • Private benchmark traces, verifier output, raw agent sessions, credentials, internal document links, and local machine paths must not be published.
  • Dangerous permissions, publishing, production writes, and final ownership remain with the human — LoopX is not an autonomous production controller.

Alternatives to compare

ApproachWhen to useTrade-off
LangGraph
You want a graph-oriented orchestration framework with checkpointing for multi-step agent flows.Open source (MIT).
AutoGen
You need multi-agent conversation orchestration with role assignment between agents.Open source (MIT).
CrewAI
You want role-based crew abstractions for collaborative agent task delegation.Open source (MIT).
Plain cron plus agent transcript
Your loops are short, single-agent, and do not need durable gates or evidence.Free.

What this trend reveals

Quota-aware scheduling as a cost guardrail

LoopX encodes quota into the state kernel and lets quota decide the next tick. Teams burning tokens on stalled loops can adopt the should-run and spend semantics from the quota-allocation doc as a cost guardrail without adopting the full control plane.

Read docs/quota-allocation.md for the should-run contract; trace how loopx turn run-once spends exactly once per transaction as described in CONTRIBUTING.md.

Peer-agent handoff without a leader

The peer-agent model — where claims, leases, and typed continuation replace a durable leader — maps onto teams running heterogeneous agents (Codex for code, Claude Code for review, a shell agent for ops). LoopX gives that topology a shared state contract.

Inspect the claim, gate, monitor, and writeback operators in the README and the project-agent-todo-contract doc; confirm the handoff shape matches your agent mix.

Non-engineering operator visibility

The README names creator, research, and operations loops whose progress must remain legible to a non-engineering operator. The status data contract and hosted frontstage give operators a readable projection without exposing raw transcripts.

Open the hosted frontstage and read docs/status-data-contract.md to check whether the payload covers the fields your operator needs.

Best next action

Install locally and run one demo objective

The shortest meaningful evaluation is a local install, a doctor check, and the bundled demo. This confirms the runtime works in your environment and shows the state projection without a live model call.

  1. Clone the repository: git clone https://github.com/huangruiteng/loopx ~/loopx
  2. Run the installer: ~/loopx/scripts/install-local.sh
  3. Add the local bin directory to PATH and run loopx doctor
  4. Run loopx demo to trace one objective through the state kernel
  5. Read docs/guides/getting-started.md and newcomer-command-path.md before wiring a real agent runtime

RepoDaily verdict

LoopX is a disciplined, early-stage answer to a real gap: governing agent work that outlasts a single session. Its value is the durable state kernel — objective, gates, todos, evidence, quota — paired with an atomic turn transaction and a clear separation from the agent runtime. Teams running multi-day loops should evaluate it now; teams with single-turn tasks should skip it.

Sources