Path 1 · preferred day-1
Offline-friendly npx (15 minutes)
Node 22+ (24 recommended). No Java. No Postgres. No add-on packs.
Older Node? The CLI offers to install 24 and finish for you.
First see DENY, then REQUIRE_APPROVE, without a paid console.
# One liner - init + wire MCP + open live activity report
npm i -g @shield-agent/kya@latest
cd your-project
kya start
# Cursor loads shield-kya live - no restart. Claude Code: `claude --resume`
# keeps your conversation. Per-host reload behavior: /integrations
# The report runs in the background - your terminal returns immediately.
# `kya stop` stops it; `kya receipt --open` reopens it.
# Permission denied (EACCES) on Linux? No sudo and no install needed:
npx @shield-agent/kya@latest start
# Optional offline sample (not the production gate)
kya eval-tool --offline --tool-id org.sample.never.event --irreversible
# → DENY
kya wrap --offline --tool-id Write --irreversible --args '{"path":"src/x.ts","content":"hi"}'
# → observed REQUIRE_APPROVE (no second Hold by default)
Install fails with EACCES? The global npm folder belongs to root (common on Linux).
Do not use sudo. Run without a global install: npx @shield-agent/kya@latest start.
Or give npm a folder you own: npm config set prefix ~/.npm-global,
add ~/.npm-global/bin to your PATH, then run the install again.
Default wrap is observe: it records the trail without a second approval.
To hold risky actions for a person, set KYA_HOLD=1. Live report: kya receipt --open.
The hosted console starts receiving events when you set KYA_BASE_URL and KYA_API_KEY.
Walkthrough: How KYA works.
Full guide:
/docs/kya/light-install
· npm @shield-agent/kya
· source The-Pixel-Boys/shield-kya
· fail closed: an empty API key against a console that requires sign-in exits with an error (use --offline for a local sample).
More ways to install
npm stays the reference path. Same package, other channels.
Locally KYA is advisory: it records the trail, lets work continue if something fails,
and blocks only the never-list and the guard pack (destructive shell commands, secret access, exfiltration).
Real blocking runs on the MCP policy path against a hosted workspace.
# Claude Code plugin (advisory: records the trail, lets work continue on errors, blocks the never-list and the guard pack)
/plugin marketplace add The-Pixel-Boys/shield-kya
/plugin install kya@shield-kya
# Codex CLI plugin (same behaviour; then trust the two Shield KYA hooks in /hooks)
codex plugin marketplace add The-Pixel-Boys/shield-kya
codex plugin add kya@shield-kya
# Homebrew (Homebrew 7 may ask you to trust the tap: `brew tap The-Pixel-Boys/tap` first)
# The formula is small. Semantic search is opt-in; without it, search stays lexical.
brew install The-Pixel-Boys/tap/shield-kya
# Scoop (not yet verified on Windows)
scoop bucket add The-Pixel-Boys https://github.com/The-Pixel-Boys/scoop-bucket.git
scoop install shield-kya
# Gemini CLI extension (same behaviour; Gemini runs its hooks without a trust step)
gemini extensions install https://github.com/The-Pixel-Boys/shield-kya
Bring AGT logs in with kya import --from agt;
the hosted console accepts the same format
(import guide).