AI-ready workflow contract for software projects.
Project description
Fluxy
Fluxy is an AI-ready workflow contract for software projects.
It gives humans, CI, and AI coding agents one clear place to understand how a project should be run, tested, validated, and shipped.
pip install fluxy
fluxy init
fluxy doctor
fluxy run check
What is Fluxy?
Fluxy is a small CLI built around fluxy.yml.
That file describes the commands a project supports:
- local development workflows
- lint, test, check, and build commands
- required environment variables
- protected release and deploy tasks
- list safe workflows for humans and AI agents
Cursor writes code. Fluxy tells it how to run, test, and ship safely.
Installation
pip install fluxy
For isolated CLI installation:
pipx install fluxy
Quick start
Create a workflow file:
fluxy init
Inspect the project:
fluxy doctor
List available workflows:
fluxy list
Run a workflow:
fluxy run check
Core commands
fluxy init
fluxy list
fluxy run <task>
fluxy run <task> --agent
fluxy env check
fluxy env check --task release
fluxy doctor
fluxy --version
Python API
Fluxy also exposes a small Python API for tools that want to inspect the same workflow contract:
from fluxy import check_environment, list_tasks, load_workflow, run
workflow = load_workflow("fluxy.yml")
print(list_tasks(workflow, agent_safe=True))
print(check_environment(workflow))
run(workflow, "check", agent=True)
Example workflow
project: my-python-package
tasks:
lint:
description: Run static checks.
agent_safe: true
cmd: ruff check .
test:
description: Run the test suite.
agent_safe: true
cmd: pytest
check:
description: Run all local validation before a pull request.
agent_safe: true
steps:
- task: lint
- task: test
build:
description: Build distribution files.
agent_safe: true
cmd: python -m build
release:
description: Upload the package after human review.
protected: true
agent_safe: false
env:
- name: PYPI_API_TOKEN
description: Required only for release.
secret: true
steps:
- task: check
- task: build
- run: python -m twine upload dist/*
Protected tasks require human confirmation:
fluxy run release
Non-interactive environments can use --yes only after an explicit human
decision:
fluxy run release --yes
AI agents
AI agents can inspect and run only the tasks marked as safe:
fluxy list --agent-safe
fluxy run check --agent
If a task is not marked agent_safe: true, Fluxy refuses to run it in agent
mode. Protected tasks such as release and deploy are blocked.
Fluxy does not include telemetry. It does not send project names, paths, command strings, environment variables, repository URLs, or usage events anywhere.
License
Fluxy is released under the MIT License.
Author
Created by Jasurbek Kamilov.
Maintained as the Fluxy open-source project.
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 fluxy-0.4.1.tar.gz.
File metadata
- Download URL: fluxy-0.4.1.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d0b6925043c6d401e43410b7d9f542424c850311098d5094b6f61b9e64aa069
|
|
| MD5 |
df3d46d36eb311e57b411f8c40987f0c
|
|
| BLAKE2b-256 |
f587332e1daec54051727356fc610dd69bfef204af9694612fcd246925cf26c1
|
File details
Details for the file fluxy-0.4.1-py3-none-any.whl.
File metadata
- Download URL: fluxy-0.4.1-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e6e3eb453e0969fab1e160abe0ea07ddc78a88bb442c7c5879d52171b726897
|
|
| MD5 |
5176ec9a24abd8458701288b4b3c07e6
|
|
| BLAKE2b-256 |
b7584b54e4b302868e1bbf6e0c6a88147372e5e0d74778a6a378502d7f5e993a
|