# How to Hide the Ponytail Status Bar Indicator: Complete Configuration Guide

> Learn how to hide the Ponytail status bar indicator by setting the PONYTAIL_HIDE_STATUS environment variable or configuring hideStatus to true in your Ponytail setup.

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

---

**Set the `PONYTAIL_HIDE_STATUS` environment variable to `1` or add `"hideStatus": true` to your Ponytail configuration file to suppress the status-bar indicator while keeping the rule engine fully operational.**

Ponytail displays a "🐴 ponytail:" indicator in the UI status bar while it is active. If you prefer a cleaner interface, you can hide the Ponytail status bar indicator without disabling the extension itself by controlling the `hideStatus` configuration flag as implemented in the DietrichGebert/ponytail repository.

## How the Status Bar Suppression Works

The indicator suppression logic is implemented across two core files in the Ponytail source code.

### Runtime Check in `syncStatus()`

In [`pi-extension/index.js`](https://github.com/DietrichGebert/ponytail/blob/main/pi-extension/index.js), the `syncStatus()` function evaluates the `hideStatus` flag on every UI update cycle:

```js
// ponytail: hide the indicator but keep the ruleset active (#324).
if (hideStatus) return;

```

When `hideStatus` is truthy, the function returns early, preventing the status-bar text from being sent to the UI. Ponytail's rule engine continues to operate normally regardless of this setting.

### Configuration Resolution in `getHideStatus()`

In [`hooks/ponytail-config.js`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/ponytail-config.js), the `getHideStatus()` function resolves the flag from two potential sources:

- The `PONYTAIL_HIDE_STATUS` environment variable (takes precedence)
- The `hideStatus` key in [`config.json`](https://github.com/DietrichGebert/ponytail/blob/main/config.json)

```js
// Hide the status-bar indicator while keeping ponytail active (#324).
// PONYTAIL_HIDE_STATUS=1 (or any truthy value; 0/false/empty mean "don't hide")
// takes precedence, else config.hideStatus === true.
function getHideStatus() { … }

```

According to the source comments, any truthy value for the environment variable (such as `1`) hides the indicator, while `0`, `false`, or empty values leave it visible.

## Method 1: Hide the Indicator Using an Environment Variable

Setting `PONYTAIL_HIDE_STATUS` before launching Ponytail provides immediate suppression without modifying configuration files.

### Unix-Like Systems (Linux/macOS)

```sh
export PONYTAIL_HIDE_STATUS=1
ponytail

```

### Windows PowerShell

```powershell
$env:PONYTAIL_HIDE_STATUS = "1"
ponytail

```

This method is ideal for temporary hiding or scripting scenarios where you do not want to persist the setting across sessions.

## Method 2: Hide the Indicator Using the Configuration File

For permanent suppression, configure the `hideStatus` property in your Ponytail configuration file.

### Locating the Configuration Directory

The configuration file path is determined by `getConfigPath()` in [`hooks/ponytail-config.js`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/ponytail-config.js). The location varies by operating system:

- **Linux/macOS**: `~/.config/ponytail/config.json`
- **Windows**: `%APPDATA%\ponytail\config.json`
- **XDG-compliant systems**: `$XDG_CONFIG_HOME/ponytail/config.json`

### Editing config.json

Create or edit the [`config.json`](https://github.com/DietrichGebert/ponytail/blob/main/config.json) file in the appropriate directory and add the following:

```json
{
  "hideStatus": true,
  "quietStartup": false,
  "defaultMode": "full"
}

```

You must restart Ponytail after saving the file for `getHideStatus()` to read the new value and for `syncStatus()` to begin suppressing the indicator.

## Verifying the Configuration Programmatically

You can confirm the flag value by importing the configuration helper directly from the source:

```js
import { getHideStatus } from "./hooks/ponytail-config.js";

console.log("Hide status flag:", getHideStatus());
// Output: true indicates the indicator will be hidden

```

This verification step confirms that your environment variable or JSON configuration is being parsed correctly before launching the full application.

## Summary

- The `hideStatus` flag in the DietrichGebert/ponytail repository controls visibility of the status-bar indicator.
- The `syncStatus()` function in [`pi-extension/index.js`](https://github.com/DietrichGebert/ponytail/blob/main/pi-extension/index.js) checks this flag and skips UI updates when enabled.
- Set `PONYTAIL_HIDE_STATUS=1` as an environment variable for temporary hiding.
- Add `"hideStatus": true` to [`config.json`](https://github.com/DietrichGebert/ponytail/blob/main/config.json) for permanent suppression across restarts.
- Ponytail's rule engine remains active regardless of the indicator's visibility.

## Frequently Asked Questions

### Does hiding the status bar indicator disable Ponytail's ruleset?

No. According to the source code comment in [`pi-extension/index.js`](https://github.com/DietrichGebert/ponytail/blob/main/pi-extension/index.js) ("hide the indicator but keep the ruleset active"), hiding the indicator only affects UI rendering. The underlying rule engine continues to evaluate and apply rules normally when `hideStatus` is enabled.

### Why is my configuration file change not taking effect?

Ensure the file is located in the directory returned by `getConfigPath()` in [`hooks/ponytail-config.js`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/ponytail-config.js)—typically `~/.config/ponytail/config.json` on Linux/macOS or `%APPDATA%\ponytail\config.json` on Windows. You must completely restart Ponytail after modifying the file, as the configuration is read at startup and cached for the session.

### Can I toggle the indicator visibility while Ponytail is running?

No. While `syncStatus()` checks the flag on every UI update, the `getHideStatus()` function in [`hooks/ponytail-config.js`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/ponytail-config.js) resolves the value from the environment or config file during initialization. Changing the environment variable or config file after startup will not affect the current session until you restart the application.

### What values are valid for the `PONYTAIL_HIDE_STATUS` environment variable?

Any truthy string value hides the indicator. Specifically, `1`, `true`, `yes`, or `on` will enable hiding. Values like `0`, `false`, `no`, or empty strings are treated as falsy, leaving the indicator visible. This behavior is determined by the precedence logic in `getHideStatus()`.