Metadata-Version: 2.2
Name: fluxy
Version: 0.4.1
Summary: AI-ready workflow contract for software projects.
Author: Jasurbek Kamilov
Maintainer: Fluxy
License: MIT
Project-URL: Homepage, https://github.com/bytezora/fluxy
Project-URL: Source, https://github.com/bytezora/fluxy
Project-URL: Issues, https://github.com/bytezora/fluxy/issues
Keywords: cli,developer-tools,automation,workflow,ci,yaml,ai-agents,task-runner
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyYAML>=6.0
Requires-Dist: rich<14,>=13.7
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: ruff>=0.5; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"

# 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.

```bash
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

```bash
pip install fluxy
```

For isolated CLI installation:

```bash
pipx install fluxy
```

## Quick start

Create a workflow file:

```bash
fluxy init
```

Inspect the project:

```bash
fluxy doctor
```

List available workflows:

```bash
fluxy list
```

Run a workflow:

```bash
fluxy run check
```

## Core commands

```bash
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:

```python
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

```yaml
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:

```bash
fluxy run release
```

Non-interactive environments can use `--yes` only after an explicit human
decision:

```bash
fluxy run release --yes
```

## AI agents

AI agents can inspect and run only the tasks marked as safe:

```bash
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.
