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 input is deduplicated, every output name is ordinal-true, and everything runs locally.
Install
pipx install ordine
Image pipelines work best with ImageMagick installed (sudo apt install imagemagick).
Or install the .deb from Releases:
sudo apt install ./ordine_*_amd64.deb imagemagick
See docs/install.md for upgrades, systemd, and development setup.
Quickstart
From a clone — also the contributor path (~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
Six 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
With pipx or the .deb, drop the uv run prefix (ordine example, ordine run, ordine serve).
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.
Why Ordine
Any watch → transform → deliver workflow fits Ordine: shell commands, scripts, documents, images — steps are plugins.
Our founding example is 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 ships as the built-in example and in examples/chain/. Nothing in the engine is image-specific.
- Universal steps —
shell.runruns any command; write custom steps as tiny Python plugins (see docs/plugin-guide.md) - 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.
- Durable deduplication — a SQLite ledger admits each content hash or manifest row once. Crash retries may replay a step, so externally visible steps should be idempotent.
- 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.
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
A document-only variant (shell commands, no image steps) lives in
examples/docs-pipeline/.
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, durable 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
Built by Constantin Vlad with an AI plan/audit/implement workflow —
see CONTRIBUTING.md for how plans, audits, and reviews drive every commit.
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.
Metadata
Release files for ordine 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ordine-0.3.0.tar.gz | 186.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ordine-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 368.4 kB
Release files / ordine-0.3.0.tar.gz
| Download URL | ordine-0.3.0.tar.gz |
|---|---|
| Size | 186.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b1ec795c6483072745efd8f4758975c64fbbdda1c35bee90aea4b3915f0056b
|
|
BLAKE2b-256 checksum How to use checksums |
534fa88f825e98c0a245a705378c4de5a4ecc9db56f676d36a55b7c7f517e16c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / ordine-0.3.0-py3-none-any.whl
| Download URL | ordine-0.3.0-py3-none-any.whl |
|---|---|
| Size | 181.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f8b861a8c5143af131affe12fd97cf46b6079d25414a67c8ef38feca03dbd1c0
|
|
BLAKE2b-256 checksum How to use checksums |
2cf94a990bcbf1941fdad3e6a36505b550d541e1a275ac1f7992cd1733d9e306
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log