Metadata-Version: 2.4
Name: dokeo
Version: 3.2.0
Summary: Thin API client for the Dokeo content quality gate (CLI and MCP)
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# dokeo

Thin API client for the [Dokeo](https://www.dokeo.co) content quality gate.
Python 3.9+. No third-party dependencies.

```bash
pip install dokeo
dokeo login dk_your_key
dokeo scan --content "Your draft"
dokeo whoami
```

Create a key at https://www.dokeo.co/account/api-keys.

`dokeo-mcp-server` speaks MCP over stdio and forwards tool calls to
https://api.dokeo.co. Set `DOKEO_API_KEY`. Optional `DOKEO_API_URL` points
at another API base.

Commands: `login`, `scan`, `batch`, `types`, `history`, `whoami`, `pre-commit`.
`dokeo --help` lists the flags for each one. The same list is on
https://www.dokeo.co/docs/cli.

## Gating in CI

`dokeo scan` exits 0 whatever the verdict unless you ask it to gate:

```bash
dokeo scan --file post.md --fail-on fail --min-score 80
dokeo scan --file post.md --fail-on warning --verdict-json   # small stable JSON
```

| Exit | Meaning |
|---|---|
| 0 | Passed the gate |
| 1 | Blocked: verdict at or past `--fail-on` (`blocker`, `fail`, `warning`, `optimization`, or `none`), or score under `--min-score` |
| 2 | Dokeo could not decide: no API key, bad input, or an API error with `--on-error block` |

`dokeo pre-commit` takes the same `--fail-on` (default `fail`) and `--min-score`.
`--verdict-json` prints `{"schema": "dokeo.verdict/v1", verdict, score, blocked, fail_on,
min_score, decision_hash, findings}`. The GitHub Action applies the same rule.
