Metadata-Version: 2.4
Name: antibot-profile-lint
Version: 0.2.1
Summary: Lint antidetect profiles for Cloudflare/DataDome/reCAPTCHA readiness before checkout QA. CLI: bot-lint
Project-URL: Homepage, https://pypi.org/project/antibot-profile-lint/
Project-URL: Documentation, https://pypi.org/project/antibot-profile-lint/
Project-URL: Repository, https://github.com/multilogin-automation
Project-URL: Changelog, https://pypi.org/project/antibot-profile-lint/
Author: antibot-profile-lint contributors
License-Expression: MIT
License-File: LICENSE
Keywords: 2captcha-balance,akamai-bypass-template,antibot-linter,antibot-profile-lint,bot-protection-audit,capsolver-check,captcha-balance,cloudflare-turnstile,datadome-profile,profile-antibot,recaptcha-v3,turnstile-readiness
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.10
Requires-Dist: click>=8.1
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Description-Content-Type: text/markdown

# antibot-profile-lint

**Antibot profile linter** — Cloudflare Turnstile, DataDome, and reCAPTCHA readiness before checkout QA.

[![PyPI version](https://img.shields.io/pypi/v/antibot-profile-lint.svg)](https://pypi.org/project/antibot-profile-lint/)
[![Python versions](https://img.shields.io/pypi/pyversions/antibot-profile-lint.svg)](https://pypi.org/project/antibot-profile-lint/)
[![License: MIT](https://img.shields.io/pypi/l/antibot-profile-lint.svg)](https://pypi.org/project/antibot-profile-lint/)
[![GitHub](https://img.shields.io/badge/org-multilogin--automation-181717?logo=github)](https://github.com/multilogin-automation)

```bash
pip install antibot-profile-lint
bot-lint audit examples/profile-antibot.yaml
```

CLI: **`bot-lint`** · Python **3.10+** · offline lint only

> **Coupon hubs:** `SAAS50` — [anti-detect.github.io](https://anti-detect.github.io/) · [SaaSVerdict](https://saasverdict.com/). [Affiliate disclosure](docs/AFFILIATE.md).

## Problem

Checkout and anti-bot pages fail when MLX profiles lack consistent UA, timezone, WebGL, or captcha provider config — not just “bad proxies.”

## Install

```bash
pip install antibot-profile-lint
```

## Quick start

```bash
bot-lint init -d .bot-lint
bot-lint audit .bot-lint/profile.yaml
bot-lint audit profile.yaml
bot-lint balance --env .env
```

## CLI

| Command | Purpose |
|---------|---------|
| `bot-lint schema FILE` | Pydantic schema only (no lint rules) |
| `bot-lint audit FILE` | Lint antibot profile YAML |
| `bot-lint audit FILE --max-issues N` | Allow up to N issues before exit 1 |
| `bot-lint audit FILE --format json` | JSON lint report (CI) |
| `bot-lint report FILE [-o OUT]` | Write JSON report to file |
| `bot-lint validate FILE` | Schema + lint alias |
| `bot-lint dry-run FILE` | Preview issues without exit 1 |
| `bot-lint score FILE --format json` | Issue count for CI (soft gate) |
| `bot-lint score FILE --fail-above N` | Exit 1 if issues exceed N |
| `bot-lint catalog --format json` | Example profile lint index |
| `bot-lint template --format json` | Starter profile JSON |
| `bot-lint init -d DIR` | Create starter `.bot-lint/profile.yaml` |
| `bot-lint template` | Starter profile to stdout |
| `bot-lint balance --env .env` | Offline captcha key presence |
| `bot-lint balance --env .env --format json` | Captcha keys JSON report |
| `bot-lint checks --format json` | Audited fields as JSON |
| `bot-lint dry-run FILE --format json` | Preview lint JSON (no exit 1) |
| `bot-lint gaps FILE` | Tab-separated gap report |
| `bot-lint checks` | List audited fields |
| `bot-lint --show-deal` | Opt-in `SAAS50` info |

**Toolkit pipeline:** `mlx-token validate` → `fp-coherence audit` → `bot-lint audit` → `shop-warmup plan` → `farm-runner`

## Limitations

Advisory lint only — no live Turnstile/DataDome bypass. Pair with [playwright-cdp-probe](https://pypi.org/project/playwright-cdp-probe/) for exposure scoring.

## Production

Run **`fp-coherence audit`** → **`bot-lint audit`** → **`proxy-lane check`** before Stripe/Ticketmaster QA sessions. Coupon **`SAAS50`**. [docs/AFFILIATE.md](docs/AFFILIATE.md) · [docs/FAQ.md](docs/FAQ.md)

## Related tools (on PyPI)

| Package | CLI | Role |
|---------|-----|------|
| [fingerprint-coherence](https://pypi.org/project/fingerprint-coherence/) | `fp-coherence` | UA/WebGL lint |
| [playwright-cdp-probe](https://pypi.org/project/playwright-cdp-probe/) | `cdp-probe` | Exposure score |
| [mlx-id-token-kit](https://pypi.org/project/mlx-id-token-kit/) | `mlx-token` | MLX ID parse |
| [ecommerce-warmup-kit](https://pypi.org/project/ecommerce-warmup-kit/) | `shop-warmup` | Marketplace warmup |

## License

MIT

---

**Partner:** Multilogin · `SAAS50` · [github.com/multilogin-automation](https://github.com/multilogin-automation)
