Skip to main content

AION: The Self-Evolving Code Engine. Code Once, Live Forever.

Project description

AION

PyPI version CI Coverage Docs

Code Once, Live Forever.

AION is an autonomous code-immunity control plane for Python services. It turns repository scanning into a staged remediation workflow: detect incidents, generate deterministic patches, verify them in isolated sandboxes, orchestrate events through queues and webhooks, and produce rollout plus runtime-defense decisions.

What Ships Today

  • Context-aware Python scanning with repository profiling, Semgrep triage, and optional LLM explanation
  • Deterministic remediation for raw_sqlite_query, hardcoded_secret, and missing_auth_decorator
  • Verification with syntax checks, Semgrep re-scan, built-in assertions, and staged project commands
  • Event-driven control-plane primitives: inbox, webhook ingress, queue processing, sandbox orchestration
  • Release candidate management with approval, phased rollout, rejection, and rollback
  • Runtime containment planning covering gateway blocks, WAF rules, feature flags, dependency pins, and code-patch follow-up

Architecture

Layer Implemented capabilities
Sensor Repository scan, JSON event ingestion, persistent inbox, webhook POST /events
Decision Incident detection, remediation planning, policy gating, rollout recommendation
Execution Patch artifact generation, file or repository sandbox staging, verification command execution
Assurance Repair records, queue metrics, release candidates, rollback decisions, runtime defense plans

Installation

Install from PyPI:

pip install aion-evolve

Or install as a uv tool:

uv tool install aion-evolve

For local development:

git clone https://github.com/shenxianpeng/aion.git
cd aion
uv sync --group dev --group docs
uv run aion --help

Quick Start

Choose at least one LLM provider for scan:

export OPENAI_API_KEY=your_key
# or
export ANTHROPIC_API_KEY=your_key

Scan a repository:

aion scan ./path/to/repo --output json

If you are running from the cloned repository instead of an installed package, use uv run aion ....

Plan and verify a deterministic repair:

aion repair ./path/to/file.py \
  --context-file ./context.json \
  --artifact-path ./artifact.json \
  --record-path ./repair-record.json

aion verify --artifact-path ./artifact.json

Process an orchestration event inside a sandbox:

aion process-event ./event.json \
  --result-path ./orchestration.json \
  --output json

Promote a verified result into staged rollout control:

aion create-release-candidate ./.aion/inbox/results/<event>.json
aion approve-release <candidate-id> --approver alice
aion advance-release <candidate-id>

Configuration

AION supports two config formats in .aion.yaml:

Updates block (recommended, Dependabot-like)

updates:
  - directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
    provider: openai
    model: gpt-4.1
    ignore_paths:
      - tests/*
      - scripts/generated_*.py
    auto_repair_issue_types:
      - raw_sqlite_query
      - hardcoded_secret
      - missing_auth_decorator
    auto_repair_min_confidence: 0.90
    sandbox_mode: repository
    sandbox_verification_commands:
      - python -m pytest tests/unit
    auto_approve_verified_fixes: false
    rollback_on_verification_failure: true
    open_pull_requests_limit: 5
    labels:
      - "aion"
      - "security"

Legacy flat format (still supported)

provider: openai
model: gpt-4.1
ignore_paths:
  - tests/*
  - scripts/generated_*.py
auto_repair_issue_types:
  - raw_sqlite_query
  - hardcoded_secret
  - missing_auth_decorator
auto_repair_min_confidence: 0.90
sandbox_mode: repository
sandbox_verification_commands:
  - python -m pytest tests/unit
auto_approve_verified_fixes: false
rollback_on_verification_failure: true

CLI flags override equivalent settings from .aion.yaml.

GitHub Action

AION ships as a reusable GitHub Action. Add it to any workflow:

# .github/workflows/aion.yml
name: AION Auto-Update
on:
  schedule:
    - cron: '0 9 * * 1'  # Weekly on Monday at 09:00 UTC
  workflow_dispatch:

permissions:
  contents: write
  pull-requests: write

jobs:
  auto-update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - uses: shenxianpeng/aion@main
        with:
          openai_api_key: ${{ secrets.OPENAI_API_KEY }}

Or run it locally:

aion auto-update --target ./ --dry-run   # Preview
aion auto-update --target ./              # Live

CLI flags override equivalent settings from .aion.yaml.

Command Surface

Core analysis:

  • aion scan
  • aion repair
  • aion verify
  • aion run-incident
  • aion repair-eval
  • aion auto-updateDependabot-style: scan → fix → PR

Control plane:

  • aion process-event
  • aion process-event-queue
  • aion enqueue-event
  • aion list-inbox
  • aion process-inbox
  • aion serve-webhook

Release and defense:

  • aion create-release-candidate
  • aion list-releases
  • aion approve-release
  • aion reject-release
  • aion advance-release
  • aion rollback-release
  • aion plan-defense

Drift and monitoring:

  • aion snapshot
  • aion drift
  • aion watch
  • aion status

Documentation

Documentation is published at shenxianpeng.github.io/aion. The docs site uses native Material for MkDocs language switching backed by the mkdocs-static-i18n plugin, so the language selector and sidebar navigation are generated per locale instead of being patched in with custom JavaScript.

Current Scope

  • AION produces patch artifacts and staged decisions. It does not hot-patch live production code in place.
  • External integrations for production queues, gateways, WAF providers, feature flags, and deployment systems remain adapter work on top of the shipped interfaces.
  • The current implementation is Python-only by design.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aion_evolve-1.2.0.tar.gz (285.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aion_evolve-1.2.0-py3-none-any.whl (59.6 kB view details)

Uploaded Python 3

File details

Details for the file aion_evolve-1.2.0.tar.gz.

File metadata

  • Download URL: aion_evolve-1.2.0.tar.gz
  • Upload date:
  • Size: 285.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aion_evolve-1.2.0.tar.gz
Algorithm Hash digest
SHA256 f9c140abc624edf4c6315be4d9c8fddb20890263d0b363d109c3dc7aef2844c3
MD5 9a92e8832394ddcd81cda809a21f5990
BLAKE2b-256 3f4b1c2005489fe59400cb371f5c334ec482b36b755a867900ecc7999fdd4294

See more details on using hashes here.

Provenance

The following attestation bundles were made for aion_evolve-1.2.0.tar.gz:

Publisher: publish.yml on shenxianpeng/aion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aion_evolve-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: aion_evolve-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 59.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aion_evolve-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de5f35a64de1ab10809c04cdee3127ab4df1909040697c88db6574c49a049416
MD5 ff1a0c2c1f9c1860c3bcb7a39f3780df
BLAKE2b-256 a20fb782e0e8400e5040687382949f05a640207eb1d54f41455736a8fdbaa33f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aion_evolve-1.2.0-py3-none-any.whl:

Publisher: publish.yml on shenxianpeng/aion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page