From 0556a448b9bdc037838db8aaa9b3f552bf3fb5c2 Mon Sep 17 00:00:00 2001
From: theworker02
**Python-first observability for an Internet-wide census of automated traffic.**
-BotScope is an **Internet-wide bot traffic census**: the Global Observatory federates public crawler/IP panels, crawl catalogs, and optional CDN estimates into a worldwide automation picture — alongside a local analyzer and native Qt desktop Observatory for authorized logs, sessions, and live capture.
+BotScope is an **Internet-wide bot traffic census**: the Global Observatory federates public crawler/IP panels, crawl catalogs, and optional CDN estimates into a worldwide automation picture  alongside a local analyzer and native Qt desktop Observatory for authorized logs, sessions, and live capture.
[](https://github.com/theworker02/botscope/actions/workflows/ci.yml)
[](https://pypi.org/project/botscope/)
@@ -17,7 +25,7 @@ BotScope is an **Internet-wide bot traffic census**: the Global Observatory fede
[](https://github.com/theworker02/botscope/actions/workflows/ci.yml)
[](CHANGELOG.md)
-**Install from PyPI:** [`pip install botscope`](https://pypi.org/project/botscope/) · GUI: [`pip install "botscope[gui]"`](https://pypi.org/project/botscope/)
+**Install from PyPI:** [`pip install botscope`](https://pypi.org/project/botscope/) · GUI: [`pip install "botscope[gui]"`](https://pypi.org/project/botscope/)
> Network contribution is **OFF by default**. BotScope does not perform unauthorized scanning.
> Zero-config for your own logs: **no account**, **no cloud profile**, and **no API key** required to classify local traffic.
@@ -26,7 +34,7 @@ BotScope is an **Internet-wide bot traffic census**: the Global Observatory fede
## Try in 60 seconds
-No GUI, no network, no API keys — just a labeled offline demo:
+No GUI, no network, no API keys — just a labeled offline demo:
```bash
pip install botscope
@@ -58,18 +66,18 @@ First-hour guide: [`docs/guides/EASE_OF_ACCESS.md`](docs/guides/EASE_OF_ACCESS.m








-[Screenshot strip](docs/assets/demo/botscope-tour-strip.png) · [Recording script / MP4 placeholder](docs/assets/demo/README.md)
+[Screenshot strip](docs/assets/demo/botscope-tour-strip.png) · [Recording script / MP4 placeholder](docs/assets/demo/README.md)
-To capture a short screen recording yourself (launch → Demo → KPIs → Global → Events), follow the steps in [`docs/assets/demo/README.md`](docs/assets/demo/README.md) and drop `botscope-demo.mp4` (or `.webm`) beside the GIF.
+To capture a short screen recording yourself (launch → Demo → KPIs → Global → Events), follow the steps in [`docs/assets/demo/README.md`](docs/assets/demo/README.md) and drop `botscope-demo.mp4` (or `.webm`) beside the GIF.
---
@@ -95,16 +103,16 @@ BotScope is an **Internet-wide census of automated traffic**, with a local measu
- Classify requests from combined/common access logs (and optional PCAP / live paths)
- Separate **OBSERVED** totals from **CLASSIFIED** shares, with provenance badges
- Keep an honest **UNKNOWN** outcome instead of forcing certainty
-- Explore both **global census views** and local sessions in a **native desktop Observatory** (Qt / PySide6 — not a website)
+- Explore both **global census views** and local sessions in a **native desktop Observatory** (Qt / PySide6  not a website)
## What BotScope is not
-- **Not** limited to a single site or sensor — Global Observatory is the Internet-wide census surface
+- **Not** limited to a single site or sensor  Global Observatory is the Internet-wide census surface
- **Not** a claim that one local log alone equals the whole Internet (local shares stay labeled local; the census comes from federated global sources)
-- **Not** a cloud SaaS — analysis and preferences stay on your machine by default
+- **Not** a cloud SaaS  analysis and preferences stay on your machine by default
- **Not** a substitute for authorization: only analyze systems and traffic you own or have permission to measure
-The product’s primary global story is the **Internet-wide census**. Local Observatory KPIs remain dataset-scoped so you can compare your sensors against that census without conflating the two.
+The product’s primary global story is the **Internet-wide census**. Local Observatory KPIs remain dataset-scoped so you can compare your sensors against that census without conflating the two.
---
@@ -120,7 +128,7 @@ The product’s primary global story is the **Internet-wide census**. Local
| **Dataset Health** | Multi-dimension quality scorecard for the loaded session |
| **Events** | Virtualized event browser, quick search, shared safe query language |
| **Compare** | Session-to-session deltas and classifier-vs-labels panels (no causal claims) |
-| **Provenance** | OBSERVED vs CLASSIFIED vs INFERRED — numbers keep their lineage |
+| **Provenance** | OBSERVED vs CLASSIFIED vs INFERRED  numbers keep their lineage |
| **Exports** | Multi-format reports (Markdown, HTML, JSON, CSV) and research export helpers |
| **Live capture** | Authorized log-tail and optional local-interface sniff; measured rates only |
| **CLI + Python API** | Headless analyze / query / report / doctor alongside the GUI |
@@ -190,7 +198,7 @@ print(result.automation_fraction)
print(result.stats.by_category)
```
-More detail: [`docs/guides/EASE_OF_ACCESS.md`](docs/guides/EASE_OF_ACCESS.md) · [`docs/guides/QUICKSTART.md`](docs/guides/QUICKSTART.md) · [`docs/guides/INSTALLATION.md`](docs/guides/INSTALLATION.md)
+More detail: [`docs/guides/EASE_OF_ACCESS.md`](docs/guides/EASE_OF_ACCESS.md) · [`docs/guides/QUICKSTART.md`](docs/guides/QUICKSTART.md) · [`docs/guides/INSTALLATION.md`](docs/guides/INSTALLATION.md)
---
@@ -225,27 +233,27 @@ Run `botscope --help` or `botscope