Skip to main content

HyoDo

Local evidence verification for AI-assisted work. See what ran, what the evidence supports, and what remains unknown.

HyoDo is an open-source Python tool that runs on your computer. It reuses the tests and linters your project already has, reports their results, and marks missing evidence UNOBSERVED. That means there is not enough evidence to say whether a check passed or failed. HyoDo helps people review work. HyoDo does not run or authorize agents. It does not approve merges or deployments.

CI PyPI Python License OpenSSF Scorecard

Why HyoDo exists

HyoDo helps you inspect AI-assisted work: which project checks ran, what they found, and what remains unknown. Its guiding idea, Hyo (孝), is that technology should respect people's time and choices, and carry its share of the burden instead of passing it back to them. HyoDo records evidence; people decide what to do with it.

AI coding tools can move quickly, but a normal green check does not always answer:

  • Did the check actually run?
  • Did the agent touch only approved tools and paths?
  • Was missing or unreadable evidence treated as a pass?

HyoDo makes those boundaries explicit with local evidence, policy-evaluation results, and fail-closed verification status.

30-second start

pipx install hyodo
cd your-project
hyodo safe --strict
hyodo init
hyodo check

safe works immediately in any repository. With no path it scans uncommitted changes; a clean checkout reports UNOBSERVED, not PASS — pass . to scan the tree. init is optional: when it detects supported tooling it writes .hyodo/gates.toml; with zero detections it writes .hyodo/gates.toml.example instead, creates no live gates file, and check keeps the built-in sampled fallback. No detected tooling means no invented green check. See docs/GATES_SYNTAX.md for every gates.toml field.

Commit .hyodo/gates.toml and .hyodo/policy.toml (team-shared policy); keep the rest of .hyodo/ out of version control — see what to commit for the .gitignore split.

What it does

Need HyoDo surface
Early-warning safety scan hyodo safe
Reuse existing project checks hyodo init → hyodo check
Local agent evidence log hyodo event record
Tool / path / step policy hyodo policy check
Schema / eval / evidence report hyodo schema, eval, report
Local evidence panel hyodo dashboard --open
Optional MCP adapter hyodo mcp stdio / serve

Boundaries and current status

HyoDo provides local checks and evidence contracts; it does not grant execution authority or turn missing evidence into a pass. hyodo safe is an early-warning scan, not a full security audit, and callers must enforce DENY decisions. By default, HyoDo stores evidence digests and receipts; raw prompt and tool bodies are retained only when an operator explicitly opts into full-body storage. See the product boundary, measured state snapshot, and security model for the authoritative details. The legacy HyoDo Integrity Score command is advisory only. It retains a five-input geometric-mean method for compatibility. HyoDo's replacement evaluation model is being updated; it does not define the six reference values as one canonical score. The current package does not yet provide a general per-axis evaluator. Current source status may differ from the latest published package.

Use your existing CI

- uses: actions/setup-python@v5
  with:
    python-version: "3.12"
- run: pip install hyodo
- run: hyodo safe . --strict --max-files 0 --json
- uses: lofibrainwav/HyoDo/.github/actions/hyodo@vX.Y.Z

init detects existing test and lint tooling. Empty or malformed gate configuration exits 2, not 0. See the gate configuration reference.

Hooks and SARIF

Pin a signed release containing the hooks (v4.11.0 predates them):

- repo: https://github.com/lofibrainwav/HyoDo
  rev: vX.Y.Z
  hooks: [{id: hyodo-check}, {id: hyodo-safe-strict}]

hyodo report --format sarif writes a SARIF 2.1.0 visibility report. Measured DENY and unreadable-ledger conditions become alerts; hyodo check remains the fail-closed gate for missing or unmeasured quality evidence.

Optional agent evidence

hyodo event validate --file step.json
hyodo event record --file step.json --root . --policy .hyodo/policy.toml
hyodo policy check --file step.json --config .hyodo/policy.toml
hyodo schema check --schema agent.schema.json --payload step.json --json

Default event storage is digest-only. See examples/fde-evidence-spine/ for a demo event and examples/host-policies/ for a dual-host allowed_tools list (not a Cursor hook). Policy trust: docs/POLICY_TRUST.md. For an unattended feature queue that calls these gates from a host loop, see examples/factory-loop/.

Optional MCP

pip install 'hyodo[mcp]'                       # pipx: pipx install --force 'hyodo[mcp]'
hyodo mcp stdio --root .                       # local stdio
hyodo mcp serve --bind tailscale --bind-ip 100.99.88.77 \
  --token "$HYODO_MCP_TOKEN" --root .          # private-network connector

The extra has to land in the same environment that runs hyodo; a pipx install is isolated, so pip install 'hyodo[mcp]' after pipx install hyodo installs into a different interpreter and the SDK stays missing.

The MCP adapter uses the same CLI contracts rather than a second engine. It is not an MCP gateway, traffic proxy, or central authorization layer, and mcp.hyodo.app is contract-only, not this path.

Install and support

Python 3.10+: pipx install hyodo or pip install -U hyodo.

License

MIT. See LICENSE.

Release files for hyodo 4.21.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hyodo 4.21.7
File Size Uploaded
hyodo-4.21.7.tar.gz 374.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hyodo 4.21.7
File Interpreter ABI Platform
hyodo-4.21.7-py3-none-any.whl Python 3 none any Details

Total release size: 741.4 kB

Release files / hyodo-4.21.7.tar.gz

Download URL hyodo-4.21.7.tar.gz
Size 374.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ded0cc167fed0cef1d7f2d9b9efbe8fc6959440f280834c9398951ca1a75a927
BLAKE2b-256 checksum
How to use checksums
cca1433e93157d1c7ff9868f54abbbecb2fd865f6d951e0781f9557ce135a9a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / hyodo-4.21.7-py3-none-any.whl

Download URL hyodo-4.21.7-py3-none-any.whl
Size 366.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8237b9cf434dc5a558b554af71d59e618f55ff83ed2de9202b6d312932ca1ef
BLAKE2b-256 checksum
How to use checksums
8de06c94dd8a4c6240c169e294ddfe105fa878f8e2bb76175580c4d40c58b307
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

4.21.8

2 release files

This release

4.21.7 This release

2 release files

4.21.5

2 release files

4.21.4

2 release files

4.21.3

2 release files

4.21.1

2 release files

4.21.0

2 release files

4.20.2

2 release files

4.20.1

2 release files

4.20.0

2 release files

4.19.9

2 release files

4.19.8

2 release files

4.19.7

2 release files

4.19.6

2 release files

4.19.5

2 release files

4.19.4

2 release files

4.19.3

2 release files

4.19.2

2 release files

4.19.1

2 release files

4.19.0

2 release files

4.18.0

2 release files

4.9.0

2 release files

4.8.2

2 release files

4.8.1

2 release files

4.8.0

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.3.0

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page