gitwtfhub

wtf is gaslighter?

larrygf/gaslighter — explained in plain English

Analysis updated 2026-05-18

5PythonAudience · developerComplexity · 2/5LicenseSetup · easy

TL;DR

A Claude Code plugin that interrupts Claude right before it finishes to double check every requirement was actually addressed.

Mindmap

mindmap
  root((repo))
    What it does
      Stop hook nudge
      Requirement re-check
      Nag prevention
    Tech stack
      Node.js
      Claude Code
    Use cases
      Catching missed requirements
      Agent reliability
      CI-free QA
    Audience
      Developers
      Claude Code users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Catch requirements Claude silently skipped, like forgetting to export a new handler from a package.

REASON 2

Add a Stop hook that forces Claude to re-verify its work against the original request before finishing.

REASON 3

Reduce missed requirements in agentic coding sessions without slowing down simple Q&A turns.

REASON 4

Tune how aggressively Claude gets nudged using lite, full, smart, or off modes.

What's in the stack?

PythonNode.jsClaude Code

How it stacks up

larrygf/gaslighter1ncendium/aibusteraaronmayeux/ha-hurricane-tracker
Stars555
LanguagePythonPythonPython
Setup difficultyeasymoderateeasy
Complexity2/53/52/5
Audiencedeveloperops devopsgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

Requires Node.js on PATH since the hook runs as a small Node.js script.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

Wtf does this do

Gaslighter is a Claude Code plugin that steps in right when Claude thinks it has finished a task, and makes it double check whether it actually covered every requirement you asked for. The problem it targets is common: you write several requirements, Claude implements most of them, says the work is done, and one small requirement quietly slips through because it was buried in the middle of a paragraph rather than flagged as an error. It works through a Stop hook, a feature of Claude Code that fires each time Claude tries to end a turn. When that happens, gaslighter asks Claude to re-read the original request and confirm every point was actually addressed, and to fix anything missing before finishing. It is designed not to become annoying: it only nudges once per stop, caps how many times it nudges per session, and stops nudging entirely once Claude either makes no further changes after a nudge or states it is fully confident everything is covered. There are four modes. Lite mode, the default, gives a soft nudge that Claude can still choose to ignore and finish anyway, capped at three nudges per session. Full mode is a hard block that prevents Claude from finishing until it re-verifies, with no cap. Smart mode asks a cheaper model, Haiku, whether anything was actually missed before deciding whether to nudge. Off mode disables the hook entirely. The README includes benchmark results from headless Claude Code coding sessions built around common ways models drop requirements. Compared with a baseline that gets no nudging, both lite and full modes improve the rate of correctly completed requirements, though full mode costs roughly 45 percent more turns since re-checking work takes extra passes. Adding the same reminder text to the system prompt instead of using a hook performed worse than doing nothing at all, suggesting the timing of the interruption matters more than the wording. Installation happens through Claude Code's plugin system, adding the marketplace and installing the plugin with two commands, or the equivalent from the command line. The hook itself is a small Node.js script, so Node needs to be available on your system path. Configuration, including the mode and nudge cap, can be set once and it persists across sessions, or overridden temporarily with environment variables. It is released under the MIT license.

Yoink these prompts

Prompt 1
Install the gaslighter plugin marketplace and enable it for my Claude Code sessions.
Prompt 2
Set gaslighter to full mode so Claude cannot finish a turn without re-verifying requirements.
Prompt 3
Explain how gaslighter's smart mode uses Haiku to decide whether to nudge Claude.
Prompt 4
Show me how to configure the nudge cap and mode for gaslighter using environment variables.

Frequently asked questions

wtf is gaslighter?

A Claude Code plugin that interrupts Claude right before it finishes to double check every requirement was actually addressed.

What language is gaslighter written in?

Mainly Python. The stack also includes Python, Node.js, Claude Code.

What license does gaslighter use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is gaslighter to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is gaslighter for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.