Ordel free CLI — local QA-automation for individual devs. Drives the deterministic ordel-engine and exposes it to a BYO coding agent over MCP. No account, no DB, no Ordel LLM.
Project description
ordel (free CLI)
Local QA automation for individual devs — a persistent, deterministic "QA brain" your own coding agent (Claude Code / Cursor / Copilot) drives over MCP. No account, no DB, no Ordel LLM. Your agent is the brain; Ordel is the memory + determinism.
Status: early build. The engine loop (map → record → generate → run) works locally today; packaged
npx ordeldistribution is the remaining in-progress piece — seedocs/plans/2026-07-17-free-cli-implementation-plan.md.
What works today (local, anonymous)
ordel init # create .ordel/ + an ORDEL.md bridge file. No account.
ordel doctor # preflight: Node / npx / @playwright/test / Chromium (+ how to fix)
ordel status # local coverage: pages, elements, run history
ordel graph # print the local app graph
ordel report # copy-pasteable Markdown report (Slack/Teams/Jira)
ordel mcp-install # print the MCP config to add to Claude Code / Cursor / Copilot
Then your coding agent, via MCP, drives the loop (needs Node + @playwright/test in the
project — run ordel doctor to check):
get_app_context/heal_selector— what Ordel knows + deterministic self-heal of a broken selector (fingerprint match, no LLM; ambiguous cases returnneeds_agentwith ranked candidates for your agent's own LLM to resolve — Ordel never spends inference).explore/record_flow— drive the real browser to map the app + record a flow.generate_scenarios/generate_invariant/generate_perf_check/generate_pom— turn artifacts into runnable specs (happy/negative/boundary, data-integrity, latency, POM).run_test— run a spec vianpx playwright testand read the real pass/fail.- QA-mind planning:
coverage_report/risk_rank/plan_tests/regression_set.
In progress (honest — no fake success)
- Single
npx ordeldistribution — a compiled Python engine binary wrapped in one npm package (built + smoke-tested in CI;npm/here is the wrapper). eject(one-command raw-Playwright export) — scaffold; but there's no lock-in today either: generated tests are already plaintests/*.spec.ts+pages/*.tson disk.- Team sync + hosted dashboard = the paid upgrade (this CLI stays free & local).
The pieces
ordel-engine(sibling package) — the pure deterministic core: fingerprint matching + self-heal, stdlib-only, zero backend.ordel_cli.store— the.ordel/file store (the local shell).ordel_cli.heal_service— heal + per-page circuit-breaker.ordel_cli.mcp_server— the local stdio MCP server your agent connects to.
Dev
pip install -e packages/ordel-engine -e packages/ordel-cli
pip install pytest
pytest packages/ordel-cli/tests packages/ordel-engine/tests -q
Known limitations (by design)
- Single-writer. The
.ordel/store is for one dev on one machine. Writes are atomic (temp-file +os.replace, so a crash can't corrupt a file), and a corruptedgraph.jsonis reported cleanly (never silently overwritten). But two processes writing the same page concurrently is last-writer-wins — there is no file lock. That is deliberate: a single-user local CLI doesn't warrant lock files / their failure modes. Team-scale concurrency is the hosted product's job (ordel push). - Browser tools need a local Node +
@playwright/test(explore/record_flow/run_test). They don't ship a browser; runordel doctor— if Node/Playwright/Chromium are missing it tells you the exact command to fix. Without them these tools report the missing dependency, never fake success.
Privacy
Local-first: no Ordel LLM, no telemetry, no account, no data sent to Ordel. The only network requests are to your own target app and standard package/browser downloads you initiate. See PRIVACY.md.
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 ordel_cli-0.2.0.tar.gz.
File metadata
- Download URL: ordel_cli-0.2.0.tar.gz
- Upload date:
- Size: 53.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd7bcdc34b95f0ef1e6b944a56c6f55c537f1df5c4dc14f77e0912aa1d41a0b6
|
|
| MD5 |
6c5234bbdc74b274bafd527aab3787b2
|
|
| BLAKE2b-256 |
534cca9381488da2b5c215a3dc129804f78d3e4449b22a61de43293d223b99fb
|
Provenance
The following attestation bundles were made for ordel_cli-0.2.0.tar.gz:
Publisher:
free-cli.yml on srikanth8286/ordel-platform
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ordel_cli-0.2.0.tar.gz -
Subject digest:
cd7bcdc34b95f0ef1e6b944a56c6f55c537f1df5c4dc14f77e0912aa1d41a0b6 - Sigstore transparency entry: 2204678118
- Sigstore integration time:
-
Permalink:
srikanth8286/ordel-platform@657c9dd4625bd3f106a4f6cfe802cf4f50dda8cb -
Branch / Tag:
refs/tags/free-cli-v0.2.0 - Owner: https://github.com/srikanth8286
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
free-cli.yml@657c9dd4625bd3f106a4f6cfe802cf4f50dda8cb -
Trigger Event:
push
-
Statement type:
File details
Details for the file ordel_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ordel_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 62.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37687feba7c3e4be3b4ffbbd823d793bf72eac212c5d9571ca776748e53397f0
|
|
| MD5 |
705ba8c3de3200578b55deed5a09edb9
|
|
| BLAKE2b-256 |
cf8b9f6cc2131968f262b7bb736794f7ed6483db8f9f2be69184a6f1dfc5d6e2
|
Provenance
The following attestation bundles were made for ordel_cli-0.2.0-py3-none-any.whl:
Publisher:
free-cli.yml on srikanth8286/ordel-platform
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ordel_cli-0.2.0-py3-none-any.whl -
Subject digest:
37687feba7c3e4be3b4ffbbd823d793bf72eac212c5d9571ca776748e53397f0 - Sigstore transparency entry: 2204678128
- Sigstore integration time:
-
Permalink:
srikanth8286/ordel-platform@657c9dd4625bd3f106a4f6cfe802cf4f50dda8cb -
Branch / Tag:
refs/tags/free-cli-v0.2.0 - Owner: https://github.com/srikanth8286
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
free-cli.yml@657c9dd4625bd3f106a4f6cfe802cf4f50dda8cb -
Trigger Event:
push
-
Statement type: