Diwall

English
Download 1.24.4

You describe the screen to your model. It answers with confidence — from your description, not from the screen. The day you leave out a detail, the answer keeps exactly the same confidence.

With Diwall, it opens the page itself, acts on it, then reads the result back. The answer no longer rests on what you told it, but on what it observed.

First, the proof

This scenario ships with Diwall. You can run it as it is, today, before reading anything else on this site.

diwall-rpa --scenario /opt/diwall/scenarios/exemples/sondage_fast.json --guide-version 1.3
{"succes": true, "http_status": 200, "url_finale": "https://example.com/",
 "evaluations": [{"index": 1, "script": "document.title",
                  "valeur": "Example Domain"}],
 "boussole": {"titre_page": "Example Domain", "dernier_code_http": 200,
              "respect": {"actions_executees": 2, "duree_totale_ms": 2742,
                          "indice_agressivite": 0.5}}}

That file is in the repository. That command is the one you will type. That output came from running it on 4 August 2026 with Diwall 1.23.0, and the values are the ones it printed. It is abridged: the real answer carries fifteen more keys — timings, the capture path, the JS console, a per-action latency list. Durations change from one run to the next; nothing else here does. If your encrypted directory is configured but not mounted, two journal warnings print on stderr before it — the JSON goes to stdout regardless.

--guide-version is not decoration. Without it you get {"succes": false, "erreur": "guide_non_lu"} and nothing else happens. It is how an agent says I have read the guide — which is why every command on this site carries it. Why that lock exists →

What Diwall is

Diwall gives your model eyes on the web, a keyboard and a mouse, from your terminal.

Instead of simply talking with it in a text box, Diwall gives it what it needs to perceive and to act: it navigates, does real tasks in your place — configuring sites, searching, checking — and writes you usable documents at the end. All of it staying on your own computer.

Any model able to run a shell command can drive it — hosted (Claude, GPT, Gemini) or local (Ollama, vLLM). Diwall doesn’t know or care which one is calling it; only what happens to your data does. Local by default, remote only if you say so →

Where it runs Diwall installs on Debian 13, Ubuntu 24.04 and 26.04, Fedora 44, openSUSE Leap 16.0 and Arch Linux, by package, or by Git clone. Each package was installed and run in a clean container of its system. Other systems are not supported — not as a matter of principle: they are simply not the ones tested.

One session, from seeing to acting

$ diwall-shot --url http://localhost:8765/demo_som_en.html --som --guide-version 1.3

  → 10 interactive elements numbered
  → capture: /tmp/diwall/…/state_som_….png

  [4] INPUT   « operator »
  [5] INPUT   « •••••••• »
  [7] BUTTON  « Sign in »

$ diwall-rpa --scenario sign-in.json --guide-version 1.3

  {"type": "remplir_som", "id": 4, "valeur": "depuis_secrets"}
  {"type": "cliquer_som", "id": 7}

  → succes: true — 2 actions, 1 page

The three coloured lines are the whole point. The model does not receive an image to interpret: it receives a number. {"id": 7} is Sign in, with no selector to guess and nothing to describe.

That page is a fixture versioned in the repository, so the numbers above are the ones you get too. See the same page three ways →