Koyote
Your codebase has a second author: the outside world. Koyote reviews its pull requests.
APIs drift. SDKs break. Koyote detects it, repairs it, and proves it — before your CI goes red.
git clone https://github.com/Devaretanmay/Koyote && cd Koyote
pip install .
koyote check /path/to/your-repo # read-only audit, no AI key needed
60 seconds to your first risk register. AI repair is opt-in (koyote auth).
PyPI one-liner (pip install koyote) lands with the public beta.
Quickstart | CLI Reference | Architecture | Validation Guide | Join the beta
The Problem
Software changes in two ways:
- Internal changes: Features and fixes written by your team (handled by code review and CI).
- External changes: Upstream API contract drift, major SDK breaking bumps, deprecated endpoints, and security migrations.
Dependabot bumps version strings in lockfiles and leaves CI broken. Human engineers spend 20%+ of engineering cycles reading migration guides, mapping AST callsites, updating wrappers, and fixing broken tests.
Koyote manages software changes originating outside the repository — mapping external contracts to internal callsites, reasoning about impact with AI, generating verified repairs, and confirming zero blast radius with sandbox isolation.
The Core Loop
Any ChangeSource (Dependency release, vendor changelog, scheduled check, PR webhook)
↓
AST Evidence Scan + Semantic Pattern Memory (.koyote/knowledge/)
↓
Shared AI Reasoning Engine (Customer BYOK Provider)
AI reasons; native tools provide evidence and execute/verify
↓
┌─────────────────────────────────┬─────────────────────────────────┐
│ Consult (Howl Persona) │ Work (Hunt Persona) │
│ Find & explain problems. │ Find, repair, verify & open PR. │
│ Deep AI impact analysis. │ Kernel sandbox + real tests. │
│ Files advisory GitHub Issue. │ Delivers verified Trust PR. │
│ Zero files touched. │ Fails closed on test failure. │
└─────────────────────────────────┴─────────────────────────────────┘
koyote auth # Connect BYOK AI provider (Anthropic, OpenAI, Ollama)
koyote doctor # GitHub / AI / Indexed / Knowledge / Tests / Monitoring
koyote check . # Read-only AST evidence scan
koyote check . # Read-only drift & impact audit
koyote consult . # Consult mode: AI assessment as a GitHub Issue, modifies nothing
koyote work . # Work mode: AI repair, sandbox verification, and PR delivery
Two distinct product modes for your team:
- Consult (
@howl explain/koyote consult): Deep AI reasoning, architectural impact diagnosis, files a GitHub Issue, modifies zero code. - Work (
@hunt repair/koyote work): Autonomous repair worker, sandbox test verification, delivers a verified PR. See GitHub App behavior.
Koyote also watches across connected repositories: a push in one repo is an observation that can confirm into a Howl Issue on another repo's affected work — never an automatic alert. See Cross-Repository Active-Work Impact.
The Core Pipeline
┌─────────────────────────┬─────────────────────────┬─────────────────────────┐
│ 1. Change Detection │ 2. Dependency Graph │ 3. Impact Analysis │
│ Contract drift │ Source → Callsite │ ChangeSource-aware │
├─────────────────────────┼─────────────────────────┼─────────────────────────┤
│ 4. AI-Guided Repair │ 5. Controlled Execution │ 6. Developer Trust PR │
│ Reasoned, then applied │ Sandboxed + Evidence │ Verified merge-ready │
└─────────────────────────┴─────────────────────────┴─────────────────────────┘
1. Day-0 Risk Register (koyote check)
When you run Koyote on any repository, it immediately answers:
- What external APIs and SDKs does this codebase depend on?
- Which integrations are deprecated, behind, or at risk?
- Which breaking changes can Koyote already auto-repair?
koyote check .
================================================================================
KOYOTE: EXTERNAL-CHANGE DEPENDENCY AUDIT & RISK REGISTER
================================================================================
Total External Providers Detected: 3
Total AST Callsites Mapped: 14
Auto-Repairable Callsites: 6
--------------------------------------------------------------------------------
[CRITICAL] AT RISK (Action Required):
* Stripe (stripe@v21.0.0 -> v22.0.0)
- Status: Breaking parameter mutation detected (amount: number -> string)
- 4 callsites affected (4 auto-repairable by Koyote)
[WATCHLIST] UPCOMING DEPRECATION:
* OpenAI (openai@v3.28.0)
- Status: Deprecated client interface (v4 migration available)
- 6 callsites affected
[HEALTHY] UP-TO-DATE INTEGRATIONS:
* Anthropic (@anthropic-ai/sdk@v0.25.0)
- Status: Up-to-date with active provider contract (4 callsites mapped)
================================================================================
Export directly to GitHub Issues or JSON:
koyote check . --format=github-issue # Formatted markdown table for GitHub Issues
koyote check . --format=json # Machine-readable risk register
2. External-Change Dependency Graph (koyote graph)
Koyote builds a unified dependency graph linking:
Provider -> Version -> API Contract -> Manifest Dependency -> Wrapper Client -> AST Callsite -> Migration History
koyote graph .
================================================================================
KOYOTE: EXTERNAL-CHANGE DEPENDENCY GRAPH
================================================================================
Repository: /path/to/my-repo
Providers Ingested: 3
Contracts Modeled: 6
Manifest Dependencies: 4
Wrapper Clients Found: 2
AST Callsites Mapped: 14
Active Graph Edges: 28
================================================================================
[Wrapper] src/lib/stripe.ts -> wraps stripe
[Callsite] src/billing.ts:12 -> stripe.charges.create
[Callsite] src/checkout.ts:45 -> stripe.paymentIntents.create
================================================================================
3. Autonomous Continuous Maintenance (koyote fix)
When upstream providers release breaking changes, Koyote detects the drift, reasons about impact with AI, generates verified repairs, matches your team's code formatting (prettier/ruff), validates local tests, and opens a Developer Trust PR:
# Autonomous migration for a target provider:
koyote fix . --provider stripe
# Custom version bump:
koyote fix . --provider openai --from v3.28.0 --to v4.0.0 --create-pr --repo owner/repo
What koyote fix guarantees:
- AI-Authored Repair: AI reasons about affected callsites, generates targeted source changes, and validates impact.
- Local Formatter Bridge: Formats changed files with your project's
prettier,ruff, orbiome. - Local Test Verification: Executes test suites and rejects patches if tests remain red.
- Zero Blast Radius: Verifies that 0 unintended files were modified.
- Developer Trust PR: Generates audit-grade PR markdown containing primary sources, exact callsites, test receipts, and rollback hashes.
Proof, not promises
On a real open-source repo (TalkGPT, OpenAI v3 → v4): verified the green base,
reproduced the breaking bump as a red build, repaired it autonomously, and
returned the suite to green with zero unintended files touched. Refusals are
loud and empty-handed — a repair that can't be proven is a repair not shipped.
Every commit is gated: 527 Rust + 357 Python tests, lint-clean. See the Validation Guide for the full protocol.
4. Controlled Execution & Sandboxed Verification
Koyote provides controlled, reproducible execution across local kernel sandboxes (macOS Seatbelt, Linux Landlock), Docker, and CI runners:
- Zero-Exfiltration Isolation: Credentials (
~/.ssh,~/.aws, keychains) denied at the kernel boundary. - Execution-Evidence Compression: Native Rust engines distill massive test outputs down to high-signal failure traces and stack traces for PR evidence.
- 2ms Instant Undo: Pre-execution BLAKE3 hash snapshots enable physical rollback of modified and generated files in 2 milliseconds.
koyote init # Initialize workspace control plane
koyote diff # Inspect isolated execution change sets
koyote undo # Instant 2ms physical rollback
Python SDK
from koyote.graph import build_dependency_graph, audit_dependency_graph
from koyote.maintenance import run_maintenance_cycle
# 1. Audit repository external dependencies
summary = audit_dependency_graph(repo_root=".")
print(f"At Risk: {len(summary['at_risk'])}, Auto-Repairable: {summary['total_auto_repairable']}")
# 2. Run autonomous maintenance cycle
report = run_maintenance_cycle(
repo_dir=".",
provider_name="stripe",
create_pr=False,
)
print(f"Maintenance Outcome: {'GREEN' if report.success else 'REFUSED'}")
print(report.unified_diff)
Documentation
Quickstart Guide · CLI Reference · Architecture · API Reference · Validation Guide · Agent Governance & Trailers
The core abstraction is ChangeSource (external API, SDK, OpenAPI, GraphQL, protobuf, webhook,
MCP server, internal service): Koyote keeps software working when the systems around it change.
Vendor SDK migrations are the working wedge; other contract kinds are representable types with no
connectors yet — they fail closed to quarantine instead of guessing.
Under the hood, Koyote is an AI maintenance agent with deterministic tools: a code graph, repository memory, verified rewrite patterns, sandbox execution, and a fail-closed verifier. Repeated work reuses verified knowledge instead of re-reasoning, so the system gets faster, cheaper, and more precise the longer it watches a repository.
Where Koyote Fits
Conventional AI reviewers start from a human pull request and ask whether the change is correct. Koyote starts from the other end: a dependency or contract changed out in the world, and it asks what that breaks in your repository. One AI reasons over your codebase plus the change itself, backed by maintenance memory — past verified repairs and quarantined failures. The output is not a review but a repair, proven against your real test suite before it ever reaches a pull request.
Koyote is not a generic coding agent, a PR reviewer, a Dependabot clone, a codebase Q&A tool, or vulnerability-management software. It is autonomous maintenance for systems that change.
The old fable got it backwards: the village stopped believing because the boy cried wolf over nothing. Most automation still does — vague green checks, unverified badges, silent passes. Koyote only howls when there's actually one in the fence: verified repairs, loud refusals, never a faked pass.
Beta
Koyote is in private beta. The fastest way in: run koyote check on your
repo and open an issue with
what it found — misses and false alarms included. That feedback is the roadmap.
License
Apache-2.0. Copyright 2026 Koyote Authors.
Release files for koyote 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| koyote-1.1.3-cp38-abi3-macosx_11_0_arm64.whl | CPython 3.8 | abi3 | macOS 11.0+ ARM64 | Details |
Release files / koyote-1.1.3-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | koyote-1.1.3-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3137bb65fbb0e6c6f940f198b5d27288c4c20411c472aee1010d2c3b10cb5eed
|
|
BLAKE2b-256 checksum How to use checksums |
0ba0ebbe1845ad662f07ca979a9505568e6dcce945ec72a8f783dbbb82070142
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|