Skip to main content

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

Project description

AION

PyPI version CI Coverage Docs AION Auto-Update

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
# or
export DEEPSEEK_API_KEY=your_key
# or
export QWEN_API_KEY=your_key
# or
export GEMINI_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 uses a flat .aion.yaml config:

Supported Providers

Provider Env Variable Default Model
Anthropic ANTHROPIC_API_KEY claude-3-5-sonnet-latest
OpenAI OPENAI_API_KEY gpt-4.1
DeepSeek DEEPSEEK_API_KEY deepseek-chat
Qwen (Tongyi) QWEN_API_KEY qwen-plus
Gemini GEMINI_API_KEY gemini-2.0-flash
Azure OpenAI AZURE_OPENAI_API_KEY gpt-4

Config example

directory: "/"
schedule:
  interval: "weekly"
  day: "monday"
  time: "09:00"
  timezone: "UTC"
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"
reviewers:
  - "team:security"
assignees:
  - "username"
target_branch: "main"
commit_message_prefix: "[AION]"

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 use deepseek, qwen, anthropic, gemini:
          # deepseek_api_key: ${{ secrets.DEEPSEEK_API_KEY }}
          # qwen_api_key: ${{ secrets.QWEN_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-updatescan → 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.3.0.tar.gz (294.0 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.3.0-py3-none-any.whl (58.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aion_evolve-1.3.0.tar.gz
  • Upload date:
  • Size: 294.0 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.3.0.tar.gz
Algorithm Hash digest
SHA256 e5e764854abb3a4962d729fb6608d1fee2923abe810fbbd37058d39c2e249468
MD5 9306dba3955df27005ba3b111169172e
BLAKE2b-256 23096820c5fe0b701fe5b1736df7e779ed19a2fb5953c07f4155d752550f69af

See more details on using hashes here.

Provenance

The following attestation bundles were made for aion_evolve-1.3.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: aion_evolve-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 58.8 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a4adc831d57410b55d04f084b64be2739551fd18c5e257c7380c28ef708b0f7
MD5 25c87d13e90244def41271125c809c81
BLAKE2b-256 6b7ac042136b3f6a3d6506ce3403b13bf6c550a525d307f9dcae20d10ef8f252

See more details on using hashes here.

Provenance

The following attestation bundles were made for aion_evolve-1.3.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