Skip to main content

Protocol-driven agent loops for shipping real code with less babysitting.

Project description

Autoloop

Protocol-driven agent loops for shipping real code with less babysitting.

Autoloop is a stateful orchestration runtime for repository work. It runs plan, implement, test, and final intent-audit producer/verifier pairs with durable state, resumable runs, phase scoping, provider-neutral sessions, git-backed checkpoints, and automatic follow-up runs for unresolved intent gaps.

Requirements

  • Python 3.10+
  • One supported provider CLI:
    • codex for provider.name: codex (default)
    • claude for provider.name: claude, with local claude auth status already working
  • git is optional when running with --no-git

Install

Install from PyPI:

python3 -m pip install autoloop
autoloop --help

Install from this repository:

python3 -m pip install -e .
autoloop --help
python3 -m autoloop --help

Or use the bundled installer:

./install_autoloop.sh

The installer sets up Autoloop itself and the packaged skill, but it does not install provider CLIs for you. Install codex or claude separately based on the provider you plan to run. Reruns are intentionally conservative: use ./install_autoloop.sh --dry-run to preview changes, --overwrite to replace an existing launcher or skill file, --recreate-venv to replace an existing virtualenv, and --skill-target both|codex|agents|none to control where the packaged skill is installed.

Quickstart

Put config in either:

  • ~/.config/autoloop/autoloop.yaml (or $XDG_CONFIG_HOME/autoloop/autoloop.yaml) for global defaults
  • /path/to/workspace/autoloop.yaml for workspace-local overrides

Minimal Codex config:

provider:
  name: codex

Minimal Claude config:

provider:
  name: claude

First run:

autoloop --workspace /path/to/workspace --intent "Describe the task you want shipped"

Expected success artifacts under the workspace:

  • .autoloop/tasks/<task-id>/runs/<run-id>/raw_phase_log.md
  • .autoloop/tasks/<task-id>/runs/<run-id>/events.jsonl
  • .autoloop/tasks/<task-id>/runs/<run-id>/request.md
  • .autoloop/tasks/<task-id>/runs/<run-id>/artifacts/plan/
  • .autoloop/tasks/<task-id>/runs/<run-id>/artifacts/implement/phases/<phase-key>/
  • .autoloop/tasks/<task-id>/runs/<run-id>/artifacts/test/phases/<phase-key>/
  • .autoloop/tasks/<task-id>/runs/<run-id>/artifacts/audit/

Useful follow-up commands:

autoloop --workspace /path/to/workspace --list-tasks
autoloop --workspace /path/to/workspace --task-id <task-id> --resume

Troubleshooting:

Symptom Fix
codex is missing for the default setup Install Codex with npm i -g @openai/codex, or switch to provider.name: claude and verify claude auth status.
autoloop command is not found after running the installer Add the installer bin directory to PATH, or run python3 -m autoloop --help from the repo checkout.
Autoloop is not picking up your config Put exactly one autoloop.yaml or autoloop.config file in the global config directory or workspace root.
git is unavailable Install git, or run Autoloop with --no-git if you do not need checkpoints.

Configuration

Autoloop reads configuration from these directories, in this order:

  1. $XDG_CONFIG_HOME/autoloop/ or ~/.config/autoloop/
  2. the selected workspace root passed to --workspace

Within each directory it looks for:

  • autoloop.yaml
  • autoloop.config
  • legacy read-only fallback: superloop.yaml
  • legacy read-only fallback: superloop.config

If more than one config file exists in the same directory, Autoloop fails fast instead of guessing.

Use the nested provider shape for new configs:

provider:
  name: codex
  codex:
    model: gpt-5.4
    model_effort: null
  claude:
    model: null
    effort: null
    permission_strategy: inherit
runtime:
  pairs: plan,implement,test,audit
  max_iterations: 15
  phase_mode: single
  intent_mode: preserve
  full_auto_answers: false
  no_git: false
  auto_followup: true
  auto_followup_max_depth: 3

Notes:

  • Legacy flat Codex keys provider.model and provider.model_effort are still read for backward compatibility.
  • --model and --model-effort are Codex-only CLI overrides.
  • Claude defaults intentionally inherit the operator's existing Claude Code environment. Default Claude runs do not add strict mode, --bare, tool restriction flags, or stream-json.
  • runtime.full_auto_answers now uses the active provider instead of being Codex-only.
  • The default audit pair runs once after the selected plan/implement/test work completes. Plan, implement, test, and audit artifacts are run-local under .autoloop/tasks/<task-id>/runs/<run-id>/artifacts/. If audit finds material unresolved gaps, the run finishes with needs_followup; by default Autoloop immediately starts a linked follow-up run from that run's artifacts/audit/revised_request.md, capped by runtime.auto_followup_max_depth.

Runtime State

Fresh runs write state under .autoloop/.

Task directories keep the task index and cross-run ledger. Run-specific execution state lives under .autoloop/tasks/<task-id>/runs/<run-id>/, including run.json, decisions.txt, provider sessions, raw logs, events, the immutable request snapshot, and the run-local artifacts/ tree.

For the first Autoloop release, resume and task listing can still read legacy .superloop/ workspaces when no .autoloop/ state exists for the requested task or run.

Session files now store provider-neutral provider and session_id fields. Legacy Codex session files that only contain thread_id remain load-compatible.

Claude Validation

Maintainer live-validation steps for inherited-environment Claude repos and resume config-drift checks are recorded in docs/claude_rollout_checklist.md.

Skill

The packaged Autoloop skill lives at src/autoloop/skill/SKILL.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autoloop-0.1.5.tar.gz (98.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autoloop-0.1.5-py3-none-any.whl (75.0 kB view details)

Uploaded Python 3

File details

Details for the file autoloop-0.1.5.tar.gz.

File metadata

  • Download URL: autoloop-0.1.5.tar.gz
  • Upload date:
  • Size: 98.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for autoloop-0.1.5.tar.gz
Algorithm Hash digest
SHA256 7c7df1c5ec0d1324fc6488d559c8e774b6470680c6ba414059e8cead0c077b15
MD5 02c44865fd5477317052f497b6858f42
BLAKE2b-256 258e227c63e3834dbf4a02a9a1fa4c3df4db9fe8a30f29aa9785f34e96ee4ac2

See more details on using hashes here.

File details

Details for the file autoloop-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: autoloop-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for autoloop-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6c1cab5768dae48ffb9079ce0d7687cf5e5ef78b0324581703fa7332d74cba9b
MD5 59ff3dd0e2c08d06285237e65b43531e
BLAKE2b-256 1b68c3faf2c248d04c73053733903f68f519920e662d5248f8a535cd9afe4442

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page