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

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, the syncStatus() function evaluates the hideStatus flag on every UI update cycle:

// 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, the getHideStatus() function resolves the flag from two potential sources:

  • The PONYTAIL_HIDE_STATUS environment variable (takes precedence)
  • The hideStatus key in config.json
// 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)

export PONYTAIL_HIDE_STATUS=1
ponytail

Windows 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. 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 file in the appropriate directory and add the following:

{
  "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:

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 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 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 ("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—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 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().

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →