Witnora has two supported onboarding paths. Both create the same restricted, project-scoped connection and the same isolated onboarding receipt.
A project is an isolated assurance boundary, not one Agent. Put related Agent versions and environments in the same project when they share ownership, policy, retention, and access controls. Create a separate project when those boundaries differ.
Owners and admins manage projects from the project navigator. Archiving a project immediately revokes its active machine credentials and makes it read-only; restoring it does not reactivate those credentials. An archived project can be permanently erased only after the owner or admin enters its exact name. Erasure removes retained project records and stored artifacts, then downloads a JSON erasure receipt. A requested or approved legal hold blocks erasure until the governed hold review is rejected or released.
Review the declared privacy and evidence ceiling, then open a terminal in the Agent repository and run the displayed command:
npx witnora@latest onboard --project your-project-id
The CLI then performs the rest without another prompt:
.witnora/onboarding/receipts/, updates Hosted progress, and
redirects a successful setup to Current Assurance.The self-test is not customer-agent evidence. It cannot create a run, evidence
object, release decision, or CURRENT assurance.
The default plan does not invent customer credentials. The Gateway remains at
RECORDED until a write credential is placed behind a controlled adapter. The
outcome probe remains awaiting_customer_secret until a separate read-only
credential is supplied. These states are visible in Setup rather than being
presented as completed assurance.
Capabilities discovered later enter the pending-confirmation queue under a default-deny policy. The existing Gateway remains installed; reintegration is not required.
Choose GitHub App on the same onboarding screen. An owner or admin selects the repository and explicitly authorizes each write. Witnora can open a reviewable setup PR, store a project-scoped CI secret through GitHub’s encrypted secret API, and dispatch an already-reviewed assurance workflow. It never asks for a personal GitHub token and does not merge its own PR.
From any empty directory:
npx witnora@latest try --template workflow
Inspect .witnora/try/agentcert-report.html. This offline sample proves local
installation, schema validation, reporting, and artifact provenance. It does
not connect Hosted or establish CURRENT assurance.
After onboarding, instrument or test one real bounded workflow. The generated configuration is a starter, not a claim that the whole agent is covered.
npx witnora@latest run --tripwire .tripwire/latest/tripwire-result.json --push
# or
npx witnora@latest push --evidence ./path/to/agentcert-evidence.json --artifact-root .
Browser agents normally start with Tripwire. MCP servers use MCPBench. Coding, workflow, and data templates generate a dependency-free Universal Event/Action Envelope adapter. A boundary event alone is reported-strength evidence until a deterministic assertion and independent outcome verifier are attached.
Use these only when automatic detection is not appropriate:
npx witnora@latest init --template browser --subject my-browser-agent --github-action
npx witnora@latest init --template coding --subject my-coding-agent
npx witnora@latest init --template mcp --subject my-mcp-agent
npx witnora@latest init --template workflow --subject my-workflow-agent
npx witnora@latest init --template data --subject my-data-agent
Use a private branch and one sandbox chargeback lifecycle. Run onboard in the
normal SellerShield repository; no SellerShield-specific Witnora code is
required. Then cover one deterministic mock workflow: create a mock dispute,
generate documents, require approval, submit through the mock adapter, observe
the final state through a separate read path, and verify recovered amount and
fees. Do not use live Shopify credentials or submit a real dispute.