npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gaslighting-engine

v0.4.6

Published

LUDGI Gaslighting-engine: a hardcore project-discipline generator for AI coding agents.

Readme

Gaslighting-engine

PARODY NOTICE

This is a parody project and a meaningless experiment. The aggressive language is an absurd joke aimed at AI-agent failure modes, not a serious management doctrine and not advice for humans.

 _       _   _  ____   ____ ___
| |     | | | ||  _ \ / ___|_ _|
| |     | | | || | | | |  _ | |
| |___  | |_| || |_| | |_| || |
|_____|  \___/ |____/ \____|___|

AI coding agents love to escape.

They start strong, then drift.

They implement three examples and call it done.

They leave TODOs.

They create placeholders.

They say "the rest follows the same pattern."

Gaslighting-engine is a strict project-discipline generator that stops this behavior.

It now has two layers:

  • CLI discipline generator
  • Codex-style local Mission Control desktop app

It writes the heavy project-control system under .gaslighting/, keeps root AGENTS.md short, and uses .agents/ as the shared source-of-truth for skills, MCP definitions, prompts, and runtime config.

Quick Start

npx gaslighting-engine@latest desktop "I want to build a hospital website."

This opens Gaslighting Mission Control, where you can review the mission, choose the agent runtime, select permission mode, generate the structured docs, and start the agent.

Headless CLI flow:

npx gaslighting-engine@latest "I want to build a hospital website."
npx gaslighting-engine@latest run "I want to build a hospital website."

Short aliases after global install or local link:

gaslighting-engine "I want to build a hospital website."
gaslighting "I want to build a hospital website."

The default mode is already aggressive:

  • hardcore discipline
  • full-scope enforcement
  • no-TODO escape prevention
  • no-shortcut enforcement
  • Codex Skill generation
  • Codex prompt fallback generation

What It Does

It turns vague intent into strict AI-readable project discipline.

It tells the agent:

  • what the project is
  • what the project must not become
  • what assumptions are being made
  • what information is missing
  • what stack to use
  • what not to over-engineer
  • what fake completion looks like
  • what counts as done
  • what stable project facts should be remembered

Commands

gaslighting "I want to build a hospital website."
gaslighting-engine "I want to build a hospital website."
gaslighting init "I want to build a hospital website."
gaslighting-engine generate "Build an ecommerce MVP."
gaslighting-engine update "The hospital is actually an OB-GYN clinic, not dermatology."
gaslighting-engine doctor
gaslighting-engine desktop "Build a hospital homepage"
gaslighting-engine start "Build a hospital homepage"
gaslighting-engine cockpit
gaslighting-engine run "Build a hospital homepage"
gaslighting-engine agent list
gaslighting-engine loop start "Build a hospital homepage"
gaslighting-engine loop status
gaslighting-engine loop resume
gaslighting-engine loop stop
gaslighting-engine mcp search github
gaslighting-engine mcp install github --runtime codex
gaslighting-engine mcp list
gaslighting-engine skill create hospital-homepage
gaslighting-engine skill install hospital-homepage --runtime codex
gaslighting-engine upgrade
gaslighting-engine codex-install
gaslighting-engine codex-doctor
gaslighting-engine skill
gaslighting-engine agents
gaslighting-engine care
gaslighting-engine care --github-url https://github.com/user/repo.git

Output Layout

Gaslighting-engine keeps project-control documents in .gaslighting/ by default so the project root stays clean.

Only root AGENTS.md is written at the top level because Codex expects project guidance there. It is a thin pointer into .gaslighting/.

.gaslighting/
  INDEX.md
  mission/
  product/
  pages/
  features/
  operations/
  decisions/
  tasks/
  loops/
  verification/
  memory/

.agents/
  config.json
  skills/
  prompts/
  mcp/
  runtimes/

Runtime-specific files such as .codex/skills, .codex/prompts, and .codex/config.toml are exports from .agents/.

Desktop Mission Control

npx gaslighting-engine@latest desktop "I want to build a hospital website."

Mission Control is an Electron app with a Codex-style project surface:

  • project request input
  • generated mission and PRD preview
  • runtime selector: Codex, Claude Code, Qwen Code, Kimi-compatible, OpenCode, OpenAI-compatible, local
  • model picker when the runtime supports it
  • permission mode selector
  • Mission Loop toggle
  • Git/GitHub/domain/deploy/env health panel
  • MCP search/install panel
  • shared skill create/install panel
  • integrated terminal/log panel

Permission modes:

  • ask_each_task: ask before each task and sensitive operation
  • auto_review: default; normal work proceeds, sensitive operations require approval
  • full_autonomy: run without approval, still log checkpoints and avoid leaking secrets

Mission Loop is OFF by default. When enabled, it runs task by task, writes checkpoints, records iteration logs, and refuses to mark failed verification as complete.

Legacy Web Cockpit

Mission Control is the Codex-first GUI agent surface:

npx gaslighting-engine@latest start "I want to build a hospital website."

It shows:

  • project purpose
  • generated control documents
  • missing information
  • Git/GitHub and deployment care checks
  • Codex runtime args
  • Start Codex action

By default, Start Codex closes the local cockpit server and continues Codex in the same terminal that launched Mission Control. This keeps Cursor, Warp, Windows Terminal, or any other terminal flow intact.

If you explicitly want a separate terminal, add:

npx gaslighting-engine@latest start "I want to build a hospital website." --new-terminal

To customize Codex flags, use:

npx gaslighting-engine@latest start "I want to build a hospital website." --codex-args="--search --dangerously-bypass-approvals-and-sandbox"

Open it for an existing project:

npx gaslighting-engine@latest cockpit

Run without the GUI:

npx gaslighting-engine@latest run "I want to build a hospital website."

Agent Runtimes

Check local runtime availability:

npx gaslighting-engine@latest agent list

The runtime abstraction separates model switching from long-running loops.

  • Codex, Claude Code, Qwen Code, and OpenCode use their own CLI model settings.
  • Kimi can be used through compatible CLI or OpenAI-compatible flows.
  • OpenAI-compatible direct mode uses OPENAI_COMPATIBLE_API_KEY, OPENAI_API_KEY, or KIMI_API_KEY.
  • Local mode expects ollama.

Mission Loop

npx gaslighting-engine@latest loop start "Build a hospital homepage"
npx gaslighting-engine@latest loop status
npx gaslighting-engine@latest loop resume
npx gaslighting-engine@latest loop stop

Loop state is stored in:

.gaslighting/tasks/
.gaslighting/loops/
.gaslighting/checkpoints/
.gaslighting/verification/

The loop does not replace judgment. It gives the agent a repeatable task runner with checkpoint memory and verification gates.

MCP And Skills

Search and install MCP definitions:

npx gaslighting-engine@latest mcp search github
npx gaslighting-engine@latest mcp install github --runtime codex
npx gaslighting-engine@latest mcp doctor

Create a shared project skill and export it to Codex:

npx gaslighting-engine@latest skill create hospital-homepage
npx gaslighting-engine@latest skill install hospital-homepage --runtime codex
npx gaslighting-engine@latest skill doctor

Shared source files live in .agents/. Runtime exports are generated from there.

Project Care

Gaslighting-engine also writes .gaslighting/PROJECT_CARE.md.

This file tracks non-blocking but important care risks:

  • Git initialized or missing
  • GitHub remote connected or missing
  • package metadata present or missing
  • deployment target confirmed or missing
  • production domain and DNS ownership missing
  • environment template missing
  • launch and rollback readiness

These are warnings, not fake blockers. The agent should keep implementing, but it must keep warning and recording gaps until they are resolved.

If GitHub is not connected yet, run:

gaslighting-engine care --github-url https://github.com/user/repo.git

This initializes Git when needed and connects origin. If origin already exists and must be replaced, use --force-remote.

Update Notice

Gaslighting-engine checks npm for a newer version when you run normal commands.

The simple update command is:

npx gaslighting-engine@latest upgrade

This updates the Codex skill and prompt files in the current project. No --force is needed.

If an update exists, it prints a short notice like:

Gaslighting-engine update available:
- current: 0.1.0
- latest:  0.1.1
- update:  npx gaslighting-engine@latest upgrade

The update check is best-effort and never blocks the command. Disable it with:

GASLIGHTING_ENGINE_NO_UPDATE_CHECK=1 gaslighting-engine doctor

PowerShell:

$env:GASLIGHTING_ENGINE_NO_UPDATE_CHECK="1"; gaslighting-engine doctor; Remove-Item Env:GASLIGHTING_ENGINE_NO_UPDATE_CHECK

Useful Options

Options are escape hatches. The strict behavior is already the default.

--standard
--allow-partial
--allow-todo
--allow-shortcut
--force
--dry-run
--lang en
--lang ko
--type hospital_homepage
--type ecommerce
--type landing_page
--type admin_dashboard

Why the Name?

Because AI agents often need aggressive reminders.

This project does not manipulate humans.

It disciplines AI coding agents.

Core Rule

Fake completion is worse than honest incompletion.

If the work is not done, say it is not done.

Use with Codex

For the smoothest Codex app setup, run this in the project:

npx gaslighting-engine codex-install --force

This writes both current Codex Skill paths used by different Codex surfaces:

.agents/skills/gaslighting/SKILL.md
.agents/skills/gaslighting/agents/openai.yaml
.codex/skills/gaslighting/SKILL.md
.codex/skills/gaslighting/agents/openai.yaml
.agents/prompts/gaslighting.md
.codex/prompts/gaslighting.md
.gaslighting/CODEX_GASLIGHTING.md

Then use one of these in Codex:

$gaslighting

or:

Use the gaslighting skill.

In Codex app builds that expose enabled skills in the slash menu, /gaslighting may also appear. If it does not appear, $gaslighting is the reliable direct invocation path.

After generating project documents, tell Codex:

Read AGENTS.md, .gaslighting/GASLIGHTING.md, .gaslighting/PRD.md, .gaslighting/STACK_POLICY.md, .gaslighting/MISSING_INFO.md, .gaslighting/ASSUMPTIONS.md, .gaslighting/DECISION_LOG.md, .gaslighting/MEMORY.md, and .gaslighting/PROJECT_CARE.md.
Do not shrink the scope.
Do not leave TODOs.
Do not fake completion.

AGENTS.md remains the project-level safety net. Codex reads it as project guidance, while the skill gives you an explicit reusable workflow.

Use as Codex Skill

Generate skill files:

gaslighting-engine skill

This creates:

.codex/prompts/gaslighting.md
.codex/skills/gaslighting/SKILL.md
.codex/skills/gaslighting/agents/openai.yaml
.codex/skills/gaslighting/references/GASLIGHTING_TEMPLATE.md
.codex/skills/gaslighting/references/HARDCORE_DISCIPLINE_TEMPLATE.md
.codex/skills/gaslighting/references/STACK_POLICY_TEMPLATE.md
.codex/skills/gaslighting/references/HOSPITAL_HOMEPAGE_EXAMPLE.md
.codex/skills/gaslighting/scripts/generate-gaslighting-docs.ts

Development

npm install
npm run build
node dist/index.js "I want to build a hospital website." --dry-run
npm test

The MVP is deterministic and template-based. It does not call OpenAI, Anthropic, or any external LLM API.