It will be great of we add something like this to the Pi extension. I added to my env and love it :-)
diff --git a/pi-extension/index.js b/pi-extension/index.js
index 5d74798..e100535 100644
--- a/pi-extension/index.js
+++ b/pi-extension/index.js
@@ -55,6 +55,25 @@ export { writeDefaultMode };
export default function ponytailExtension(pi) {
let currentMode = DEFAULT_MODE;
let configuredDefaultMode = getDefaultMode();
+ let isActive = false;
+ let lastCtx = null;
+
+ // -- Status bar --
+ function syncStatus(ctx) {
+ if (ctx) lastCtx = ctx;
+ const c = ctx || lastCtx;
+ if (!c?.ui?.setStatus) return;
+ const theme = c.ui.theme;
+ if (currentMode === "off") {
+ c.ui.setStatus("ponytail", "");
+ return;
+ }
+ const levelIcons = { lite: "🌿", full: "⚡", ultra: "🔥" };
+ const icon = levelIcons[currentMode] || "";
+ const label = currentMode.toUpperCase();
+ const indicator = isActive ? theme.fg("accent", "●") : theme.fg("dim", "○");
+ c.ui.setStatus("ponytail", indicator + " 🐴 " + theme.fg("muted", "ponytail: ") + theme.fg("text", icon + " " + label));
+ }
const setMode = (mode, ctx) => {
const normalized = normalizePersistedMode(mode);
@@ -62,6 +81,7 @@ export default function ponytailExtension(pi) {
currentMode = normalized;
pi.appendEntry("ponytail-mode", { mode: normalized });
+ syncStatus(ctx);
ctx?.ui?.notify?.(`Ponytail mode set to ${normalized}.`, "info");
};
@@ -142,6 +162,18 @@ export default function ponytailExtension(pi) {
const entries = ctx?.sessionManager?.getBranch?.() || ctx?.sessionManager?.getEntries?.() || [];
configuredDefaultMode = getDefaultMode();
currentMode = resolveSessionMode(entries, configuredDefaultMode);
+ syncStatus(ctx);
+ ctx?.ui?.notify?.(`Ponytail loaded: ${currentMode}`, "info");
+ });
+
+ pi.on("agent_start", async (_event, ctx) => {
+ isActive = true;
+ syncStatus(ctx);
+ });
+
+ pi.on("agent_end", async (_event, ctx) => {
+ isActive = false;
+ syncStatus(ctx);
});
pi.on("before_agent_start", async (event) => {
It will be great of we add something like this to the Pi extension. I added to my env and love it :-)