Axion: An open-source local-first AI system for programming.
Project description
Axion
Analyze → Plan → Execute → Validate
A deterministic, local-first AI orchestrator for software engineers.
Axion is not a chat interface. It is not autocomplete. It is not “AI magic”.
It is an engineering tool.
What Axion is (and what it is not)
Axion treats Large Language Models as non-deterministic execution engines that must operate inside a strict, auditable pipeline.
Instead of asking an AI “please fix my code”, you force it to:
- Analyze the real project structure
- Plan concrete technical steps
- Execute changes as reviewable diffs
- Validate results with real tooling
No hidden prompts.
No blind edits.
No guessing.
Why this project exists
Most AI coding tools optimize for speed of output.
Software engineering optimizes for:
- correctness
- predictability
- debuggability
- long-term maintainability
That mismatch causes real problems:
- Code is generated without understanding the project
- Developers approve changes they don’t fully understand
- Bugs are pushed faster, not fewer
Axion exists to slow AI down and force it to behave like a junior engineer working under strict supervision.
The core difference
| Aspect | Typical AI Tools | Axion |
|---|---|---|
| Interaction | Chat / Autocomplete | Structured pipeline |
| Control | Implicit | Explicit and reviewable |
| Output | Raw code | Unified diffs |
| Context | Prompt-limited | Project-aware |
| Validation | Manual | Automated |
| Philosophy | “Trust the model” | “Trust the process” |
Design principles
Local-first
Your code stays on your machine. Axion runs locally and only sends what is strictly necessary to the model.
No magic
Every decision is logged. Every step is inspectable. Every change is explicit.
Tool-driven
The AI uses tools (AST parsing, tests, linters). It does not replace them.
Human-in-the-loop
Nothing is applied without your approval.
What Axion can do today
-
🔍 Structural code reviews
Detect bugs, architectural risks, performance issues, and security problems. -
🧭 Technical planning
Generate step-by-step implementation plans in Markdown. -
🧩 Diff-based solutions
Propose changes as standard unified diffs — no direct file mutation. -
🧪 Local validation
Run tests and tooling before applying changes. -
🔌 Extensible architecture
Plugin system for custom tools and workflows. -
🤖 Model agnostic
Works with OpenAI, Anthropic, Ollama, and any LiteLLM-compatible provider.
Installation
pip install axionflow
Python 3.10+ required.
Basic usage
Initialize / Review a project
axion review .
Generate a technical plan
axion plan "Refactor authentication to use JWT with refresh tokens"
Solve a concrete problem
axion solve "Fix silent failures in the reasoning engine error handling"
All commands follow the same pipeline:
Analyze → Plan → Execute → Validate
Extending Axion
Axion is designed to be extended by engineers.
- Custom tools
- Custom validators
- Custom reasoning steps
See the Plugin Development Guide.
Contributing
Axion is not looking for volume. It is looking for engineering-quality contributions.
If you care about:
- clean abstractions
- predictable systems
- readable diffs
- testable behavior
You’ll fit right in.
See CONTRIBUTING.md.
“Understanding the internals is the first step to excellence.”
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axionflow-1.3.4.tar.gz.
File metadata
- Download URL: axionflow-1.3.4.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e07483afe7184b72b0d6a930c5f5d7e6ee91b083ebf04f10a49475a691cf2325
|
|
| MD5 |
857926457dcbdc46b7e2b1503c4cec0c
|
|
| BLAKE2b-256 |
2e8c344a6bb6bb8d7ff0722be0c9d2886ede0cf3aeadd9acb72703a765ec41cd
|
Provenance
The following attestation bundles were made for axionflow-1.3.4.tar.gz:
Publisher:
publish.yml on KerubinDev/AxionFlow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axionflow-1.3.4.tar.gz -
Subject digest:
e07483afe7184b72b0d6a930c5f5d7e6ee91b083ebf04f10a49475a691cf2325 - Sigstore transparency entry: 925554944
- Sigstore integration time:
-
Permalink:
KerubinDev/AxionFlow@ad99bd95832ee7f1ff38061670f6facb2ef9b268 -
Branch / Tag:
refs/tags/v1.3.4 - Owner: https://github.com/KerubinDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ad99bd95832ee7f1ff38061670f6facb2ef9b268 -
Trigger Event:
push
-
Statement type:
File details
Details for the file axionflow-1.3.4-py3-none-any.whl.
File metadata
- Download URL: axionflow-1.3.4-py3-none-any.whl
- Upload date:
- Size: 32.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67e8cb3c64e7d25681e457fac155eb285d80bd678dfe678faf5734761939f213
|
|
| MD5 |
f129b6fa96c2395b955876fcae0da8a5
|
|
| BLAKE2b-256 |
96ad2b1aa614459030efe5a7e333517f234ba10134b0c0c709d3b3e29e1e5e49
|
Provenance
The following attestation bundles were made for axionflow-1.3.4-py3-none-any.whl:
Publisher:
publish.yml on KerubinDev/AxionFlow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axionflow-1.3.4-py3-none-any.whl -
Subject digest:
67e8cb3c64e7d25681e457fac155eb285d80bd678dfe678faf5734761939f213 - Sigstore transparency entry: 925554967
- Sigstore integration time:
-
Permalink:
KerubinDev/AxionFlow@ad99bd95832ee7f1ff38061670f6facb2ef9b268 -
Branch / Tag:
refs/tags/v1.3.4 - Owner: https://github.com/KerubinDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ad99bd95832ee7f1ff38061670f6facb2ef9b268 -
Trigger Event:
push
-
Statement type: