Dinoer

Your first run

One command, its answer, and how to read the three fields that matter: succes, boussole and etat.

/opt/dinoer/venv/bin/python3 /opt/dinoer/shot.py \
  --url https://example.com --guide-version 1.6
{"succes": true, "http_status": 200,
 "boussole": {"titre_page": "Example Domain", "dernier_code_http": 200},
 "etat": {"pret_a_agir": true, "niveau_confiance": "eleve",
          "raisons": ["aucun signal de friction détecté"]}}

The answer is a JSON document that says what happened. It contains no image: Dinoer produces none, in any mode.

Reading the answer

succes concerns the run, not the page. A page that returns a 404 can be read successfully: succes: true, http_status: 404. Read both.

boussole says where the call actually ended: the URL after redirects (url_courante), the page title, the last HTTP status. When a scenario goes wrong, it is often because the agent believed it was on a page it had left.

etat reports; it does not decide. pret_a_agir: false means that Dinoer noticed something, a WAF signature or a session drift. The run is not refused, and the decision is yours.

Add the structure

/opt/dinoer/venv/bin/python3 /opt/dinoer/shot.py \
  --url https://example.com --a11y --guide-version 1.6

--a11y adds the accessibility tree as text: roles, links, headings. With the extraire_texte action, which returns the cleaned text of the page, that is all Dinoer reads of a page. What both return →

When the answer disappoints

{"succes": false, "erreur": "guide_non_lu"}: --guide-version is missing or outdated. Read /opt/dinoer/docs/GUIDE_LLM.md, take the number in its header, pass it.

A page that never finishes loading: some targets never stop using the network, and no timeout fixes that; --wait-until load does. The recipe →

A click reported as successful while nothing changed: read boussole before concluding. More situations →