# How to Disable the Ponytail Ruleset: 3 Methods Explained

> Learn how to disable the Ponytail ruleset with three easy methods. Temporarily turn it off with a command or permanently via environment variables and config files. Uninstalling is also an option.

- Repository: [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail)
- Tags: how-to-guide
- Published: 2026-09-13

---

**You can disable the Ponytail ruleset temporarily using the `/ponytail off` command, set it off permanently via environment variables or config files, or completely remove it by uninstalling the plugin and deleting hook files.**

Ponytail is an open-source LLM enhancement framework that injects behavioral rules into every conversation turn. According to the DietrichGebert/ponytail source code, the [`hooks/qoder-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/qoder-hooks.json) file and [`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md) rule file work together to enforce these constraints across Claude Code, Codex, Copilot CLI, and Qoder environments. Whether you need a quick pause for a single session or a permanent removal from your workflow, this guide covers three distinct approaches to disable the Ponytail ruleset.

## Temporarily Disable the Ruleset Using the Built-In Command

The fastest way to stop Ponytail from injecting its ruleset is to use the built-in slash command. This method requires no configuration changes and takes effect immediately.

Run the following command inside any active chat session:

```text
/ponytail off

```

This command deactivates the current session’s ruleset and hides the status line indicator. The session continues without Ponytail’s behavioral constraints, and you can reactivate the functionality at any time by running `/ponytail lite`, `/ponytail full`, or `/ponytail ultra`. As documented in the [`README.md`](https://github.com/DietrichGebert/ponytail/blob/main/README.md) commands section, running `/ponytail` without arguments reports the previous mode, allowing you to verify the current state before reactivation.

## Set "Off" as the Default Mode for New Sessions

To ensure every new session starts with the ruleset disabled, configure the default mode using either environment variables or a JSON configuration file. This approach persists across terminal restarts but remains reversible.

### Using Environment Variables

Set the `PONYTAIL_DEFAULT_MODE` variable to `off` before launching your LLM client:

```bash

# For bash, zsh, and compatible shells

export PONYTAIL_DEFAULT_MODE=off

```

Add this line to your shell profile (`.bashrc`, `.zshrc`, or equivalent) to make the setting persistent across terminal sessions.

### Using the Config File

Create or edit the Ponytail configuration file at the platform-specific path. On Linux and macOS, use `~/.config/ponytail/config.json`. On Windows, use `%APPDATA%\ponytail\config.json`.

Add the `defaultMode` key with a value of `off`:

```json
{
  "defaultMode": "off"
}

```

With either method, new sessions initialize with the ruleset disabled, and you must explicitly enable it using the `/ponytail` command when needed.

## Completely Remove the Ponytail Ruleset

For users who want to eliminate all traces of the injection mechanism, complete removal involves uninstalling the plugin, removing Qoder hooks, and deleting the always-on rule files.

### Uninstall the Plugin

For Claude Code, Codex CLI, or Copilot CLI installations that use the [`plugin.json`](https://github.com/DietrichGebert/ponytail/blob/main/plugin.json) manifest, execute the appropriate uninstall command:

```text

# Claude Code

/plugin remove ponytail

# Codex CLI

codex plugin remove ponytail

```

After uninstalling, run the [`scripts/uninstall.js`](https://github.com/DietrichGebert/ponytail/blob/main/scripts/uninstall.js) cleanup script to erase leftover state files, including the mode flag and status-line registry entries.

### Remove the Qoder Hook

If you use Qoder, the injection mechanism relies on a hook entry in your project configuration. Edit [`.qoder/settings.json`](https://github.com/DietrichGebert/ponytail/blob/main/.qoder/settings.json) and delete the entry that references [`hooks/qoder-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/qoder-hooks.json). Without this hook, the automatic ruleset injection defined in [`hooks/qoder-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/qoder-hooks.json) never executes during conversation turns.

### Delete the Always-On Rule File

Ponytail supports an instruction-only mode that reads from static rule files. Remove the following files from your project root to stop this behavior:

```bash

# Remove the generic rule file

rm AGENTS.md

# Or remove the platform-specific copy if present

rm .agents/rules/ponytail.md

```

Deleting these files prevents adapters that scan for [`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md) or [`.agents/rules/ponytail.md`](https://github.com/DietrichGebert/ponytail/blob/main/.agents/rules/ponytail.md) from loading the constraints without affecting your project's functionality.

## Summary

- **Temporary disable**: Use `/ponytail off` to pause the ruleset for the current session without changing configuration files.
- **Default to disabled**: Set `PONYTAIL_DEFAULT_MODE=off` or add `"defaultMode": "off"` to `~/.config/ponytail/config.json` to start every session with the ruleset inactive.
- **Complete removal**: Uninstall the plugin via `/plugin remove ponytail`, delete the Qoder hook entry from [`.qoder/settings.json`](https://github.com/DietrichGebert/ponytail/blob/main/.qoder/settings.json), and remove [`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md) or [`.agents/rules/ponytail.md`](https://github.com/DietrichGebert/ponytail/blob/main/.agents/rules/ponytail.md) to eliminate all injection points.

## Frequently Asked Questions

### How do I temporarily turn off Ponytail without uninstalling it?

Run the `/ponytail off` command inside your active chat session. This immediately stops the ruleset injection and hides the status line, but you can reactivate it later using `/ponytail lite`, `/ponytail full`, or `/ponytail ultra`. The setting resets when you start a new session unless you configure the default mode.

### What is the difference between disabling and uninstalling Ponytail?

Disabling stops the ruleset injection but preserves all files and configuration, allowing quick reactivation. Uninstalling removes the [`plugin.json`](https://github.com/DietrichGebert/ponytail/blob/main/plugin.json) registration, deletes the Qoder hook from [`.qoder/settings.json`](https://github.com/DietrichGebert/ponytail/blob/main/.qoder/settings.json), and optionally runs [`scripts/uninstall.js`](https://github.com/DietrichGebert/ponytail/blob/main/scripts/uninstall.js) to clean up state files, requiring a full reinstallation to restore functionality.

### Where does Ponytail store its default mode configuration?

Ponytail checks the `PONYTAIL_DEFAULT_MODE` environment variable first, then falls back to the JSON configuration file located at `~/.config/ponytail/config.json` on Unix systems or `%APPDATA%\ponytail\config.json` on Windows. The `defaultMode` key in this file accepts values like `off`, `lite`, `full`, or `ultra`.

### Will deleting AGENTS.md break my project if I use other AI agents?

No, deleting [`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md) or [`.agents/rules/ponytail.md`](https://github.com/DietrichGebert/ponytail/blob/main/.agents/rules/ponytail.md) only affects Ponytail's instruction-only mode. These files are specific to the Ponytail framework, and their removal does not impact other AI coding assistants or standard project operations.