GLANCE

Open source · Developer tooling · pre-1.0

Glance

Honest status for Solana bots

Eyes + dry compose · no auto-send

Quickstart Try demo CLEAR LAB GitHub

Defined once here — every other mention links back.

Eyes
Read-only status cards. Fault-first health display — never suggests send, arm, or mint. Summary lines are marked (read-only · eyes-only).
Doctor
Fault-first classifier for operator messages. Status values: ok, warn, eyes_fault, blocking, unknown. Order: blocking flag → hygiene phrases → fault phrases → unknown.
Posture
How your tooling composes transactions. Allowed modes: dry compose, dry simulate, observe-only. Must not imply auto-send, a real send, or mint.
CLEAR
Operator CLEAR only — a human operator must explicitly CLEAR before anything sends. Glance observes and composes dry; it never auto-sends. The refusal is the product.

Clone the public repo, run the shipped checks, then compare with the synthetic demo below. No sign-in required.

  1. 1 · Clone the repo

    git clone https://github.com/Alarm2024/glance.git && cd glance

    You should see a glance/ directory containing lib/, demo/, and examples/.

  2. 2 · Run posture self-test (dry / eyes-only guard)

    pip install -e lib/python && python3 scripts/posture_selftest.py
    # pip 22 (Ubuntu 22.04): PYTHONPATH=lib/python python3 scripts/posture_selftest.py

    You should see: posture-selftest passed — dry compose / eyes-only across fixture + page sources

  3. 3 · Run the library demo CLI

    python3 examples/python-cli/glance_cli.py demo

    You should see a line starting with demo ok · status=warn and a redacted URL (no raw token).

  4. 4 · Summarize a synthetic fixture

    python3 examples/python-cli/glance_cli.py summarize demo/fixture-hold-stale-oracle.json
    python3 examples/python-cli/glance_cli.py summarize demo/fixture-clear.json

    You should see DEGRADED then OK — two different judgements from two synthetic files.

  5. 5 · Match the site demo

    Scroll to Demo, pick a synthetic case tab, or paste the JSON into the playground.

    You should see the same Summary line and six cards as the case label describes — client-side only, not data from a running bot.

Full integration guide in the repo →

Synthetic fixtures below — client-side only, not data from a running bot.

DEMO / SYNTHETIC — not from a running bot

Online connected

Uptime · 4h 12m

Process heartbeat OK (demo fixture)

Posture dry compose

Eyes + dry compose · no auto-send

Doctor ok

No blocking flags, no active faults

Hygiene checks passed · config exclusions applied

Feeds 2/3 ok
  • slot-streamok · 1.2s
  • account-deltaok · 0.8s
  • price-oraclestale · 47s
Last signal heartbeat

Received 12s ago

Synthetic tick — no strategy payload

Build 0.1.0-demo

Commit · fixture

Pre-1.0 demo build

Paste-ready JSON for this case

      
Paste your own status JSON

Glance can verify

  • Doctor message classification (ok / warn / fault / blocking)
  • Secret redaction before display
  • Banned overclaim phrases (CI via glance-check action)
  • Posture stays dry compose / eyes-only (posture self-test)
  • Synthetic fixture schema conformance

Glance cannot verify

  • Correctness of real trades, PnL, or strategy alpha
  • Wallet balances or real RPC endpoints
  • Whether an operator actually CLEARs off-site
  • Anything beyond what your status JSON reports

MIT licence · pre-1.0 (not yet on crates.io or PyPI) · synthetic demo data only · contact support@elghaly.dev

Rust · pre-1.0glance-status = { path = "lib/rust/glance-status" }
Python · pre-1.0pip install -e lib/python

Pre-1.0 local path install from the repo · MIT · synthetic demo data only

github.com/Alarm2024/glance →