Ordine — self-healing task pipelines for your desktop.
Project description
Ordine
Self-healing task pipelines for your desktop.
Ordine watches folders and manifests, runs your files through step pipelines, and — when a step fails — recovers through the branches you (or an AI you approve) taught it. Every task is exactly-once, every output name is ordinal-true, and everything runs locally.
Why Ordine
You have a CSV of asset names and prompts. You want images generated for each row, cleaned up (white background → transparent, cropped to content), named exactly by their row — even when rows 3–6 fail — and delivered to your game folder. Unattended. Resumable after a crash. Fixable from the browser when something breaks at 2 AM.
That workflow is Ordine's founding use case, and it ships as the built-in example. But nothing in the engine knows about images: any watch-a-folder → transform → deliver workflow fits.
- Ordinal guarantee — file 7 gets row 7's name, always. Failures in between never shift names (ordine is Italian for order; it's the soul of the tool).
- Recovery branches — declare fallback step sequences per step. Primary fails → branches run → flags escalate by ladder level when everything is exhausted.
- Exactly-once — a SQLite ledger dedups by content hash or manifest row. Rerun anything, anytime: nothing double-processes.
- Dry-run lab — rehearse playbooks on copied samples in a sandbox that never touches production data, step through execution, fix from the failing step, resume with the validated prefix replayed.
- AI that drafts, never executes — describe a pipeline and get a validated draft; let a model diagnose a failure and propose a recovery branch. Nothing applies without your explicit approval. Bring your own key (Anthropic, OpenAI, or any OpenAI-compatible endpoint — Ollama and DeepSeek included). Works fully without any key, too.
- Local and quiet — no telemetry, ever. No accounts. Your files, your machine, your keys.
Quickstart (from source, ~3 minutes)
git clone https://github.com/Antikatoptis-Pareidolia/ordine.git
cd ordine && uv sync
uv run ordine example ~/ordine-demo
uv run ordine run ~/ordine-demo/png-cleanup.yml --oneshot
Five sample images are validated, made transparent, trimmed, renamed
from assets.csv, and exported to exports/. Then start the web UI:
uv run ordine serve # → http://127.0.0.1:8484
Press Start on a pipeline, drop a file into its watch folder, and watch the task appear, process, and land — or flag, diagnose, and heal.
After the first release:
pipx install ordineor the.debfrom Releases replace the clone.
The chain example
The full founding workflow — manifest → image generation → cleanup —
ships in examples/chain/ and runs offline with a deterministic
mock provider:
uv run ordine run examples/chain/gen-images.yml --oneshot # CSV rows → images
uv run ordine run examples/chain/png-cleanup.yml --oneshot # images → named, transparent assets
Edit a prompt in assets.csv and rerun both: exactly one image
regenerates, flows through cleanup, and replaces its predecessor —
same filename, new content, neighbors untouched. Swap provider: mock
for openai when you want real generations.
How it fits together
trigger (folder_watch / manifest / manual)
└─ task (ordinal, exactly-once dedup)
└─ steps: validate → transform → rename_from_manifest → export
└─ on_failure: retries → recovery branches → escalating flags
Playbooks are YAML, versioned immutably with diffs and one-click revert. The web editor, the CLI, and the AI features all drive the same core — which never imports the LLM layer (enforced by tests), so pipeline runs stay deterministic.
Documentation
Start at docs/README.md: install, playbook reference, triggers, the dry-run lab, AI features, security posture (docs/security.md — read this before running playbooks from strangers: playbooks are code), and the plugin guide for writing your own steps.
Contributing
Dev setup, conventions, and the plan/audit workflow live in
CONTRIBUTING.md. CI runs lint, types, 390+ tests, and
installs the built .deb on a clean Ubuntu container for every push.
License
MIT — Copyright (c) 2026 Constantin Vlad / Antikatoptis Pareidolia.
Project details
Release history Release notifications | RSS feed
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 ordine-0.1.0.tar.gz.
File metadata
- Download URL: ordine-0.1.0.tar.gz
- Upload date:
- Size: 162.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75b684e86aaf15cb4e64995c5701e6b973829e6540c2f7ee3fda1329d549465d
|
|
| MD5 |
c5131567ae9424525306dd77e010495a
|
|
| BLAKE2b-256 |
0c01c6b7719fb389a15fe5dc71cac08e9801c36386b294549170b507ff8a510e
|
Provenance
The following attestation bundles were made for ordine-0.1.0.tar.gz:
Publisher:
release.yml on Antikatoptis-Pareidolia/ordine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ordine-0.1.0.tar.gz -
Subject digest:
75b684e86aaf15cb4e64995c5701e6b973829e6540c2f7ee3fda1329d549465d - Sigstore transparency entry: 2167072908
- Sigstore integration time:
-
Permalink:
Antikatoptis-Pareidolia/ordine@c9e13d5bd13e1963cc1260da60087b6604724fc8 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Antikatoptis-Pareidolia
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c9e13d5bd13e1963cc1260da60087b6604724fc8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ordine-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ordine-0.1.0-py3-none-any.whl
- Upload date:
- Size: 164.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94ae3d63943017ca45ca507d8b5ffb777b23148b09753bf0064db27d75d48ffd
|
|
| MD5 |
c7f2b6c815f0892547247d87452b7faf
|
|
| BLAKE2b-256 |
800b78feb2f9ffa83755e9701b30da6a87df641f7bde24f42c3360cfee5c2163
|
Provenance
The following attestation bundles were made for ordine-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Antikatoptis-Pareidolia/ordine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ordine-0.1.0-py3-none-any.whl -
Subject digest:
94ae3d63943017ca45ca507d8b5ffb777b23148b09753bf0064db27d75d48ffd - Sigstore transparency entry: 2167072936
- Sigstore integration time:
-
Permalink:
Antikatoptis-Pareidolia/ordine@c9e13d5bd13e1963cc1260da60087b6604724fc8 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Antikatoptis-Pareidolia
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c9e13d5bd13e1963cc1260da60087b6604724fc8 -
Trigger Event:
push
-
Statement type: