huangruiteng/loopxPublic

Lightweight loop engineering state kernel for long-running AI agent teams. Agent-loop agnostic across Codex, Claude Code, and other coding agents, with durable goals, quota-aware auto-wake, executable todos, evidence logs, and verifiable handoffs.

AI summary: A local control plane for managing and reviewing long-running AI agent workflows and loops.

Stars
3.3K
+606 today
Forks
253
Watchers
9
Open issues
9
Open PRs
14
Contributors
~18
Commits
4K
Branches
961

PythonMITCreated May 31, 2026Last push todayLatest release v0.4.1+606 stars this week+606 this month

Star history

since Jun 21, 2026
01K2K3KJun 2026Jul 2026Jul 2026Aug 2026
3.3K stars as of Aug 7, 2026, tracked back to Jun 21, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 2 commits2026-06-01: 60 commits2026-06-02: 115 commits2026-06-03: 44 commits2026-06-04: 47 commits2026-06-05: 0 commits2026-06-06: 37 commits2026-06-07: 42 commits2026-06-08: 24 commits2026-06-09: 0 commits2026-06-10: 23 commits2026-06-11: 39 commits2026-06-12: 0 commits2026-06-13: 8 commits2026-06-14: 21 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 18 commits2026-06-18: 74 commits2026-06-19: 69 commits2026-06-20: 116 commits2026-06-21: 141 commits2026-06-22: 61 commits2026-06-23: 99 commits2026-06-24: 74 commits2026-06-25: 25 commits2026-06-26: 16 commits2026-06-27: 79 commits2026-06-28: 87 commits2026-06-29: 32 commits2026-06-30: 74 commits2026-07-01: 79 commits2026-07-02: 88 commits2026-07-03: 105 commits2026-07-04: 160 commits2026-07-05: 86 commits2026-07-06: 86 commits2026-07-07: 36 commits2026-07-08: 72 commits2026-07-09: 58 commits2026-07-10: 76 commits2026-07-11: 88 commits2026-07-12: 100 commits2026-07-13: 53 commits2026-07-14: 59 commits2026-07-15: 77 commits2026-07-16: 71 commits2026-07-17: 46 commits2026-07-18: 47 commits2026-07-19: 72 commits2026-07-20: 38 commits2026-07-21: 33 commits2026-07-22: 24 commits2026-07-23: 30 commits2026-07-24: 43 commits2026-07-25: 12 commits2026-07-26: 35 commits2026-07-27: 13 commits2026-07-28: 25 commits2026-07-29: 42 commits2026-07-30: 30 commits2026-07-31: 30 commits2026-08-01: 21 commits2026-08-02: 31 commits2026-08-03: 15 commits2026-08-04: 22 commits2026-08-05: 14 commits2026-08-06: 16 commits2026-08-07: 0 commits2026-08-08: 0 commits
3,360 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Breakout launch

    3,303 stars in 68 days

  • Rising fast

    +606 stars this week

  • Very active

    3,360 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What loopx does

LoopX serves as a lightweight state kernel and agent-agnostic local control plane for loop engineering. It keeps long-running AI agent tasks reviewable, restartable, and manageable across different turns and tools. The system separates objective tracking, quotas, and state management from the agent runtime itself. This allows developers to oversee complex, multi-step agent executions (like auto-research or issue fixing) with concrete user gates and evidence tracking.

LoopX is for AI engineers and developers who build, manage, or oversee autonomous agent workflows. It requires familiarity with local AI environments, command-line interfaces, and agent runtimes.

  • State management: Maintains a stable state kernel for objectives, gates, todos, and evidence across bounded agent turns.
  • Agent agnostic: Integrates with various runtimes like Codex, Claude Code, Cursor, and custom runners without replacing them.
  • Visible control plane: Tracks active goals, ordered todos, concrete user gates, and quota allocations in an inspectable surface.
  • Host integrations: Provides adapters and heartbeat automation for seamless connection with existing AI coding assistants.
  • Domain capabilities: Packages repeatable workflow lanes for tasks like issue fixing, content operations, and ML experiments.

Where teams use it

Long-running automation

Developers executing multi-step AI tasks that span hours or days and require stable state across restarts.

Agent oversight

Teams that need to monitor AI agent activity, review evidence, and approve concrete actions before execution.

Multi-agent coordination

Scenarios where proposer, executor, and evaluator agents must iterate in parallel while sharing a common state.

Workflow reproducibility

Researchers requiring a compact, inspectable run history to validate agent trajectories and decisions.

Getting started: curl -fsSL https://raw.githubusercontent.com/huangruiteng/loopx/main/scripts/install-from-github.sh | bash

README

main branch

LoopX

LoopX loop engineering social preview banner

The local control plane for long-running AI agent work.

Keep objectives, gates, todos, evidence, quota, and handoffs stable while Codex, Claude Code, Cursor, or your own runtime executes bounded turns.

License Release Python Local first Loop Agents

Public website · Docs · Try LoopX · See real loops · How it works · User manual · 简体中文

把会干活的 Agent,接成可管理、可复盘、可持续改进的数字员工。


A lightweight state kernel and agent-agnostic local control plane for loop engineering, LoopX keeps long-running work reviewable, restartable, and easier to hand off across turns, tools, and agents. It does not replace your agent runtime.

Loop engineering for long-running AI agents and peer agent teams.

Keep the loop moving. Keep the judgment human.

Why LoopX

An agent can finish a task in one session. Long-running work is harder: objectives change, owner decisions appear, evidence goes stale, agents hand work to peers, and a scheduler can keep spending after no useful transition remains. Chat memory and a timer are not enough to govern that.

LoopX keeps the durable control state in one compact layer:

objective / issue / project
   │
   ▼
LoopX state: objective + gates + todos + scope + evidence + quota
   │
   ├─ human judgment needed? ── yes ─▶ ask a concrete question and wait
   │
   ├─ safe fallback available? ──────▶ run one bounded agent slice
   │
   ▼
Codex / Claude Code / Cursor / shell agent executes one turn
   │
   ▼
write evidence + handoff + next todo ─▶ quota decides the next tick

LoopX control-plane board

A useful mental model is an agent-native Kanban for long-running work. Cards carry identity, authority, evidence, and continuation. Moves are validated operators such as claim, gate, monitor, and writeback. The board is a projection; LoopX state remains the source of truth.

Registered agents are peers. Claims, leases, task boundaries, capabilities, and typed continuation decide who acts next; no durable leader identity is required.

LoopX is useful when you run:

  • multi-day engineering, research, benchmark, or experiment objectives;
  • issue and PR loops that must preserve scope, evidence, and review state;
  • recurring heartbeat or monitor work;
  • projects with owner, safety, publication, or private-data gates;
  • peer-agent teams where ownership, leases, and handoff matter;
  • creator, research, or operations workflows whose progress must remain legible to a non-engineering operator.

LoopX is not an autonomous production controller. Dangerous permissions, publishing, production writes, and final ownership stay with the human.

Evidence

These are not one-turn demos. The OpenViking Issue-Fix and Auto ML trajectories each span 200+ hours of elapsed loop lifetime across many bounded turns, decisions, and evidence updates. Elapsed lifetime is wall-clock project time, not 200 hours of continuous model execution or a claim of unattended production autonomy. Open each visual to inspect the public-safe graph, evidence branches, and decisions preserved across turns.

Open-Source Issue Fix

200+ hour public contribution arc: PR delivery and reusable fix knowledge evolve together.

Open-source issue-fix trajectory linking focused PR delivery with reusable LoopX capabilities

LoopX's creator uses this path as an OpenViking contributor. The represented public contribution sequence spans more than 200 elapsed hours from its first PR creation to the latest represented review or update. The Issue-Fix capability keeps rolling repository context, revision-stamped fix knowledge, and reviewer-facing preferences separate; linked PRs plus current checkout source and tests remain authoritative.

Auto ML Experiment

200+ hour owner-run experiment arc: hypotheses, matched evidence, invalid lineages, running replicates, and promote/stop gates remain visible in one graph.

Auto ML Experiment trajectory with experiment lineages, evidence gates, and promotion decisions

The redacted public-safe graph preserves decision lineage across that 200+ hour elapsed window. It is trajectory evidence, not a claim of continuous compute, independent reproduction, or a production result.

Auto Research

Proposer, executor, and evaluator/promoter agents iterate in parallel while todo, quota, evidence, and targeted wake remain visible.

Auto Research multi-agent workspace with proposer, executor, evaluator/promoter, todo, quota, evidence, and targeted wake activity

More inspectable surfaces:

Try LoopX

Requirements: Python 3.11+, curl, tar, and a macOS or Linux shell. Git is only needed for contributor clone/canary workflows. The Python package has no runtime dependencies outside the standard library.

Install without cloning:

curl -fsSL https://raw.githubusercontent.com/huangruiteng/loopx/main/scripts/install-from-github.sh | bash
export PATH="$HOME/.local/bin:$PATH"
loopx doctor

Then connect from your project root:

cd /path/to/your-project
loopx connect
loopx status

If the project has not been initialized and connect tells you state is missing, use the guided path:

loopx start-goal --guided --project . --goal-text "Your long-running objective"

LoopX should reuse existing state rather than overwrite it. Keep .loopx/, .codex/goals/, and .local/ ignored.

Start From Your Agent

Host Recommended start Loop driver
Codex App Ask the agent to connect this project to LoopX, run loopx doctor, preserve existing state, and report the current gate and next todo. Then use $loopx <complex task> or choose loopx from /skills. Codex App heartbeat automation, refreshed from quota should-run.scheduler_hint
Codex App over SSH loopx agent-onboard --agent-type codex-app-ssh --project . The returned visible /goal <task_body>
Codex CLI Start codex in the project, ask it to connect and diagnose LoopX, then use $loopx <complex task> or /skills. Visible /goal <task_body>; no hidden headless execution by default
Claude Code Install the opt-in adapter, then run /loopx <task> followed by /loop. Native Claude Code /loop gated by LoopX
OpenCode Install the static command facade; opt in to --with-goal-bridge for recurring goals. OpenCode command facade and explicit goal bridge
Pi Install the opt-in goal extension with loopx slash-commands --install --surface pi, then use /loopx <task> from a trusted Pi session. Visible Pi goal extension gated by LoopX quota (loopx_goal_activate + agent_settled continuation)
Cursor, shell, or custom runner Use the installer and loopx doctor; connect manually or call LoopX from your runner. Your shell, scheduler, or runner

The exact, copy-ready setup messages and host recovery paths live in Getting Started. Host integrations can inspect the Codex App host command registry contract, the Codex CLI packaged install path, or the Claude Code adapter.

For custom runners, read Embed LoopX in Your Agent Runner and the worker bridge install contract. The core tick is deliberately small:

loopx quota should-run      # should this registered agent act now?
loopx todo claim            # who owns this slice?
loopx todo update           # what changed?
loopx refresh-state         # what should the next turn see?
loopx quota spend-slot      # account for a completed, validated slice

A successful connection has:

  • loopx doctor passing;
  • .loopx/registry.json and a projected active goal state;
  • loopx status showing the current objective, concrete user gate, and next agent todo;
  • a visible loop driver or an exact activation instruction;
  • local runtime state ignored rather than committed.

Clone-based install is only for contributors who want the live canary wrapper:

git clone https://github.com/huangruiteng/loopx ~/loopx
~/loopx/scripts/install-local.sh
loopx doctor

Capabilities

LoopX folds its control-plane mechanics into five questions:

Question What LoopX keeps visible
What is the objective? The active goal, explicit scope, and current authority.
What happens next? Ordered user and agent todos, ownership, claims, and leases.
What needs human judgment? Concrete user gates instead of a vague "waiting for owner."
What evidence changed? Compact run history, validation, blockers, and accepted writeback.
May the loop continue? Quota, capabilities, safe fallback, scheduler hints, and stop conditions.

Control-Plane Surface

Surface What it does Start with
Goal state and status Tracks active state, todos, claims, gates, evidence, run history, and first-screen attention. loopx status, loopx diagnose, loopx review-packet
Quota and interaction contract Decides whether a turn should deliver, ask, wait, self-repair, or stay quiet. loopx quota should-run, quota allocation
Agent runtime bridges Keeps Codex App, Codex CLI, Claude Code, and generic workers aligned with the same guard. loopx heartbeat-prompt, loopx codex-cli-bootstrap-message, loopx worker-bridge
Operator surfaces Renders compact status without making the browser the state authority. loopx serve-status, dashboard
External projections Projects todos and gates into collaboration surfaces while LoopX remains authoritative. loopx lark-kanban, Lark Kanban adapter
Domain capabilities Packages repeatable work lanes such as issue fixing, content operations, value connector planning, ML experiment advice, benchmark evidence, and Explore. loopx issue-fix, loopx content-ops, loopx value-connectors, loopx ml-experiment, loopx benchmark, Explore
Experimental context learning Lets named registered agents trial provider-neutral Reward Memory through ignored, default-off project configuration. OpenViking is one provider option, not a global dependency. loopx reward-memory experiment-status, Reward Memory architecture
Governance patterns Captures reusable routing, gate, evidence, projection, and planning shapes. interaction patterns, state model

The shipped primitives include lifetime goals, concrete user gates, audited safe fallbacks, peer todo ownership, quota and steering, compact run history, evidence-backed handoff, a read-first management surface, project-level value signals, and public/private boundary checks.

Runtime Responsibilities

Role Responsibility
Agent Plans, analyzes, uses tools, and performs one bounded action through a host/runtime.
Provider Calls external systems and returns observations, effect results, and readback.
Capability Defines the caller outcome, normalizes provider output, validates it, and proposes a typed transition.
Kernel Owns durable todos, gates, monitors, accepted writeback, quota, recovery, and scheduling.

The execution path is Agent -> Capability -> Provider; the control path returns Provider readback -> Capability transition -> Kernel. An extension is how an optional provider is packaged and managed, not another control-plane owner. See Architecture and Extensions and Capabilities.

Advanced Paths

The first useful loop does not require every optional surface. Add these only when the work needs them.

Inspect the current goal's read-only capability catalog before enabling an advanced path:

loopx configure-goal --goal-id <goal-id>

Without --execute, this reports current/default state, fit, boundaries, and copyable commands without changing project state.

Presets and Auto Research

Safe presets cover daily triage, changelog drafts, and PR watching. The one-command research path coordinates proposer, executor, and evaluator/promoter roles while keeping quota and evidence visible. See the beginner preset guide and Auto Research command path.

loopx preset list
loopx preset show daily-triage

Preset inspection is read-only. For a connected recurring goal, loopx ready-score --goal-id <goal-id> --agent-id <agent-id> reports whether the loop is ready to run repeatedly.

Governed Turns

LoopX can generate one pure, bounded turn decision from a validated receipt, fresh quota state, and a provider-neutral budget. The current Codex CLI quickstart and activation contract are documented in LoopX Turn for Codex CLI.

Explore Graph and Harness

Explore is supported, optional, and default-off. It works best when a task has a measurable offline evaluation, baseline, treatment, and guardrails; it is not a substitute for production approval. Start with the Explore capability and its Lark presentation mapping.

Review Agent Work

Use loopx review-packet for a compact owner-facing view of decisions, evidence, validation, and unresolved gates. The intelligent management surface describes the operator model; the project-level reward model describes conservative value signals across output quantity, quality, token cost, and user attention cost.

For one concrete peer workflow, see the cross-runtime implementation review demo: Claude implements and Codex reviews while LoopX keeps ownership, evidence, quota, and handoff explicit.

App and Projection Paths

Optional projections make state easier to inspect; they do not become the source of truth.

Operating and Recovery

Start daily inspection with:

loopx status
loopx history --goal-id your-project-goal
loopx quota should-run --goal-id your-project-goal

Automatic turns must check quota first and append spend only after validated writeback. Quiet skips, preflight failures, and dry-run previews do not spend. When a user gate blocks one lane, a separately audited safe fallback may continue, but it must not bypass the gate.

Peer agents use loopx todo claim before delivery and loopx todo update after validation so ownership and evidence remain visible.

Scheduler cadence follows quota should-run.scheduler_hint; installed Codex App automations acknowledge the current hint through the returned ack_hint.cli_args. Collision recovery, monitor semantics, self-repair, and the exact operator commands are maintained in Getting Started, Quota Allocation, and Long-Task Cadence Policy.

Before publishing public docs or examples:

loopx check \
  --scan-path README.md \
  --scan-path docs/ \
  --scan-path examples/

Advanced Documentation

Start with the path that matches your role. Use the hosted documentation portal for the published docs site; the documentation index remains the complete source map.

Use and Operate

Understand the Control Plane

Integrate and Extend

Validate and Govern

Community and Feedback

LoopX is still early. The most useful feedback comes from real long-running agent projects: where the control plane helped, where it felt heavy, and which gates or handoffs disappeared from view.

  • Use GitHub Issues for reproducible bugs, install problems, and feature requests.
  • Open PRs for docs fixes, showcase writeups, and small public-safe examples.
  • Chinese-speaking users and contributors can join the Lark developer group. To join the WeChat group, add huangrt00 and include LoopX in the friend request.

LoopX Lark developer group QR code
Lark developer group

LoopX WeChat contact QR code
WeChat: huangrt00
Mention LoopX for a group invitation

LoopX logo
LoopX project mark

Contributing

External contributors should start with Contributor Tasks for public, claimable work and Contributing for setup, validation, and boundary rules. Project roles and public history are recorded in Governance, Authors and Contributors, and Project History.

LoopX keeps local active state separate from the public repository. Do not commit .loopx/, .codex/goals/, live ACTIVE_GOAL_STATE.md, raw benchmark traces, credentials, private logs, or operator artifacts.

Current Status

The v0.4.x line is an early but usable local control plane for long-running agent work. It is not a full agent platform, an agent runtime, or an autonomous production controller.

Today LoopX ships a durable state kernel for goals, typed todos and decision scopes, peer claims and leases, evidence and writeback, quota-aware scheduling, and cross-turn continuation. Guided start, recurring heartbeat, isolated Codex CLI turns, evidence-backed Issue-Fix admission, optional Explore and auto research paths, public validation canaries, and a read-first multi-project dashboard build on that shared control state.

Support levels remain explicit. The state and CLI contracts are the stable center; several host integrations and advanced paths are optional, default-off, or experimental. LoopX does not grant credentials, approve destructive or production actions, publish on a user's behalf without authorization, or turn an unverified run into evidence of success.

The next milestones are simpler installation and host packaging, broader typed runtime adapters, stronger terminal acceptance across repeated public loops, independent adoption and outcome evidence, and a more polished management surface.

License

MIT. See LICENSE.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 1

Releases and announcements

31 total
  1. LoopX v0.4.1v0.4.1Aug 4, 2026

    # LoopX v0.4.1 LoopX v0.4.1 is a focused control-plane release for longer-running agent work. It strengthens durable work selection, Goal-host continuation, bounded scheduling, agent-scoped recall, and provider-neutral operations while keeping external effects behind explicit authority. ## State Kernel & Control Plane - Persist capability-admitted Todo routes so later turns can resume the same domain work without re-inferring intent ([#2728](https://github.com/huangruiteng/loopx/pull/2728)). - Add a typed Goal continuation contract and retain selected-Todo continuation context across host turns ([#2731](https://github.com/huangruiteng/loopx/pull/2731), [#2738](https://github.com/huangruiteng/loopx/pull/2738)). - Preserve delivery across neutral refreshes, reject watch-only spend, retain blocked-successor acknowledgements, and reload unchanged monitor writeback state ([#2729](https://github.com/huangruiteng/loopx/pull/2729), [#2733](https://github.com/huangruiteng/loopx/pull/2733), [#2739](https://github.com/huangruiteng/loopx/pull/2739), [#2754](https://github.com/huangruiteng/loopx/pull/2754)). - Wake Goal hosts at the earliest material frontier transition instead of relying on

  2. LoopX v0.4.0v0.4.0Aug 1, 2026

    # LoopX v0.4.0 LoopX v0.4.0 strengthens the control plane for long-running agent work: onboarding and turn routing carry clearer machine-readable authority, repair evidence must resolve to real successor state, and optional workflows now expose safer local boundaries. The default quota packet is also bounded for real model-facing turns, while the public README now foregrounds two inspectable 200+ hour loop trajectories. This release does not claim benchmark or long-horizon outcome uplift, so no matched stable/candidate outcome baseline is required. ## Highlights ### State Kernel & Control Plane - Goal startup now projects capability-owned admission routes, actionable connection commands, one activation across phases, and explicit blocked host activation. Active goals continue before bootstrap, while native Goal hosts and delivery workspaces retain their real identity and causality ([#2663](https://github.com/huangruiteng/loopx/pull/2663), [#2675](https://github.com/huangruiteng/loopx/pull/2675), [#2680](https://github.com/huangruiteng/loopx/pull/2680), [#2699](https://github.com/huangruiteng/loopx/pull/2699), [#2711](https://github.com/huangruiteng/loopx/pull/2711), [#2716](htt

  3. LoopX v0.3.0v0.3.0Jul 30, 2026

    # LoopX v0.3.0 LoopX v0.3.0 is a capability and control-contract release. It promotes simplify-first change qualification, provider-neutral decision context, governed material lifecycle workflows, managed-project delivery, and Ark Managed Agent host support while tightening the long-running control plane and its release evidence. ## State Kernel & Control Plane - Replan is now easier to reason about and recover: ordered quota rules, explicit recoverable Turn stages, repeat-vision guidance, and consolidated frontier guards keep the next action deterministic without hiding repair or acknowledgement requirements ([#2585](https://github.com/huangruiteng/loopx/pull/2585), [#2594](https://github.com/huangruiteng/loopx/pull/2594), [#2597](https://github.com/huangruiteng/loopx/pull/2597), [#2636](https://github.com/huangruiteng/loopx/pull/2636)). - Agent-facing status and quota projections are smaller and more lane-precise. Shared read models now own benchmark, gate, and fallback projection rules instead of growing the CLI facade ([#2590](https://github.com/huangruiteng/loopx/pull/2590), [#2593](https://github.com/huangruiteng/loopx/pull/2593), [#2637](https://github.com/huangruiteng/lo

  4. LoopX v0.2.13v0.2.13Jul 24, 2026

    # LoopX v0.2.13 ## Monitor transitions now follow through Material monitor writeback now resolves the exact todo before target-key fallback, reloads status after mutation, and immediately exposes a newly runnable successor. If the persisted write succeeds but projection reload fails, LoopX returns a structured stale-projection warning through one narrow normalization helper instead of reporting that the write itself failed ([#2455](https://github.com/huangruiteng/loopx/pull/2455)). Continuous-monitor todos may no longer carry `resume_when`. Invalid persisted rows must be migrated directly; there is no runtime legacy bypass: ```bash loopx todo update \ --goal-id <goal-id> \ --todo-id <todo-id> \ --clear-resume-when \ --execute ``` ## Agent lanes keep their own recommendations Status and quota now select agent-lane run recommendations by exact agent id, preventing one peer's monitor or replan action from leaking into another peer's lane. Projection warnings are removed when their corresponding scoped recommendation is absent, while goal-level status remains separate ([#2491](https://github.com/huangruiteng/loopx/pull/2491), [#2494](https://github.com/huangruiteng/loopx/

  5. LoopX v0.2.12v0.2.12Jul 23, 2026

    # LoopX v0.2.12 ## More dependable agent control loops LoopX now persists one quota receipt per heartbeat turn and keeps monitor/replan routing fresh, reducing duplicate work and stale continuation decisions ([#2473](https://github.com/huangruiteng/loopx/pull/2473), [#2478](https://github.com/huangruiteng/loopx/pull/2478), [#2460](https://github.com/huangruiteng/loopx/pull/2460), [#2464](https://github.com/huangruiteng/loopx/pull/2464)). The shipped layer is the provider-neutral control-plane contract: heartbeat receipts, due-monitor routing, and bounded replan state. Host Automations still own scheduling; this release creates no background scheduler and grants no external-write authority. ## Review quality and maintainability `loopx pr-review` now assesses whether a PR's code volume is necessary and identifies concrete simplification directions, alongside correctness and risk findings ([#2471](https://github.com/huangruiteng/loopx/pull/2471)). Review remains advisory: it does not automatically merge PRs or close issues. ## Benchmark-neutral live worker lifecycle Adaptive multi-turn execution and public live-worker phase projection now preserve setup, agent, and verification

Commits per week

last 52 weeks
6250Week of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 305 commitsWeek of 2026-06-07: 136 commitsWeek of 2026-06-14: 298 commitsWeek of 2026-06-21: 495 commitsWeek of 2026-06-28: 625 commitsWeek of 2026-07-05: 502 commitsWeek of 2026-07-12: 453 commitsWeek of 2026-07-19: 252 commitsWeek of 2026-07-26: 196 commitsWeek of 2026-08-02: 98 commitsAug 10, 2025Aug 2, 2026
3.4K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 34 commitsSun 1:00 — 30 commitsSun 2:00 — 55 commitsSun 3:00 — 43 commitsSun 4:00 — 28 commitsSun 5:00 — 28 commitsSun 6:00 — 21 commitsSun 7:00 — 22 commitsSun 8:00 — 18 commitsSun 9:00 — 20 commitsSun 10:00 — 19 commitsSun 11:00 — 19 commitsSun 12:00 — 16 commitsSun 13:00 — 22 commitsSun 14:00 — 12 commitsSun 15:00 — 14 commitsSun 16:00 — 16 commitsSun 17:00 — 25 commitsSun 18:00 — 31 commitsSun 19:00 — 38 commitsSun 20:00 — 31 commitsSun 21:00 — 29 commitsSun 22:00 — 17 commitsSun 23:00 — 29 commitsMon 0:00 — 28 commitsMon 1:00 — 22 commitsMon 2:00 — 38 commitsMon 3:00 — 24 commitsMon 4:00 — 15 commitsMon 5:00 — 3 commitsMon 6:00 — 5 commitsMon 7:00 — 4 commitsMon 8:00 — 4 commitsMon 9:00 — 1 commitsMon 10:00 — 5 commitsMon 11:00 — 24 commitsMon 12:00 — 22 commitsMon 13:00 — 9 commitsMon 14:00 — 15 commitsMon 15:00 — 21 commitsMon 16:00 — 25 commitsMon 17:00 — 23 commitsMon 18:00 — 16 commitsMon 19:00 — 23 commitsMon 20:00 — 15 commitsMon 21:00 — 13 commitsMon 22:00 — 5 commitsMon 23:00 — 22 commitsTue 0:00 — 34 commitsTue 1:00 — 28 commitsTue 2:00 — 24 commitsTue 3:00 — 9 commitsTue 4:00 — 19 commitsTue 5:00 — 14 commitsTue 6:00 — 17 commitsTue 7:00 — 12 commitsTue 8:00 — 7 commitsTue 9:00 — 9 commitsTue 10:00 — 10 commitsTue 11:00 — 21 commitsTue 12:00 — 28 commitsTue 13:00 — 16 commitsTue 14:00 — 11 commitsTue 15:00 — 28 commitsTue 16:00 — 33 commitsTue 17:00 — 27 commitsTue 18:00 — 28 commitsTue 19:00 — 22 commitsTue 20:00 — 19 commitsTue 21:00 — 19 commitsTue 22:00 — 15 commitsTue 23:00 — 13 commitsWed 0:00 — 35 commitsWed 1:00 — 25 commitsWed 2:00 — 24 commitsWed 3:00 — 17 commitsWed 4:00 — 15 commitsWed 5:00 — 12 commitsWed 6:00 — 9 commitsWed 7:00 — 10 commitsWed 8:00 — 5 commitsWed 9:00 — 6 commitsWed 10:00 — 16 commitsWed 11:00 — 27 commitsWed 12:00 — 30 commitsWed 13:00 — 24 commitsWed 14:00 — 13 commitsWed 15:00 — 20 commitsWed 16:00 — 23 commitsWed 17:00 — 24 commitsWed 18:00 — 29 commitsWed 19:00 — 29 commitsWed 20:00 — 25 commitsWed 21:00 — 22 commitsWed 22:00 — 13 commitsWed 23:00 — 15 commitsThu 0:00 — 29 commitsThu 1:00 — 35 commitsThu 2:00 — 28 commitsThu 3:00 — 23 commitsThu 4:00 — 20 commitsThu 5:00 — 19 commitsThu 6:00 — 24 commitsThu 7:00 — 21 commitsThu 8:00 — 22 commitsThu 9:00 — 18 commitsThu 10:00 — 20 commitsThu 11:00 — 18 commitsThu 12:00 — 11 commitsThu 13:00 — 11 commitsThu 14:00 — 12 commitsThu 15:00 — 19 commitsThu 16:00 — 13 commitsThu 17:00 — 21 commitsThu 18:00 — 22 commitsThu 19:00 — 18 commitsThu 20:00 — 16 commitsThu 21:00 — 11 commitsThu 22:00 — 25 commitsThu 23:00 — 22 commitsFri 0:00 — 14 commitsFri 1:00 — 41 commitsFri 2:00 — 20 commitsFri 3:00 — 11 commitsFri 4:00 — 11 commitsFri 5:00 — 15 commitsFri 6:00 — 10 commitsFri 7:00 — 11 commitsFri 8:00 — 10 commitsFri 9:00 — 17 commitsFri 10:00 — 14 commitsFri 11:00 — 21 commitsFri 12:00 — 28 commitsFri 13:00 — 18 commitsFri 14:00 — 10 commitsFri 15:00 — 16 commitsFri 16:00 — 18 commitsFri 17:00 — 19 commitsFri 18:00 — 14 commitsFri 19:00 — 17 commitsFri 20:00 — 10 commitsFri 21:00 — 4 commitsFri 22:00 — 17 commitsFri 23:00 — 20 commitsSat 0:00 — 29 commitsSat 1:00 — 34 commitsSat 2:00 — 27 commitsSat 3:00 — 16 commitsSat 4:00 — 24 commitsSat 5:00 — 25 commitsSat 6:00 — 19 commitsSat 7:00 — 9 commitsSat 8:00 — 11 commitsSat 9:00 — 14 commitsSat 10:00 — 10 commitsSat 11:00 — 27 commitsSat 12:00 — 32 commitsSat 13:00 — 24 commitsSat 14:00 — 29 commitsSat 15:00 — 33 commitsSat 16:00 — 21 commitsSat 17:00 — 17 commitsSat 18:00 — 23 commitsSat 19:00 — 24 commitsSat 20:00 — 22 commitsSat 21:00 — 36 commitsSat 22:00 — 30 commitsSat 23:00 — 32 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits3,881 (97%)
Community commits103 (3%)

3,984 commits in total over the last year.

DateListRankStars gained
Aug 7, 2026daily#4+847
Aug 6, 2026daily#2+326
  • public-apis/public-apis

    A collective list of free APIs

    454.9K stars · Python

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    362.2K stars · Python

  • practical-tutorials/project-based-learning

    Curated list of project-based tutorials

    277.1K stars · Python

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    234.7K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    227K stars · Python