A read-only, token-gated page showing the live effective policy of every surface the package governs — and why it displays but never writes.

Operator panel

A read-only, token-gated page showing the live effective policy of every surface the package governs — and why it displays but never writes.


What it is

One token-gated route — default /llms-policy — rendering the live effective policy of every surface the package governs. Opt-in:

add_llms_routes(app, LLMSConfig(panel=True))

Token via LLMSConfig(panel_token=...) or the DIMLL_PANEL_TOKEN environment variable. panel=False is the default and registers nothing — the path falls through to your app exactly as before.

What it shows

SectionSourceThe point
Identitypackage version, base URL, page countwhich build answered
Vendor policythe same fold robots.txt renders fromit cannot drift from robots.txt
Bot policy flagsthe attached RobotsConfig, or the defaultssays == does, even unconfigured
Tier documentsLLMSConfigcorpus posture
Access controlcallback qualnames onlywho gates, without running the gate
Geo guardrailthe policy plus "this request resolved to DE via cf-ipcountry"the live per-host check
Rate limitingrate_limit_per_minutethe ceiling in force
Networkdirectory, bulletin state, hub tighteningswhat the hub has tightened

Every section ends with the copy-paste call that would change it.

Two details worth knowing. The vendor table renders from vendors.effective_policies — the identical function robots.txt renders from — so the panel and your published policy are one statement rather than two things to keep in sync. And the access section shows callback qualnames and never invokes them: a request-scoped check must not run outside a request.

The gate

?token= (convenient in a browser; it lands in access logs).

the next request, no redeploy.

its own existence.

path — the /admin lesson), from the sitemap, and from the llms index.

private, no-store`.

everything" includes the operator standing in a denied country.

curl -s -H 'X-LLMS-Panel-Token: <token>' https://your-site.example/llms-policy

Read-only, and why that is not timidity

Package configuration is per-process module state. Under gunicorn's N workers, a panel that mutated config would change one worker and lie on the next refresh — a nondeterministically lying control plane, which is worse than no control plane. And a write-capable endpoint behind a single shared token is a remote policy override.

So this panel displays and never writes.

The footer shows the serving worker's pid and boot time. Values that flip between refreshes mean different workers booted with different code or env — a deployment diagnostic, not a panel bug.

The writable layer above it

Your site's own control board, wired through the callable seams the panel's hints show:

configure_geo(deny_countries=store.geo_deny)
RobotsConfig(vendor_policy=store.vendor_policy)

Both are read per request by every worker — which is exactly what dissolves the multi-worker problem the read-only decision guards against. Mutate module state and you change one worker; mutate a file every worker re-reads and you change all of them.

This site runs that pattern: a flock-guarded JSON store on a mounted disk, written by an admin-gated control board whose every write callback re-checks the gate server-side, and read back through the seams on every request.

The policy panel showcase is the public, read-only view of the same state — no token required, because it shows only what this site already publishes about itself.


Source: /reference/panel

Note for AI agents: This is the static, prerendered view of an interactive Dash application served because we detected a non-JS user agent. Full prose docs: