nah nah

NAH(1) · RUNTIMES

Agent runtimes

Install, inspect, or remove one integration:

nah hook <runtime> install
nah hook <runtime> status
nah hook <runtime> uninstall

nah supports macOS and Linux. Native Windows is not supported.

Run nah docs runtime-<name> for a runtime-specific guide:

Shared contract

Runtime hooks are observation points, not sandboxes. nah returns block to tell the runtime to stop the intercepted call, or delegate to return it to the runtime's normal approval, permission, or sandbox flow. nah never approves a call.

Unknown valid tool semantics delegate absent understood danger. If an adapter cannot produce a valid nah decision, including from malformed outer input, it uses its runtime-specific unavailable fallback. Fixed, non-secret feedback is sent only when the runtime has a non-blocking channel. Built-in evaluation failures yield delegate. A custom-guard failure contributes no finding, so other guards still decide. Persisted redacted details are available through nah log and nah why.

install writes nah-owned integration files or configuration. uninstall removes only that wiring. status reports not configured, wiring current, or reinstall required from the wiring on disk. It cannot prove that a running agent loaded the hook, that the runtime permits it, or that every tool path emits an intercepted event.

Users are responsible for configuring their runtime so the hook is loaded and remains active. Hook deadlines are runtime-owned and vary by product, surface, configuration, and version.

Once an adapter is active, nah blocks understood intercepted attempts to alter its active wiring or launch a child that skips the hook. The response tells the agent not to retry and to ask the operator for nah nap.

Current installations are user-scoped, not same-user tamper-proof. Users still own filesystem and runtime hardening.

Project shadow settings, UI actions, unrecognized or opaque launch forms, already-unhooked processes, and direct operator commands outside an intercepted call remain available. nah does not guarantee that a runtime will load or invoke its adapter.

Each integration is best effort. Read its runtime-* page for known limitations and verification steps, and double-check the latest upstream runtime documentation after upgrades.

After installation, restart or reload the runtime, inspect its active hooks, and test the integration before relying on it.