Skip to main content

LazyBridge

tests docs Python 3.11+ License: Apache 2.0

Build Python pipelines with Claude Code and Codex as engines. Swap the engine while keeping tools and application state; let one engine write and the other review. Agent = Engine + Tools + State is the shared contract.

from lazybridge import Agent, ClaudeCodeEngine, CodexEngine, Memory, Session, Store

def project_status() -> str:
    """Return this example project's status."""
    return "The draft is ready for review."

state = dict(tools=[project_status], memory=Memory(), store=Store(), session=Session())
claude = Agent(name="claude", engine=ClaudeCodeEngine(), **state)
codex = Agent(name="codex", engine=CodexEngine(), **state)
assert claude.memory is codex.memory
assert claude.store is codex.store
assert claude.session is codex.session

Functions, agents and Plan-backed pipelines enter through tools=[...]. LLMEngine calls provider APIs; Plan runs a deterministic DAG; human engines handle approval and supervision. Every agent returns an Envelope.

Install and authenticate

Python 3.11 or later:

python -m pip install "lazybridge[claude-code]==1.8.3"

Install and sign in to the local coding runtimes using the Claude Code guide and Codex guide. Codex needs its CLI, with no Python SDK extra. With a subscription login, coding runtimes use the account's plan quota; the adapters reuse the configured authentication and do not force a billing path. For provider APIs, install the matching extra (anthropic, openai, google, deepseek, litellm) and configure that provider's credentials.

One writes, the other reviews

from lazybridge import Agent, ClaudeCodeEngine, CodexEngine

reviewer = Agent(name="codex-reviewer", engine=CodexEngine(
    system='Start with "approved" or "rejected: <reason>". Check boundary cases.',
))
writer = Agent(name="claude-writer", engine=ClaudeCodeEngine(),
               verify=reviewer, max_verify=3)
result = writer("Draft a function that blocks weekend deployment.")
print(result.text())

verify= is configured on the Agent. Rejection supplies feedback for the next attempt; max_verify counts total attempts. Exhaustion returns the final draft even when rejected. Use deterministic tests and explicit acceptance records before shipping. See the full Claude Code writes, Codex reviews guide.

Native history can survive a process restart: Claude has persist_session / session_id, Codex has persist_thread / thread_id, and both support session_alias through SessionRegistry. Python Memory, Store and Session can be reused when changing engines; a native Claude transcript cannot migrate into a Codex thread.

LazyTools connects the work

LazyTools is the integration layer:

  • Code bridge: detached repository jobs, durable approvals, results and tier-based opposite-engine review.
  • MCP server: code-support tools, projects and connectors.
  • Projects: plans, claims, contracts and acceptance evidence in a shared Store.

Its distribution is lazytoolkit; its Python namespace is lazytools. Core MCP/gateway shims were removed in 0.9. Follow the LazyTools installation instructions rather than importing those removed modules.

Code computes results; the LLM reads them. Deterministic gates decide what may ship. Quota routing chooses from eligible tier rungs; the quota routing benchmark is in progress, with no comparative metrics published here.

Documentation and status

This README targets 1.8.3. The core public API is Stable; coding engines and extensions have their own boundaries. LazyTools 0.10.1 declares Alpha. See the maturity table and CHANGELOG.

For development, install .[test,docs], run python -m pytest, and build with python -m mkdocs build --strict. The default suite excludes live model calls and heavy rendering. CONTRIBUTING describes the checks.

The longer design rationale and worked examples live in Why LazyBridge (recursive pipelines, validation, review and exporters), the comparison, and the documentation map. This keeps the README focused while preserving those explanations in the guides.

Issues and contributions are welcome through the repository. See SECURITY.md for disclosure and LICENSE for Apache 2.0 terms. LazyBridge is designed by selvaz with Claude Code and Codex used as implementation partners under the owner's direction.

Metadata

Release files for lazybridge 1.8.3

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

Source distribution (sdist)

Source distribution for lazybridge 1.8.3
File Size Uploaded Provenance
lazybridge-1.8.3.tar.gz 4.3 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for lazybridge 1.8.3
File Interpreter ABI Platform
lazybridge-1.8.3-py3-none-any.whl Python 3 none any Details

Total release size: 6.2 MB

Release files / lazybridge-1.8.3.tar.gz

Download URL lazybridge-1.8.3.tar.gz
Size 4.3 MB
Tags Source
SHA-256 checksum
How to use checksums
9ba8f8d53a34ea0f4616565bdd6fe4d9742f18ae43d55329f6e639840962180f
BLAKE2b-256 checksum
How to use checksums
55c4731a0d7515552aebacbb236b03dad65375b276ba5cd5180d4e06fa4a868a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / lazybridge-1.8.3-py3-none-any.whl

Download URL lazybridge-1.8.3-py3-none-any.whl
Size 2.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cfaa82f692e5b48563584cc691b4fdf532397e19c4c0c0671ab2840320a0305b
BLAKE2b-256 checksum
How to use checksums
b173be519c9660f338165e7ddf9dbda91f2e92cf37217c5acb7f5bb25ccea661
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for lazybridge 1.8.3

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for lazybridge-1.8.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

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.

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