universal-harness
Cross-substrate agent governance namespace — a thin facade over
aiking-corethat lets agents running on any substrate (Claude Code, Hermes, Sancio, OpenClaw, custom CLI clients) reach for the same guards, hooks, routers, and ZIQ retrieval pipeline under a brand-neutral name.
Install
pip install universal-harness
# or, via the AI King brand entrypoint:
pip install "aiking[uh]"
What it gives you
universal_harness re-exports the governance primitives shipped by
aiking-core — no duplicate
logic, just brand-neutral names so substrate-specific adapters
(claude-code-harness, hermes-agent-harness, sancio-harness,
openclaw-harness) can depend on a stable interface.
from universal_harness import ziq, fieldread, cerno, FEATURE_META
router = ziq.C0Router()
verdict = router.classify_with_hysteresis(...)
This is the same aiking_core.ziq.C0Router you'd get via
from aiking_core.ziq import C0Router — UH only re-binds the name so
your downstream code doesn't carry an aiking_* brand stamp.
License
AGPL-3.0-or-later. Commercial licensing available for adopters who need
to ship closed-source derivatives —
see COMMERCIAL_LICENSE.md.
Versioning
Tracks aiking-core in lockstep via
[tool.aiking.version_sync.locked] in the workspace pyproject.toml.
A PR cannot bump aiking-core without bumping the locked-set, and
scripts/sync_versions.py --check is wired into CI to enforce this.
Phase 2 migration note
During 2026-05-12 → 2026-11-01, some governance modules (guards,
hooks, c0_router, cli) still live in the legacy concinno
package and are exposed through aiking_core via the
concinno-shim. If you need one of those today, fall back to
from concinno.guards import … — it will keep working until the EOL
date documented in aiking-master-plan-v1-2026-05-12.md.
Companion packages
| Package | License | Role |
|---|---|---|
aiking-core |
AGPL-3.0-or-later | Engine — owns the actual logic |
universal-harness |
AGPL-3.0-or-later | Brand-neutral facade (this package) |
claude-code-harness |
MIT | Claude Code substrate adapter |
hermes-agent-harness |
MIT | Hermes substrate adapter |
sancio-harness |
MIT | Sancio substrate adapter |
openclaw-harness |
MIT | OpenClaw substrate adapter |
aiking |
MIT | Meta-package with extras_require aliases |
Metadata
Release files for universal-harness 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| universal_harness-1.2.0.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| universal_harness-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.1 kB
Release files / universal_harness-1.2.0.tar.gz
| Download URL | universal_harness-1.2.0.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2315db0db20d8b1de5f5a3f4f796fc667e9806ace376088c382f4f7937cc93f5
|
|
BLAKE2b-256 checksum How to use checksums |
8c561d401b2cd652eae027eb018ac03b6b2a9be71eefddf405137021ab097b1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / universal_harness-1.2.0-py3-none-any.whl
| Download URL | universal_harness-1.2.0-py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36a6ecc6cc8594d90905dd0b4b7b3dd3fe51dad983e3041d964648f1457aea53
|
|
BLAKE2b-256 checksum How to use checksums |
c43f304ec25c7a46bfee221ce8a647e7825f742ccc03e9904cd6c82a8edce523
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|