AgentCert was renamed to Witnora after the product expanded beyond point-in-time agent testing. Witnora is the evidence and assurance layer for autonomous AI systems: it records behavior, controls high-risk actions, verifies outcomes, and preserves reviewable evidence. Witnora, Inc. is the legal company name.
The migration is intentionally additive. Public branding and new integration defaults move to Witnora while stored evidence, stable protocols, published npm packages, database identifiers, and historical releases remain readable.
| Legacy | Canonical | Migration behavior |
|---|---|---|
| AgentCert | Witnora | New public product and company brand |
| AgentCert Runtime / Onegent Runtime | Witnora Runtime | Public name; internal module paths stay stable |
| AgentCert Evidence | Witnora Evidence | Visible report and UI name |
| AgentCert Bench | Witnora Bench | New public name; historical artifact paths stay stable |
agentcert CLI |
witnora CLI |
witnora owns the implementation; the final legacy package forwards to it |
AgentCertClient |
WitnoraClient |
Legacy TypeScript export remains an alias |
AgentCertRunRecorder |
WitnoraRunRecorder |
Legacy TypeScript export remains available |
agentcert.app |
witnora.com |
Public GET/HEAD pages redirect with path and query preserved |
AGENTCERT_* |
WITNORA_* |
Witnora names win; legacy names are fallback inputs |
.agentcert |
.witnora |
New local defaults; old state remains readable where persisted |
agentcert.config.json |
witnora.config.json |
Runner tries the new file first, then the legacy file |
https://witnora.com is canonical in page metadata, documentation, generated
email links, CLI defaults, sitemap, and structured data. When both domains point
to the same control-plane deployment, public requests to
https://agentcert.app/<path>?<query> receive a permanent path-preserving
redirect to https://witnora.com/<path>?<query>.
The legacy /v1/* API and /health do not redirect. This prevents an old SDK
from losing its authorization header across hosts and keeps production health
checks stable. Clients should migrate their base URL explicitly.
The canonical witnora package owns the complete CLI implementation.
agentcert@0.9.0 is the final compatibility facade and forwards to the exact
matching Witnora version:
npx witnora@latest try --template workflow
npx agentcert@latest try --template workflow # compatibility alias with one migration notice
New credentials are stored under ~/.witnora/credentials.json. If no new
credential file exists, the CLI reads ~/.agentcert/credentials.json. New run
configuration defaults to witnora.config.json; agentcert.config.json is a
read fallback. Versioned evidence schema names and established artifact
filenames are not renamed because external validators and CI integrations rely
on them.
The witnora package contains the maintained CLI. The frozen agentcert
package contains no assurance logic; it exposes both compatibility binaries
and forwards agentcert/cli and agentcert/browser-adapter-kit to Witnora.
The SDK exposes primary
WitnoraClient, WitnoraClientOptions, WitnoraSigningKey, and
WitnoraRunRecorder names alongside compatibility aliases.
New examples use npx witnora@latest. Existing
npx --package agentcert@latest witnora and npx agentcert@latest commands
remain supported by the final compatibility release. Future CLI features and
versions are published only as witnora; lockfiles resolve one implementation
and one behavior contract.
New code reads WITNORA_* first and falls back to the matching AGENTCERT_*
name. This applies to CLI credentials, hosted deployment configuration,
database/corpus settings, customer-owned collector gateways, and generated CI.
For example:
WITNORA_BASE_URL -> AGENTCERT_BASE_URL
WITNORA_PROJECT_ID -> AGENTCERT_PROJECT_ID
WITNORA_API_KEY -> AGENTCERT_API_KEY
WITNORA_DATABASE_URL -> AGENTCERT_DATABASE_URL
WITNORA_GATEWAY_TOKEN -> AGENTCERT_GATEWAY_TOKEN
The GitHub App writes both generations during the compatibility period so an existing workflow is not broken when CI is reconfigured.
These identifiers intentionally remain unchanged:
/v1/* HTTP routes and project-scoped API key format (ac_live_*);agentcert.evidence.v0.1,
agentcert.envelope.v0.1, and agentcert.assurance_scope.v0.1;AGENTCERT_BENCH_* process
handoff fields used by existing benchmark adapters; new hosted credentials
and evaluator tokens prefer WITNORA_*, while these bounded harness fields
remain dual-written during migration;New public text says Witnora, but historical bytes are not rewritten. A signed AgentCert-era packet remains valid and is accurately described as originally released under the AgentCert name.
The agentcert command, AgentCertClient, AgentCertRunRecorder,
AGENTCERT_*, .agentcert, and agentcert.config.json are compatibility
interfaces. No removal date is set in this migration. Removing any of them
requires a separately versioned breaking-change proposal and usage evidence.
Repository changes cannot perform account-level operations. The owner must:
witnora.com and www.witnora.com at the production service and keep
agentcert.app attached so the application can issue redirects.https://witnora.com, retaining the legacy callback during migration.WITNORA_* production secrets alongside existing AGENTCERT_* values,
validate a deployment, then retire legacy names only after client telemetry
shows they are unused.https://github.com/Kakarottoooo/agentcert.witnora bound to
.github/workflows/publish-witnora-npm.yml. The final AgentCert facade is
published once through .github/workflows/publish-npm.yml; no later
AgentCert feature release is permitted.ziwei@witnora.com and any desired security@, support@, or
alerts@ aliases before changing external sender identities.Witnora produces evidence and assurance decisions for declared scopes. It is not a government body, accredited certification authority, or guarantee that an autonomous system cannot fail. Prefer “verified by Witnora,” “backed by Witnora evidence,” and “outcome verified” over “certified by Witnora.”