can you call the pi binary and try to unwrap it piece by piece. I want to understand what skills I have loaded currently, what extensions, where they live, etc.
Now I have a very complete picture. Here's the full breakdown:
/home/lakshyaag/.bun/bin/pi → symlink to ~/.bun/install/global/node_modules/@mariozechner/pi-coding-agent/dist/cli.js0.55.4~/.pi/agent/| Path | Purpose |
|---|---|
settings.json | Main settings (model, theme, packages, compaction, etc.) |
auth.json | API keys/OAuth tokens (Anthropic, Google, Google-Antigravity) |
models.json | Custom provider config — 1 provider: prime-intellect (100 models) |
sessions/ | 7 session folders, keyed by CWD path |
skills/ | 14 built-in skills |
extensions/ | 1 local custom extension |
git/ | Git-cloned packages |
settings.json)defaultProvider: anthropicdefaultModel: claude-sonnet-4-6thinkingLevel: hightheme: darkenableSkillCommands: truecompaction: enabled (19k reserve / 19k keep tokens)retry: 3 retriesInstalled packages (from settings.packages):
| Package | Type | Source |
|---|---|---|
pi-extensions | git | github.com/tmustier/pi-extensions |
pi-powerline-footer | npm | bun global |
pi-extmgr | npm | bun global |
agent-stuff | git | github.com/mitsuhiko/agent-stuff/ |
~/.pi/agent/skills/| Skill | Description |
|---|---|
claymorphism | Clay-like UI components (CSS design system) |
context7 | Query up-to-date library docs via Context7 API |
debug-helper | Error analysis, log interpretation, profiling |
excalidraw | Create/edit Excalidraw diagrams |
git-workflow | Branching, commits, PRs, conflict resolution |
glassmorphism | Frosted-glass UI components |
liquid-glass | Apple Liquid Glass design system |
neubrutalism | Bold UI with thick borders & offset shadows |
presentation-builder | Convert docs/outlines → Slidev deck + Excalidraw |
quick-setup | Auto-detect project type & generate .pi/ config |
web-fetch | Fetch & extract readable text from a URL |
web-search | Web search via Tavily |
Plus 2 skills from tmustier/pi-extensions (git package):
| Skill | Description |
|---|---|
extending-pi | Guide for extending Pi (skills, extensions, etc.) |
skill-creator | Create or refine Pi skills |
Local (~/.pi/agent/extensions/):
excalidraw-preview — Registers the export_excalidraw tool + /export-diagram slash command. Uses headless Chromium via bun render.ts to render .excalidraw → high-DPI PNG.From tmustier/pi-extensions (git package, ~/.pi/agent/git/github.com/tmustier/pi-extensions/):
arcade — Games (Pong, Pacman, Tetris, Space Invaders, Mario-not) 🎮code-actions — Code action picker UIraw-paste — Raw paste commandtab-status — Tab status indicatorusage-extension — Token/cost usage displayweather — Weather widget (with Rust native bridge)From mitsuhiko/agent-stuff (git package, ~/.pi/agent/git/github.com/mitsuhiko/agent-stuff/):
pi-extensions/ folder with: answer.ts, context.ts, files.ts (/files + /diff picker), prompt-editor.ts, review.ts, session-breakdown.ts, todos.tscommands/ (prompt templates for pip/python/etc) and intercepted-commands/npm-cached (in .extmgr-cache/metadata.json):
pi-extmgr — Extension manager UIpi-powerline-footer — Powerline-style footerpi-mcp-adapter — MCP protocol adapterinnate-autumn-hgn6m)models.json (100 models at api.pinference.ai)The user wants me to explore the pi binary and understand its structure - what skills are loaded, what extensions exist, where they live, etc. Let me start by finding the pi binary and exploring its structure.
Let me start by locating the pi binary and exploring everything around it.
># Check npm packages loaded (pi-powerline-footer, pi-extmgr)
ls /home/lakshyaag/.bun/install/global/node_modules/ | grep -i "pi-">ls /home/lakshyaag/.bun/install/global/node_modules/ | grep -v "^@" | grep -v "^node" | sort>ls -la /home/lakshyaag/.pi/agent/extensions/excalidraw-preview/># What extensions does mitsuhiko/agent-stuff declare?
find /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff -maxdepth 1 -type d | sort>ls -la /home/lakshyaag/.pi/agent/extensions/>ls -la /home/lakshyaag/.pi/agent/git/># Check the models.json for what models are configured
python3 -c "
import json
with open('/home/lakshyaag/.pi/agent/models.json') as f:
d = json.load(f)
# Just show top-level keys and count
print('Top-level keys:', list(d.keys()) if isinstance(d, dict) else type(d))
if isinstance(d, list):
print('Count:', len(d))
for m in d[:5]:
if isinstance(m, dict):
print(' -', m.get('id') or m.get('name') or str(m)[:60])
elif isinstance(d, dict):
for k,v in list(d.items())[:10]:
print(f' {k}: {str(v)[:80]}')
">find /home/lakshyaag/.pi/agent/skills -name "SKILL.md" | sort | xargs -I{} sh -c 'echo "=== {} ==="; head -5 {}'>ls -la /home/lakshyaag/.pi/agent/git/github.com/>find /home/lakshyaag/.pi/agent/git -mindepth 2 -maxdepth 3 -type d | sort>which pi>cat /home/lakshyaag/.pi/agent/auth.json | python3 -c "import json,sys; d=json.load(sys.stdin); print(json.dumps({k: '***' if 'key' in k.lower() or 'token' in k.lower() or 'secret' in k.lower() else v for k,v in d.items()}, indent=2))" 2>/dev/null || echo "Could not parse">cat /home/lakshyaag/.pi/agent/.extmgr-cache/metadata.json 2>/dev/null | python3 -m json.tool 2>/dev/null | head -60># Check what the pi-extmgr and pi-powerline-footer packages actually are
find /home/lakshyaag/.bun/install/global/node_modules -maxdepth 2 -name "package.json" | xargs grep -l '"pi-' 2>/dev/null | head -5>ls /home/lakshyaag/.pi/>cat /home/lakshyaag/.pi/agent/extensions/excalidraw-preview/index.ts>find /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff/pi-extensions -type f | sort>ls -la /home/lakshyaag/.bun/bin/pi>ls -la /home/lakshyaag/.pi/agent/skills/>cat /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff/package.json>cat /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff/pi-extensions/files.ts | head -40># Check sessions count and recent ones
ls /home/lakshyaag/.pi/agent/sessions/ | wc -l
ls -lt /home/lakshyaag/.pi/agent/sessions/ | head -5>ls /home/lakshyaag/.pi/agent/prompts/ && ls /home/lakshyaag/.pi/agent/themes/>ls /home/lakshyaag/.pi/agent/.pi/>ls -la /home/lakshyaag/.pi/agent/>ls /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff/commands/
ls /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff/intercepted-commands/ 2>/dev/null>ls /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff/commands/># Check the pi core package itself - version and structure
cat /home/lakshyaag/.bun/install/global/node_modules/@mariozechner/pi-coding-agent/package.json | python3 -c "import json,sys; d=json.load(sys.stdin); print('version:', d.get('version')); print('description:', d.get('description')); print('bin:', list(d.get('bin', {}).keys()))"># Check the pi package manager's cache and loaded extensions
cat /home/lakshyaag/.pi/agent/.extmgr-cache 2>/dev/null || ls /home/lakshyaag/.pi/agent/.extmgr-cache/ 2>/dev/null>ls /home/lakshyaag/.pi/agent/prompts/ 2>/dev/null | head -20; echo "---"; ls /home/lakshyaag/.pi/agent/themes/ 2>/dev/null | head -20>find /home/lakshyaag/.pi/agent/git/github.com/tmustier/pi-extensions -type f | sort>find /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff -type f | sort>cat /home/lakshyaag/.pi/agent/settings.json 2>/dev/null || cat /home/lakshyaag/.pi/agent/.pi/settings.json 2>/dev/null># Check for skills in mitsuhiko package
find /home/lakshyaag/.pi/agent/git/github.com/mitsuhiko/agent-stuff -name "SKILL.md" 2>/dev/null>python3 -c "
import json
with open('/home/lakshyaag/.pi/agent/models.json') as f:
d = json.load(f)
providers = d['providers']
print(f'Total providers: {len(providers)}')
for name, pdata in providers.items():
models = pdata.get('models', [])
print(f' {name}: {len(models)} models, baseUrl={pdata.get(\"baseUrl\",\"N/A\")[:50]}')
"defaultProvider: anthropicdefaultModel: claude-sonnet-4-6thinkingLevel: hightheme: darkenableSkillCommands: truecompaction: enabled (19k reserve / 19k keep tokens)retry: 3 retries