Skip to main content

English | 日本語

Autoland

A CLI tool that automates the fix and merge workflow after creating PRs with Vibe Coding.

Overview

AI Autoland fully automates the post-review workflow for pull requests. When you integrate AI review tools like CodeRabbit or Claude Code Review into your CI, it automatically fixes the review feedback and executes the merge.

Key Features

  • Automatic Fixes: Automatically fixes review feedback using Codex or Claude Code
  • Automatic Merge: Automatically merges after fixes are completed
  • Automatic detection and processing of open PRs
  • Waiting for GitHub checks completion
  • Automatic commit and push of fixes
  • Automatic merge decision and execution
  • Project hooks for loop start/end custom commands
  • Two Operation Modes:
    • Single Mode: Processes only one PR
    • Watch Mode: Continuously monitors and processes new PRs

Prerequisites

  • An AI code review tool (CodeRabbit, Claude Code Review, etc.) must be running in your CI
  • Designed for use with Vibe Coding
  • gh (GitHub CLI)
  • claude or codex command
  • Execution in a Git repository

Notes

  • This tool does not include code review functionality. It must be used in combination with external CI review tools
  • The free public version does not include code quality improvement features
  • If you need code quality improvement features, please use the commercial version that will be released in the future

Installation

pipx install autoland

Please refer to https://pipx.pypa.io/latest/installation/ for pipx installation.

Usage

Run in the target repository directory:

autoland

Repository-specific instructions

Place an AUTOLAND.md file in the target repository to share project-specific guidance (coding standards, edge cases, required checks, etc.). Its content is passed to the coding agent together with the review context when requesting fixes.

Project hooks

Place an AUTOLAND.hooks.toml file in the repository root to run custom commands at loop boundaries.

  • hooks_enabled: Enable/disable all hooks for this project
  • event = "loop_start": Run before each processing loop starts
  • event = "loop_end": Run after each processing loop ends (always executed by finally)
  • on_error = "continue" | "abort": Continue or stop autoland when hook fails
version = 1
hooks_enabled = true

[[hooks]]
name = "pre-loop"
event = "loop_start"
enabled = true
command = ["./scripts/pre_loop.sh"]
timeout_sec = 30
on_error = "continue"

[[hooks]]
name = "post-loop"
event = "loop_end"
enabled = true
command = ["./scripts/post_loop.sh"]
timeout_sec = 30
on_error = "continue"

Hook commands receive these environment variables:

  • AUTOLAND_HOOK_EVENT
  • AUTOLAND_HOOK_LOOP_INDEX
  • AUTOLAND_HOOK_RESULT (started, pushed, no_change, merged, unexpected_response, error)
  • AUTOLAND_HOOK_PR_NUMBER

Workflow

  1. PR Detection: Selects the oldest open PR and checks out to the corresponding branch
  2. Checks Waiting: Waits for GitHub checks to complete
  3. Auto-fix: AI agent analyzes review comments and executes necessary fixes
  4. Push Changes: Commits fixes and posts a processing report as a comment
  5. Re-check: Checks for new comments and determines merge eligibility
  6. Execute Merge: Automatically merges if there are no issues
flowchart TD
  Start(["Start"]) --> Use[["Usage<br>Run in target repository: <code>autoland</code>"]]

  subgraph CLI["Process performed by CLI tool"]
    direction TB
    C0{"Are there any open PRs?"}
    C1["Select oldest open PR and<br>checkout to corresponding branch"]
    C2["Wait for GitHub checks to complete"]
    C3["Launch fixing agent and<br>pass PR context"]
    C6["Post agent-generated report<br>as PR comment"]
    C4{"Did agent add commits?"}
    C5["push"]
    C8["Merge PR"]
  end

  subgraph AG["Coding Agent"]
    direction TB
    A1["Analyze context"]
    A2{"Are there any issues?"}
    A3["Implement necessary fixes and commit"]
    A5["Create issues for out-of-scope problems<br>(if --create-issue enabled)"]
    A4_fix["Output result report (fix details)"]
    A4_ok["Output result report (no issues)"]
    A_OUT["Report"]
  end

  Use --> C0
  C0 -- Yes --> C1 --> C2
  C0 -- No --> End(["End"])

  C2 --> C3 --> A1 --> A2
  A2 -- Yes --> A3 --> A5 --> A4_fix --> A_OUT
  A2 -- No --> A5 --> A4_ok --> A_OUT

  A_OUT --> C6

  C6 --> C4
  C4 -- No (mergeable) --> C8 --> End
  C4 -- Yes (has changes to push) --> C5 --> C2

Design Principles

  • CLI does not manage authentication credentials, leverages existing tools
  • Complex decisions are delegated to AI, only mechanical decisions are implemented on the CLI side
  • Timestamped log output for long-running operations

Metadata

Release files for autoland 0.4.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 autoland 0.4.0
File Size Uploaded Provenance
autoland-0.4.0.tar.gz 18.7 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 41.0 kB

Release files / autoland-0.4.0.tar.gz

Download URL autoland-0.4.0.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1ba1fcc98a6e711f396a23e4c41edcb4bace1c9acff31db5094360a553bae1ed
BLAKE2b-256 checksum
How to use checksums
76dedcd322a26892d6eb9256e922b7c2df83a84c3449754e22e353ad44966b90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / autoland-0.4.0-py3-none-any.whl

Download URL autoland-0.4.0-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3a44ff906d5afc155de087829a3ba6ab0b9ea77824893fad0b2cc3c368cfce2
BLAKE2b-256 checksum
How to use checksums
b150fda68da6f93506463aa0ed85172331aa9a1eefe723194e650d925d6fad55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Security for autoland 0.4.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.

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