Skip to content
openclawPublic

About

OpenClaw runtime validation lab

Resources

Security policy

Stars

11 stars

Watchers

1 watching

Forks

Repository files navigation

Kova 🧪 — Make OpenClaw prove it

CI Release Node.js Platforms License

Kova banner

Kova runs release-shaped OpenClaw scenarios on real machines and records the evidence. It is for maintainers and agents validating install, upgrade, gateway, agent, plugin, TUI, MCP, browser, and long-running behavior before a release.

Kova report dashboard

Install

Kova requires Node.js 22 or newer. Real scenarios use OCM to provision isolated OpenClaw environments; the installer can install it at the same time:

curl -fsSL https://raw.githubusercontent.com/openclaw/Kova/main/install.sh | KOVA_INSTALL_OCM=1 bash

This installs Kova under ~/.kova and links kova into ~/.local/bin.

To run Kova from a source checkout instead:

git clone https://github.com/openclaw/Kova.git
cd Kova
npm ci

Use node bin/kova.mjs in place of kova in a source checkout.

Quick start

Preview the smoke matrix without changing an OpenClaw environment:

kova matrix plan --profile smoke --target runtime:stable

The plan resolves the current scenarios, states, and evidence obligations for the selected target in a few seconds.

Run a real matrix

Confirm the lab is healthy, then execute the matrix against an existing OCM runtime:

kova self-check
kova matrix run --profile smoke --target runtime:stable --execute

Kova uses deterministic mock model auth by default. Run kova setup when a scenario needs live provider credentials.

How Kova works

Kova evaluates a concrete product path rather than treating a successful command as proof:

surface × user state × target runtime × platform → evidence → verdict

Surfaces, states, scenarios, profiles, process roles, and thresholds are declarative JSON contracts. OCM creates and controls the disposable lab; OpenClaw remains the product under test.

Targets

Selector What Kova tests
npm:<version> A published OpenClaw version
release:<name> A published release track such as stable or beta
runtime:<name> An existing OCM runtime
local-build:<path> A release-shaped build from an OpenClaw checkout

Profiles turn those targets into repeatable matrices. Start with smoke, use release for the ship gate, and use focused profiles for diagnostics, upgrades, plugins, soak, or adversarial behavior. See the CLI reference for the current commands, selectors, and profiles.

Evidence and reports

Kova records readiness, health, command results, CPU and RSS by process role, OpenClaw diagnostic spans, provider timing, cleanup, and artifacts. Repeated runs produce median, p95, maximum, and variance measurements; reviewed baselines make regressions visible separately from functional failures.

Every human-facing command renders a dashboard by default. Use --json for the stable machine contract, --plain for compact text, or --ascii for Unicode-free output. Reports can be summarized, compared, or bundled for a fixer handoff:

kova reports
kova report <run-id>
kova report compare <baseline-run-id> <current-run-id> --json
kova report bundle <run-id> --json

The JSON report uses the kova.report.v1 schema. Its fields and gate outcomes are documented in the report schema.

Safety

run and matrix run are dry-run by default; real execution requires --execute. Disposable environments are removed after a run. Durable user environments are clone sources, never mutation targets, and exhaustive matrices also require --allow-exhaustive.

Use --retain-on-failure to keep a failed disposable lab for inspection. The agent workflow covers authentication, baselines, existing-user tests, cleanup, and evidence handoff in depth.

For agents

Agents should plan and consume reports through JSON:

kova plan --json
kova matrix plan --profile smoke --target runtime:stable --json
kova report summarize <run-id> --json

Repo-local kova-operator and ocm-operator skills live in .agents/skills/. Load ocm-operator before executing scenarios that create environments, clone state, build runtimes, upgrade installations, or inspect services.

Documentation

Development

npm ci
npm run check:full
npm run pack:release

Release archives include tracked documentation and images. Add new documentation to Git before packaging so it is included without copying untracked local notes.

Check the website with the same commands used in CI:

npm ci --prefix web
npm run check --prefix web
npm test --prefix web
npm run build --prefix web

The website matrix compares stable releases only. An empty or beta-only catalog shows "No stable releases yet." with zero releases and scenarios. The website tests exercise those catalogs through Astro as well as the populated matrix.

Install expect locally to include setup's hidden-input and cancellation PTY checks in self-check; CI installs this prerequisite automatically.

CI runs the full check suite and release-install smoke test on Node.js 22, 24, and 26 on Linux, and Node.js 24 on the Apple Silicon xcode-27 macOS runner. The website has a separate type-check, test, and production-build job. .node-version pins the development, website, hydration, and release-build runtime without changing the Node.js 22 CLI floor.

Rehearse the release build on current main without publishing:

gh workflow run release.yml --ref main -f version="$(node -p 'require("./package.json").version')" -f dry_run=true

Manual runs require the current package version and a green exact-SHA main CI run. Publishing remains limited to validated tag pushes.

License

MIT.

About

OpenClaw runtime validation lab

Resources

Security policy

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages