This release is a pre-release and may not be stable for production use.
eawf — Eä Workflow
State-first, agent-driven development framework. Parallel waves, strict schema, Claude Code adapter.
Install
Requires Python 3.14 or newer and uv.
# one-off, leaves no command behind
uvx eawf --version
# persistent tool install
uv tool install eawf
# from a local checkout (contributors)
git clone <repo-url> eawf && cd eawf && uv sync
# Windows only: pulls the named-pipe daemon transport
uv tool install "eawf[windows]"
Full requirements, extras, and verification steps: install guide.
Quickstart
Run these from the root of any Git repository. Each command exits 0 on a clean bootstrap, and a test replays this exact block in a fresh temporary repository so the block cannot drift away from the CLI:
eawf init --quick
eawf phase open --auto --title "Bootstrap the first tracked delivery"
eawf status
eawf init --quick is the non-interactive path: it detects profiles, infers the project code from the directory name, writes the managed .gitignore block, and renders the runtime plugin tree. Drop --quick for the interactive wizard, or script it explicitly with eawf --no-input init --project-code DEMO.
Then take the repository through one full unit of work: first workflow.
Support
| Platform | CI runner | What CI runs there |
|---|---|---|
| Linux | ubuntu-24.04 |
full test suite on a real host |
| macOS | macos-26 |
full test suite on a real host |
| Windows | windows-latest |
named-pipe transport, packaging, and CLI smoke |
Python: >=3.14, and CI pins 3.14. The floor is declared once as requires-python in pyproject.toml; the published wheel's classifiers and this table are asserted against it and against the CI matrix by tests/integration/test_packaging.py.
Workflow
research → plan → execute (parallel waves) → cherry-pick → ship phase
Use slash commands /research, /prep, /audit, /ship, /review, /polish, or /flow to drive the lifecycle.
What gets committed
.ea/state.json— canonical project ledger. The eawfd daemon is the sole canonical mutator; theeawfstate CLI proxies mutations to it over JSON-RPC and falls back to a directportalockerwrite only when the daemon is unavailable (CI, one-shot, recovery). Read access is free.AGENTS.md— agent contract, regenerated byeawf syncwith the user region preserved on re-render.
The Claude Code plugin tree (.claude/ and CLAUDE.md) and any user-local files stay gitignored — they are machine-specific renders, not committed assets. Re-render anytime via eawf plugin install claude.
Docs
Start at the front door: install → quickstart → first workflow.
For the design intent behind it, read the source map for a one-line-per-package index of src/eawf/, then the architecture overview. The docs index lists everything else.
Contributing
See CONTRIBUTING.md for local development setup, harness plugin setup, and verification commands.
License
MIT — see LICENSE.
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 eawf-0.7.0.dev1.tar.gz.
File metadata
- Download URL: eawf-0.7.0.dev1.tar.gz
- Upload date:
- Size: 8.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd426bc669ba0b1bb145094a857c9fe7cbc27b12854ffb1134328deb91e87030
|
|
| MD5 |
e782a47a1538e304555d7ef554da680b
|
|
| BLAKE2b-256 |
f0ad071558fe589e80b8f371a3438acf377a57e629ddbf3aee209837e71e9561
|
Provenance
The following attestation bundles were made for eawf-0.7.0.dev1.tar.gz:
Publisher:
release.yaml on Elementarno9/eawf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eawf-0.7.0.dev1.tar.gz -
Subject digest:
dd426bc669ba0b1bb145094a857c9fe7cbc27b12854ffb1134328deb91e87030 - Sigstore transparency entry: 2753826726
- Sigstore integration time:
-
Permalink:
Elementarno9/eawf@89427cc6ae45cb8e8840d2d2ed9d57d5466d1a99 -
Branch / Tag:
refs/tags/v0.7.0.dev1 - Owner: https://github.com/Elementarno9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@89427cc6ae45cb8e8840d2d2ed9d57d5466d1a99 -
Trigger Event:
push
-
Statement type:
File details
Details for the file eawf-0.7.0.dev1-py3-none-any.whl.
File metadata
- Download URL: eawf-0.7.0.dev1-py3-none-any.whl
- Upload date:
- Size: 3.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5dd646f2bfbce9d0bdb761b8c4291fced110c0c4c53fe0da4abc57464b5d1c0c
|
|
| MD5 |
70f66a4ad621a4cf6684217319acef7b
|
|
| BLAKE2b-256 |
0137bc3e1885a03a86882bc54d32ababb5154315673ad27a232e3bb149798b56
|
Provenance
The following attestation bundles were made for eawf-0.7.0.dev1-py3-none-any.whl:
Publisher:
release.yaml on Elementarno9/eawf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eawf-0.7.0.dev1-py3-none-any.whl -
Subject digest:
5dd646f2bfbce9d0bdb761b8c4291fced110c0c4c53fe0da4abc57464b5d1c0c - Sigstore transparency entry: 2753826737
- Sigstore integration time:
-
Permalink:
Elementarno9/eawf@89427cc6ae45cb8e8840d2d2ed9d57d5466d1a99 -
Branch / Tag:
refs/tags/v0.7.0.dev1 - Owner: https://github.com/Elementarno9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@89427cc6ae45cb8e8840d2d2ed9d57d5466d1a99 -
Trigger Event:
push
-
Statement type: