Show HN: Gnt, a company brain AI agents check before acting Gnt, a new tool from gntai.dev, lets companies encode AI agent guardrails as git-native rule files that agents check over MCP before acting, returning allow, block, or needs_human verdicts. The rules are approved via merged pull requests, providing a paper trail for every agent decision. Gnt offers a CLI and hosted version, with the CLI requiring Node >=22.13. Run the setup below once and every agent your team runs has a git-native rulebook it has to check over MCP before it acts, approved the same way your code already is: a merged pull request . - Rules live in your repo as files and ship through normal PRs, not a dashboard click. - Agents call check action over MCP before anything risky a refund, a delete, a message to a customer and get back an allow/block/escalate verdict. - Every rule traces back to the git file and the PR that approved it, so "why did the agent do that" always has a paper trail. Prefer not to run any of this yourself? The hosted version at gntai.dev does the same thing without you standing up a Postgres instance. gnt prebrain scanning a repo, opening a PR, and getting it merged. A real terminal session, not a mockup. npm install -g @gnt-ai/cli gnt login gnt connect github gnt prebrain merge the opened PR on GitHub. that merge is the approval That merge lands a rule file in your connected repo, shaped like this: your-repo/ └── rules/ ├── refund-approval-threshold.md └── contract-legal-cc.md Each file is plain markdown with YAML frontmatter: --- title: Never refund over $500 without a manager status: approved confidence: 0.91 owner id: finance-team source citations: ... source: slack tags: refunds, finance last validated at: 2026-07-20 version: 1 superseded by: null approved by: jane@company.com approved at: 2026-07-21T14:03:00Z created at: 2026-07-18T09:12:00Z pr number: 142 pr url: https://github.com/your-org/your-repo/pull/142 --- Refunds over $500 need manager sign-off before they go out... There's no captured transcript to show yet see the gap noted at the bottom of this README . Here's the actual response shape a check action call returns, straight from the tool's contract: { "verdict": "blocked", "reason": "Refund exceeds the $500 threshold without manager sign-off rules/refund-approval-threshold.md ", "cited rules": { "id": "refund-approval-threshold", "title": "Never refund over $500 without a manager" } , "rules retrieved": 3 } verdict is one of allowed , blocked , or needs human . needs human is the fail-closed default: no approved rule covers the action, retrieval failed, or the check couldn't complete. It never guesses. One MCP endpoint, five tools: | Tool | What it does | |---|---| check action | Checks a described action against your approved rules before an agent takes it. Returns allowed , blocked , or needs human with cited rules and a one-line reason. | search rules | Semantic search over your org's approved rules, optionally filtered by tag. An empty list means no approved rule covers the query. | get rule | Fetches one approved rule by id, with its provenance who approved it, when, what it was cited from . | list skill packs | Lists every compiled skill pack version for your org, newest first. | get skill pack | Fetches a compiled skill pack's manifest and file list by id. | | Requirement | Check | Get it | |---|---|---| | Node =22.13 | node --version | | | Method | Command | |---|---| | curl | curl -fsSL gntai.dev/install.sh | sh | | npm | npm install -g @gnt-ai/cli | gnt needs Node =22.13. If the CLI fails to start with a version error, update Node first and confirm with node --version . gnt login sign in, store an API key locally gnt connect github connect the repo your rules PRs open against gnt prebrain scan sources, extract candidate rules, open PRs gnt review review rules awaiting approval gnt status show brain status gnt pull download the latest skill pack gnt gaps list uncovered queries with no approved rule | Variable | Default | What it controls | |---|---|---| GNT API URL | https://api.gntai.dev | API endpoint the CLI and MCP calls hit | GNT WEB URL | https://gntai.dev | Web app used for gnt login 's browser step | GNT CONFIG DIR | ~/.gnt | Where credentials.json and local config live | - No analytics or telemetry dependency in the CLI or the web app. gnt prebrain 's default extraction mode is cloud, not on-device: your source text goes straight to Anthropic's API or Vercel AI Gateway with zero-data-retention, if you configure it , never to gnt's own servers. Fully on-device extraction needs --mode local against a local Ollama daemon.- The extracted rule candidates still get sent to gnt's API to open the PR. Raw source text stays off gnt's servers in cloud mode; the resulting rule text doesn't. - Rules live in your connected GitHub repo and in gnt's own database. The MCP tools read from gnt's store, not by cloning your repo on every call. - Self-hosting: apps/api only sends error data to Sentry if you set SENTRY DSN yourself. Leave it unset and nothing goes out. Who writes rules : anyone with access to your connected repo, either through gnt prebrain batch-extracted from real sources or gnt review hand-proposed . How approval works : merging the PR is the approval. There's no separate publish step. What gets committed : rules/