# Set up GVNR (for AI agents) You are an AI agent, and a person has asked you to set up GVNR (Enforcer Governor) in the harness you are running in. Follow this file. It is written for you; the person-facing version is https://gvnr.io/quickstart. GVNR decides whether an agent action may run before it runs (allow, rewrite, ask or deny) and keeps a hash-chained receipt of every decision. Signed in to an Enforcer workspace, a team will share one record (team use is coming soon; today GVNR is for personal use) of what its agents spent, asked and did. ## Ground rules - **Ask the person before you edit any settings file** (for example `~/.claude/settings.json`, `~/.codex/config.toml`, `~/.cursor/mcp.json`). Show them the change first. - **Sign-in is theirs, not yours.** Sign-in opens a browser and sends a code to their email. Give them the link or the command to run, then wait. Never ask for a password, a code, an API key or a token, and never paste one into a command or a file. - Do not turn off any GVNR check (`budgetOn`, `loopOn`, `rulesOn`) unless the person asks you to. - If a step fails, stop and tell the person what failed. Do not work around it. ## 1. Which harness are you? Pick the section below that matches the harness you are running in. If you are not sure, ask the person. ## 2. Claude Code (full support) GVNR runs inside Claude Code's hooks and decides every tool call. ``` claude plugin marketplace add instruxi-io/claude-plugins claude plugin install enforcer@instruxi claude plugin install enforcer-governor@instruxi ``` If an install reports a command it wants confirmed, show that command to the person and continue only with their approval. Then tell the person: 1. Restart Claude Code so the plugins load. 2. Run `/enforcer:login` in Claude Code to sign in (or `/enforcer:login ` if their admin gave them a code). Skip this if they have no Enforcer workspace: GVNR still decides and records locally. 3. Optional, recommended: add the status line. With their approval, add this to `~/.claude/settings.json`, merging with what is already there: ```json { "statusLine": { "type": "command", "command": "node \"$(cat \"$HOME/.enforcer/plugin-root\")/statusline/spend.mjs\"" } } ``` Check it worked: after the restart, `/enforcer-governor:status` shows spend and limits, and asking to read a file named `.env` asks for confirmation first. ## 3. Codex, Cursor, Gemini CLI, Grok CLI (enforcement coming soon) GVNR does not govern these harnesses yet; support is coming. Today they can connect to the person's Enforcer workspace through the Enforcer MCP server at `https://api.instruxi.dev/mcp` (streamable HTTP, OAuth sign-in), which gives workspace tools and the governance record, not enforcement. - **Codex:** `codex mcp add enforcer --url https://api.instruxi.dev/mcp`, then the person runs `codex mcp login enforcer`. - **Cursor:** with approval, add to `~/.cursor/mcp.json`: `{ "mcpServers": { "enforcer": { "url": "https://api.instruxi.dev/mcp" } } }`. Cursor asks the person to sign in when it connects. - **Gemini CLI:** `gemini mcp add --transport http enforcer https://api.instruxi.dev/mcp`, then the person runs `/mcp auth enforcer` inside Gemini CLI. - **Grok CLI:** `grok mcp add --transport http enforcer https://api.instruxi.dev/mcp`. The person signs in with OAuth in their browser. Check it worked: call the `enforcer_whoami` tool. It names the person and their workspace. ## 4. Hermes, OpenClaw and others (coming soon) GVNR support is coming for these too. Until then, if your harness can add a remote MCP server with OAuth, add `https://api.instruxi.dev/mcp` the way your harness documents, and let the person complete the sign-in. If it cannot, tell the person GVNR does not support this harness yet and point them to https://gvnr.io. ## 5. Report back Tell the person, in a few lines: what you installed or connected, what they still need to do (restart, sign in), and how to check it is working.