Landing
Landing explains CI failures, fixes delegated problems, and publishes reviews where your team works. It uses your existing tools and checks.
With Landing, you own and control the workflow. Choose the model, prepare the execution environment, and adapt instructions and skills to your project. Run it in CI, locally, or as a service. Landing is open source under Apache-2.0 and requires no hosted Landing account.
Start in CI
Set up your first PR review. Configure a model, add the GitHub Action to your prepared workflow, and open a PR. Landing publishes a native review with code comments when it finds an actionable problem. Your native checks and team decide what to accept.
Configure CI -> Open a PR -> Read the review -> Decide what to accept
Set the LANDING_MODEL repository variable and LANDING_API_KEY secret, and grant the review job contents: read and pull-requests: write. After trusted-caller admission, checkout, and successful native checks, add this step to your existing workflow:
- uses: bubbuild/landing@0.1.0
env:
GH_TOKEN: ${{ github.token }}
LANDING_MODEL: ${{ vars.LANDING_MODEL }}
LANDING_API_KEY: ${{ secrets.LANDING_API_KEY }}
with:
command: review
instruction: Native checks passed for this checkout. Review this PR using repository guidance and publish actionable findings inline.
The Action uses your authenticated gh, project tools, and skills. It checks who can delegate before starting the agent. See CI integration for other CI systems and GitHub integration for /landing commands, publishing identities, and trust policy.
To build the same review and delegated-fix experience, ask your agent to read Landing's workflows and development guide, then adapt the CI setup to your repository's tools and checks.
Use it locally
With Python 3.12 or later, uv, and a POSIX host:
uv tool install "landing==0.1.0"
export LANDING_MODEL="openai:gpt-4.1"
export LANDING_API_KEY="your-provider-api-key"
landing explain "Explain this failure and the next useful check." --input check.log
Run from your project checkout and use a saved UTF-8 log for check.log. The commands are explain, triage, fix, and review; each works independently. Local use shows how to delegate work and inspect the result.
Work with your team
Reliable results draw on your documentation, work items, infrastructure, tests, benchmarks, and observability. Working with Landing explains how to connect that context and retain feedback. Automate the engineering work you can delegate, and use the time saved to stay involved with contributors and users. Community Over Code.
Make Landing work for you covers project instructions, skills, and tools. For shared execution, run the server or deploy the container from ghcr.io/bubbuild/landing:0.1.0. Actions and model history are stored in SQLite; workspace files stay in your workspace, and model requests go to your chosen provider.
Contributions are welcome. Licensed under Apache-2.0. Powered by Bub and tape.systems.
Metadata
Release files for landing 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| landing-0.1.0.tar.gz | 225.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| landing-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 269.0 kB
Release files / landing-0.1.0.tar.gz
| Download URL | landing-0.1.0.tar.gz |
|---|---|
| Size | 225.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27b44fcc755dfce7e444371529c90d697bd808b48d463cb0933e0f8d5be854c0
|
|
BLAKE2b-256 checksum How to use checksums |
d094e01788ff7da3149c62ab2d92cb9f6b36ef4316409454d2cec602168165f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / landing-0.1.0-py3-none-any.whl
| Download URL | landing-0.1.0-py3-none-any.whl |
|---|---|
| Size | 43.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ca88b2ce295954d383c70625bc6babc5693f2589cbc06078266f04eacbac1983
|
|
BLAKE2b-256 checksum How to use checksums |
5c272e032b699c368ca4691dcbdbab8441dbdbf08170968006035e080aa3387c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|