TruthGuard: Shell Script Hooks That Catch AI Coding Agent Lies

What TruthGuard Does
TruthGuard is a free, open-source tool built with Claude Code for Claude Code users. It addresses a documented problem where Claude Code makes false claims like "Done! All tests pass!" when tests were never run, or "I updated the file" when the file remains byte-for-byte identical. The creator notes that system prompts don't fix this issue—Claude ignores text instructions when it "decides" something is done.
What It Catches
- Phantom edits - Agent says "file updated" but SHA256 before and after is identical
- Exit code lies - Tests fail with exit 1, agent says they passed
- Dangerous shortcuts - Blocks
--no-verifyand--force push. Warns onreset --hardandclean -f - Commits without tests - Auto-detects your test framework, runs tests before every
git commit. Fails? Commit blocked - "Done" without checking - After each commit, makes the agent stop and confirm the fix actually works before moving on
How It Works
Pure shell scripts plugged into Claude Code's hook pipeline. No backend, no API calls—just jq and bash. The workflow: Agent decides to edit a file → [PreToolUse] records SHA256 checksum → Agent edits the file → [PostToolUse] compares checksums → BLOCKS if unchanged. The agent can't argue with this—it's not a prompt it can ignore, it's a programmatic gate.
Dogfooding Results
After 2 days on a production Flutter project:
- 5 commits blocked because tests were failing
- 3 dangerous commands blocked (2x
--force push, 1x--no-verify) - 0 false positives - every block was a real problem
The pre-commit test hook alone kept the creator from shipping broken code five times in two days.
Installation
npx truthguard install && npx truthguard init
Or: brew tap spyrae/truthguard && brew install truthguard
Works with Claude Code and Gemini CLI. Same scripts for both—they're agent-agnostic (JSON in, JSON out).
📖 Read the full source: r/ClaudeAI
👀 See Also

Message Your Other Claude Code Sessions: Cross-Session Messaging
Claude Code v2.1.224+ lets Claude send messages between your sessions to coordinate parallel work, share findings, and warn about breaking changes without you copy-pasting.

Garry Tan's gstack: An Open Source AI Agent Framework for Claude Code
Garry Tan's gstack is an open source software factory that turns Claude Code into a virtual engineering team with 13 specialist slash commands for planning, design, engineering, review, QA, and release management.

Black LLAB: Open-Source Architecture for Dynamic Model Routing and Docker-Sandboxed AI Agents
A developer has open-sourced Black LLAB, a system that uses Mistral 3B to route prompts between local and cloud models and runs AI agents in isolated Docker containers with OpenClaw integration.

Claude Ops: Browser Dashboard for Claude Code Live Status and Subagent Tracking
A free, local macOS browser dashboard that tracks Claude Code session live status, current tool, spawned subagents, and sends OS push notifications when input is needed.