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.1"

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.1. 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.1

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.1
File Size Uploaded Provenance
lazybridge-1.8.1.tar.gz 4.2 MB With provenance Details

Built distribution (wheel)

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

Total release size: 6.2 MB

Release files / lazybridge-1.8.1.tar.gz

Download URL lazybridge-1.8.1.tar.gz
Size 4.2 MB
Tags Source
SHA-256 checksum
How to use checksums
9d79d5732b968ed237d7305f3d880f0b7c3f33f05aff973d6c3ff7c448e28c86
BLAKE2b-256 checksum
How to use checksums
94290889dbf0656c9b54066eb056052dc71883a213f28601bf95ab609ad927a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 15, 2026.

Transparency log

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

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

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 15, 2026.

Transparency log

Security for lazybridge 1.8.1

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.1.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 15, 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