How to Suppress the 'Ponytail Loaded' Toast Message in Ponytail

To suppress the "Ponytail loaded" toast, set "quietStartup": true in your ~/.ponytailrc configuration file, which causes the getQuietStartup() function in hooks/ponytail-config.js to return true and block the notification emit in pi-extension/index.js.

The Ponytail extension displays a startup toast notification whenever a session initializes, indicating the active operational mode. While helpful for confirming extension activation, this message can distract from your workflow. According to the DietrichGebert/ponytail source code, this notification is controlled by a boolean configuration flag that you can toggle via JSON configuration.

Understanding the Toast Notification Logic

The toast emission occurs in pi-extension/index.js within the session_start event handler. Before calling the UI notification method, the code explicitly checks the getQuietStartup() helper:

if (!getQuietStartup()) {
  ctx?.ui?.notify?.(`Ponytail loaded: ${currentMode}`, "info");
}

When getQuietStartup() returns true, the conditional evaluates to false and the notify call is skipped entirely. This helper function is implemented in hooks/ponytail-config.js, where it parses the .ponytailrc configuration file and returns the value of the quietStartup property.

Disabling the Toast via Configuration

Ponytail reads user preferences from a JSON configuration file located in the home directory. To permanently silence the startup toast, you must create or modify this file.

Creating the .ponytailrc File

Create a new file named .ponytailrc (note the leading dot) in your home directory. On Unix-like systems, use:

cat > ~/.ponytailrc <<'EOF'
{
  "quietStartup": true
}
EOF

On Windows, create the file at %USERPROFILE%\.ponytailrc with the same JSON content.

Validating the Configuration

Ensure the file contains valid JSON syntax with the quietStartup key set to a boolean true:

{
  "quietStartup": true
}

Invalid JSON will cause getConfig() in hooks/ponytail-config.js to fail, potentially resulting in getQuietStartup() returning undefined and the toast appearing despite your configuration.

Automating Configuration Changes

For CI/CD pipelines or team-wide environment setup, modify the configuration programmatically using Node.js:

const fs = require("fs");
const path = require("path");
const os = require("os");

const configPath = path.join(os.homedir(), ".ponytailrc");
let config = {};

if (fs.existsSync(configPath)) {
  config = JSON.parse(fs.readFileSync(configPath, "utf8"));
}

config.quietStartup = true;
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));

This script safely merges the quietStartup flag into existing configurations without overwriting other settings.

Testing Your Configuration

To verify the flag is active before the next session restart, log the current value within any Ponytail context:

console.log("quietStartup value:", getQuietStartup());

If the output displays true, the configuration loaded successfully. Restart Ponytail or reload the extension; the session_start handler will skip the notify call and the "Ponytail loaded" toast will not appear.

Summary

  • The toast is emitted in pi-extension/index.js and controlled by the getQuietStartup() function in hooks/ponytail-config.js
  • Set "quietStartup": true in ~/.ponytailrc to disable the notification
  • The configuration file must use valid JSON syntax and reside in the user's home directory
  • Changes take effect immediately upon the next session start or extension reload
  • Programmatic updates can be performed using standard Node.js file system operations

Frequently Asked Questions

Does the quietStartup setting affect other Ponytail notifications?

No. The quietStartup flag exclusively controls the single toast message emitted during the session_start event in pi-extension/index.js. Error messages, warnings, and other informational notifications from Ponytail continue to display normally.

What file format does Ponytail expect for the .ponytailrc configuration?

Ponytail requires strict JSON format. The getConfig() function in hooks/ponytail-config.js parses the file using JSON.parse(), so trailing commas, single quotes, or unquoted keys will cause the configuration load to fail and the toast suppression to malfunction.

Can I suppress the toast without creating a configuration file?

No. According to the source code in DietrichGebert/ponytail, the only mechanism to disable the toast is through the quietStartup boolean read from .ponytailrc. There is no command-line flag or environment variable that overrides this behavior in the current implementation.

Will the toast suppression persist across editor restarts?

Yes. Once quietStartup is set to true in ~/.ponytailrc, the setting persists indefinitely. The getQuietStartup() function reads the file during every session_start event, so the toast remains suppressed across all future editor sessions until you delete the flag or set it to false.

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 →