Skip to main content

lindy-orchestrator

Lightweight, git-native multi-agent orchestration for repository work.

Overview

lindy-orchestrator coordinates planning, execution, and validation around your existing code agents instead of trying to replace them. The current architecture is organized around a Planner, Generator, and Evaluator split:

Planner -> TaskSpec[] -> Generator -> GeneratorOutput -> Evaluator -> pass/fail + feedback

The orchestrator owns dependency ordering, worktree isolation, retries, QA gates, checkpointing, and reporting. Agents work against the repo; the orchestrator handles the harness.

Install

pip install lindy-orchestrator
pip install -e ".[dev]"

Requirements:

  • Python 3.11+
  • claude or codex in PATH

Quick Start

lindy-orchestrate onboard
lindy-orchestrate plan "Add JWT auth"
lindy-orchestrate run "Add JWT auth"
lindy-orchestrate resume

Pipeline

The intended flow is:

  1. Planner reads project context and module status files.
  2. Planner emits TaskSpec items with generator and evaluator instructions.
  3. Generator executes a task in an isolated worktree and returns output plus diff context.
  4. Evaluator runs QA gates and semantic review, then either passes the task or returns retry feedback.
  5. Orchestrator advances the task DAG until all reachable tasks are complete.

Key runtime pieces:

  • planner_runner.py
  • orchestrator.py
  • providers/claude_cli.py
  • providers/codex_cli.py
  • qa/

Configuration

Project configuration lives in .orchestrator/config.yaml.

Example:

project:
  name: "my-project"
  branch_prefix: "af"

modules:
  - name: backend
    path: backend/
  - name: frontend
    path: frontend/

planner:
  provider: claude_cli
  timeout_seconds: 120
  prompt: |
    You are the planner for {project_name}.

generator:
  provider: claude_cli
  timeout_seconds: 1800
  stall_timeout: 600
  permission_mode: bypassPermissions
  prompt_prefix: |
    You are a code generation agent.

evaluator:
  provider: claude_cli
  timeout_seconds: 300
  pass_threshold: 80
  prompt_prefix: |
    You are a code evaluation agent.

qa_gates:
  ci_check:
    enabled: true
  structural_check:
    max_file_lines: 500
    sensitive_patterns: ["*.env", "*.key"]
  custom:
    - name: lint
      command: "ruff check {changed_files}"
      diff_only: true

safety:
  max_retries_per_task: 2
  max_parallel: 3
  dry_run: false

lifecycle_hooks:
  after_create: ""
  before_run: ""
  after_run: ""
  before_remove: ""

logging:
  dir: .orchestrator/logs
  session_dir: .orchestrator/sessions

Required concepts:

  • project
  • modules
  • planner/generator/evaluator role configuration
  • qa_gates
  • safety
  • logging

CLI

Primary commands:

  • run: plan and execute a goal
  • plan: generate a task plan only
  • resume: continue a saved session
  • status: module overview plus recent logs
  • logs: alias for status --logs-only
  • validate: validate config and module paths
  • gc: clean stale branches, sessions, and logs
  • scan: run entropy checks
  • onboard: generate .orchestrator/ project scaffolding
  • config: manage provider defaults
  • stats: inspect execution metrics
  • clear: remove generated orchestration files
  • version: print version information

Examples:

lindy-orchestrate run "Implement API auth" --provider codex_cli
lindy-orchestrate plan --file goal.md
lindy-orchestrate status --json
lindy-orchestrate validate
lindy-orchestrate gc --apply

QA Gates

Built-in gates:

  • ci_check
  • command_check
  • agent_check
  • structural_check

Custom QA commands can be added under qa_gates.custom.

Session Files

The orchestrator writes state under .orchestrator/, including:

  • config.yaml
  • status/
  • logs/
  • sessions/
  • plans/
  • reports/
  • claude/ and codex/ instruction files

Development

Common commands:

uv sync --extra dev --frozen
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run python -m pytest tests/ -x -q --tb=short
uv run python -c "import lindy_orchestrator"

License

MIT

Metadata

Release files for lindy-orchestrator 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lindy-orchestrator 0.15.0
File Size Uploaded Provenance
lindy_orchestrator-0.15.0.tar.gz 393.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for lindy-orchestrator 0.15.0
File Interpreter ABI Platform
lindy_orchestrator-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 553.0 kB

Release files / lindy_orchestrator-0.15.0.tar.gz

Download URL lindy_orchestrator-0.15.0.tar.gz
Size 393.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6f2884df50e87201de05e2a6b8ba2a3ba0f725f69416e99e1d47b5de12a46018
BLAKE2b-256 checksum
How to use checksums
2c14c33779700a3538592d2f98f5d9dcb87be2ca412877fa53af9e2890651338
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / lindy_orchestrator-0.15.0-py3-none-any.whl

Download URL lindy_orchestrator-0.15.0-py3-none-any.whl
Size 159.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1fbc51ddc05709e5df34e1978fc2d0d3d8826c267891ff32baa823ceb7ef965
BLAKE2b-256 checksum
How to use checksums
a7d7fec39b2a173d13fa65546e752620bba44b51c5aab6a7fdc0503d16f9caf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for lindy-orchestrator 0.15.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page