An anti-hallucination layer for AI agents. Before the AI runs a command or writes a file, your own machine checks it. When a program, script, git branch or package the AI made up isn't there, the action is stopped before it runs. It won't make an agent hallucination-free. It stops the hallucinations your machine can prove wrong.
Works with Claude Code on Windows. Node 18 or newer.
It adds Check's hooks to your Claude Code settings and a folder at ~/.check with the hook scripts and your key. Nothing goes into your project. From then on, every command and file write passes through Check before it runs, and your machine answers wherever it can.
npx @golproductions/check@latest --install
Without Check, the AI decides from memory and checks your machine only when it thinks to. It sounds confident whether it is right or wrong. There is no tell. You audit every command wondering if it invented a path or guessed a package name.
With Check, your machine checks the AI's work before it runs. Your own shell reads each command and checks the programs, scripts and git branches it relies on, and the package registry checks any package it installs. When something isn't, the command is stopped and the AI sees your machine's own answer, so its next attempt is a fix rather than another guess. When your machine can't give a definite answer, Check stays out of the way. You stop second-guessing every command and get back to building.
Check is in phase 1. Most commands are fine, so most of the time it is silent and the command simply runs. In our own use, Claude tried to run a program that wasn't installed in about one session in six, and Check caught each one. More is coming: keeping your machine's answers through Claude Code's context summaries, checking more kinds of action, and more AI tools than Claude Code.
Every hallucinated command costs time. You debug it. You undo it. You figure out what went wrong. Sometimes you lose work. Sometimes you lose data. You are already paying for this problem. Check is cheaper.
Current installs never send your prompts. The only content Check sends is the command itself: before each command, Check sends the command text with some credential patterns redacted (not all: a secret in a PowerShell variable assignment is sent as written), plus the working folder with your username masked and the results of the existence checks your machine ran. File contents are never sent: when Claude writes or edits a file, Check parses it on your machine. Commands are processed in memory and not written to storage. Installs made before 24 September 2026 still send each prompt to an endpoint we retired that day; it discards the prompt unread, stores nothing and charges nothing. Reinstalling Check stops it being sent. Separately, Check reports account events (install, uninstall, key created, top-up) with your OS and a truncated account ID, never command content. Everything we keep is listed in our privacy policy.
We have our own key that we use on our own machine. We sometimes share what it catches as examples. We never share anything from yours. You can read more in our privacy policy.
Check asks your machine whether the programs, scripts and git branches a command relies on exist, asks the package registry whether a package exists, and checks that the command parses. If Claude invents a tool that isn't installed, Check blocks it. That's the hallucination it's built for. When Claude writes or edits a file, Check also parses shell, Python and PowerShell files on your machine before they are written, and blocks a file that would not parse. JSON and JavaScript files are not checked yet.
But some things get through. If Claude makes up a name that happens to match something real on your machine, Check lets it through because the command is real. If a command is real but does the wrong thing, like deleting the wrong folder, Check won't stop it: it checks whether something exists, not what you meant to do. And where your machine can't give a definite answer, Check lets the action through rather than guess: commands inside $(...), eval or bash -c, git and script checks after a command changes folder, and missing programs in PowerShell commands.
Check is not a security tool. You still need one.
The gate runs on your machine, in ~/.check, before each command and file write. Your own shell reads the command and answers every check, and file writes are parsed right there too. The logic that decides which questions to ask runs on our servers and isn't published. The way to know if Check works is to use it. If it catches something you would have missed, it's working. If it misses something, you'll know before we do.
Check catches it first. 120 a day free, no card, no signup. $0.0068 AUD each after that.
Check stops actions your machine proves wrong. It does not make an agent hallucination free, and nothing here claims it does. It also does not prevent reasoning failure: a model that is wrong for its own reasons will still be wrong, and Check will not catch that. Results vary by model, project structure, and environment, and the same prompt on a different model will not give you the same result. Check asks your machine directly at each check (PATH lookup, shell parser, git, the npm, PyPI and crates.io registries, file parsers) and forwards the machine's verdict. It does not guarantee any specific outcome or detection rate. The service is provided "as is" and "as available", subject always to your rights under the Australian Consumer Law, which cannot be excluded and which nothing on this site limits. See our terms for details. Questions or feedback: support@golproductions.com.