Skip to main content
Experimental — behind the access-harness build feature, OFF by default. This page describes a design-partner surface: the wire can move before it stabilizes, and every run tells you so.
model: picks the intelligence. Access picks the path the run takes to reach it. Today that path is an API key, a local server, or the mock. The harness class adds the one you already pay for: the agent harness on your machine, driving its own subscription, with nika in charge of what it may do. Your workflow never changes. The same agent: task runs on a provider key or on your harness — the access layer decides, at admission, with a witness.

What you need

One of the supported harnesses, signed in the way IT expects (nika never holds its credential — the harness owns its auth store): nika doctor shows what this machine detected — the binary, the version against its pin, and whether the harness’s own status surface reports a sign-in. Nothing is probed silently, no credential file is ever opened.

Run it

Build with the feature, then declare the adapter:
An agent task whose model the harness can serve is planned onto it. Pin it explicitly when you mean it:
A pin is a pin: unsatisfied refuses with the witnesses, never a silent fallback to a metered key.

The authority bridge

The harness asks before it acts. Nika answers with your workflow’s permits: block, not with the harness’s defaults:
  • Inside your grants — the ask is allowed once (never “allow always”) and the decision is witnessed in the trace.
  • Outside them — the run pauses and shows you the harness’s question, word for word. Answer once with nika run --resume <trace> --answer <task>=true (or false). Nothing the harness asked for runs before you answer.

The honest receipt

A harness run’s trace row says access: harness and billing: unknown — because your plan’s quota is the harness’s business until the harness itself reports it. What you will never see is a fabricated $0.00: the ledger records the lane as subscription_quota, priced when evidence exists, absent when it doesn’t.

Kill-switch

One adapter refusing to behave? Take it off the machine without touching the rest:
A disabled adapter is no candidate at all — a pin naming it refuses in plain words.