Skip to main content

OverView of a web app

Project description

ov

OverView — point it at a URL and it drives the web app like a user, records what the app does (pages, DOM, screenshots, network, console, journey) and what it's made of (HTML, JS, frameworks, API surface), then analyzes both for UX and software architecture and writes Markdown reports plus a single synopsis.

import ov

run = ov.observe("https://example.com")        # capture (zero config)
print(run.fingerprint)                          # detected technologies
print(len(run.artifacts), "artifacts captured")
ov observe https://example.com                  # same, from the shell
ov check                                         # what system deps are present

ov is a tool + skill library with a deterministic, model-free core. The near-term "agent" that orchestrates it is a host agent (Claude Code) following the skills in .claude/skills/ov supplies the hands (drive the target) and eyes (observe + analyze); the host supplies the control loop. Everything in the core runs with no model and no host, so it's testable, cheap, and repeatable.

Install

pip install -e .            # the package
playwright install chromium # the browser it drives (required for capture)

The arch/API reconstruction and evidence layers have optional extras (pip install -e ".[arch,evidence]") and an optional Node sidecar; run ov check (or ov.check_requirements()) to see what's present and how to install what's missing.

What it captures

Capture is organized into probes — independent, registerable units that each write typed artifacts into a content-addressed store:

  • Behavioral: navigation, network (request/response + size-capped bodies), dom (serialized DOM + ARIA snapshot + full AX tree), screenshot, console, perf, storage, websocket, sse.
  • Static: fingerprint (framework/library detection), assets (inventory).

The five operate primitives — observe / act / journal / progress / snapshot_state — are the deterministic, LLM-free "hands" the host (or a scripted driver) uses to drive a journey; the journey trace is the UX evidence.

The facade

Function What it does
ov.observe(url) Drive + capture → CaptureRun (persisted to a store)
ov.analyze(run) Deterministic UX + architecture analyzers → findings (Phase 2)
ov.report(run) Render Markdown report sections (Phase 2)
ov.synopsis(dir) Aggregate reports into one synopsis (Phase 2)
ov.overview(url) The one-liner: observe → analyze → report → synopsis (Phase 2)

The CLI mirrors these: ov observe|analyze|report|synopsis|overview|check|runs.

Authorization & privacy

ov analyzes publicly served frontend material and observable network behavior of targets you are authorized to inspect. Foreign-target runs require an explicit authorized=True acknowledgement; secret/PII capture is off by default and storage values are redacted. It does not defeat access controls.

Status

Built in phases (see the GitHub issues). Phase 1 (capture spine + operate primitives) is implemented; Phases 2–3 (deterministic analysis + reports, then the host-agent skill layer) follow. In-package agents are an optional, deferred Phase 4.


Author: Thor Whalen.

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

ov-0.1.1.tar.gz (192.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ov-0.1.1-py3-none-any.whl (107.8 kB view details)

Uploaded Python 3

File details

Details for the file ov-0.1.1.tar.gz.

File metadata

  • Download URL: ov-0.1.1.tar.gz
  • Upload date:
  • Size: 192.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ov-0.1.1.tar.gz
Algorithm Hash digest
SHA256 406986729bed6b6b15752e9b28bdc6084a40f810e11844f3af1df09e20baf1b6
MD5 ff9a0441388ce8eb05e593ce95535675
BLAKE2b-256 a0101a7afccb6d15c7c16ed72c14bf11e93b8ddb9503256c9d742dafcbc47c74

See more details on using hashes here.

File details

Details for the file ov-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ov-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 107.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ov-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 45cfa8f7ac0a45a6ed04045b089cced177d4f46257128acb4e353f04b7dba74b
MD5 9ea62112a48a48680a514a7321782269
BLAKE2b-256 0f52f2378e9c6e989a64e00ddf2eafd53aaf5e5f50fcd6a301c434aaf9fe5ab8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page