
Security News
/Research
Popular node-ipc npm Package Infected with Credential Stealer
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.
shitty-extensions
Advanced tools
Custom extensions and skills for pi coding agent.
Requires pi 0.50.0+ | npm | GitHub
Install from npm:
pi install npm:shitty-extensions
Or install from git:
pi install git:github.com/hjanuschka/shitty-extensions
That's it! Pi automatically discovers all extensions and skills from the package.
Load for a single session without permanent installation:
pi -e npm:shitty-extensions
Install to .pi/ for team sharing (auto-installs for teammates on startup):
pi install -l npm:shitty-extensions
Clone the repo and reference directly:
git clone https://github.com/hjanuschka/shitty-extensions.git ~/shitty-extensions
pi -e ~/shitty-extensions
Extensions are located in the extensions/ directory.
๐ Copy text to the system clipboard via OSC52 escape sequences.
| Tool | Description |
|---|---|
copy_to_clipboard | Copy text to clipboard (available to the LLM) |
Just ask:
๐ฎ Get a second opinion from another AI model without switching contexts.
| Command | Description |
|---|---|
/oracle <prompt> | Ask for a second opinion with model picker |
/oracle -m gpt-4o <prompt> | Direct query to specific model |
/oracle -f file.ts <prompt> | Include file(s) in context |
| Provider | Models |
|---|---|
| OpenAI | gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, o1, o1-mini, o3-mini |
| OpenAI Codex | gpt-5.2-codex, codex-mini |
| gemini-2.0-flash, gemini-2.5-flash, gemini-2.5-pro | |
| Anthropic | claude-sonnet-4-5, claude-opus-4, claude-haiku-3-5 |
/oracle Is this the right approach for the API design?
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ฎ Oracle - Second Opinion โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Prompt: Is this the right approach for the API design? โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโ/jk navigate โข 1-9 quick select โข Enter send โ
โ โ
โ โฏ 1. GPT-4o (openai) โ
โ 2. Gemini 2.5 Pro (google) โ
โ 3. Claude Sonnet 4.5 (anthropic) โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Esc cancel โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
[After response...]
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ฎ Oracle Response (GPT-4o) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Q: Is this the right approach for the API design? โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Based on the conversation, I see you're building a REST โ
โ API with nested resources. A few thoughts: โ
โ โ
โ 1. The approach looks solid for simple cases... โ
โ ... โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Add to current conversation context? โ
โ โ
โ [ YES ] NO โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโ/Tab switch Enter confirm Y/N quick โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Save instructions to AGENTS.md files with AI-assisted integration.
| Command | Description |
|---|---|
/mem <instruction> | Save an instruction to AGENTS.md |
/remember <instruction> | Alias for /mem |
Location selector: Choose where to save:
| Location | File | Use Case |
|---|---|---|
| Project Local | ./AGENTS.local.md | Personal preferences, auto-added to .gitignore |
| Project | ./AGENTS.md | Shared with team |
| Global | ~/.pi/agent/AGENTS.md | All your projects |
AI-assisted integration: The current model intelligently integrates instructions
Preview before save: Review proposed changes before committing
Claude Code-style "plan mode" for safe code exploration.
| Command | Description |
|---|---|
/plan | Toggle plan mode on/off |
/todos | Show current plan todo list |
| Shortcut | Action |
|---|---|
Shift+P | Toggle plan mode |
| Flag | Description |
|---|---|
--plan | Start session in plan mode |
Transfer context to a new focused session.
| Command | Description |
|---|---|
/handoff <goal> | Generate a context-aware prompt for a new session |
Display AI provider usage statistics with status polling and reset countdowns.
| Command | Description |
|---|---|
/usage | Show usage statistics popup |
| Provider | Metrics Shown | Auth Source |
|---|---|---|
| Claude | 5h window, Week, Sonnet/Opus | pi auth, macOS Keychain |
| Copilot | Premium, Chat | pi auth, gh auth token |
| Gemini | Pro quota, Flash quota | pi auth (google-gemini-cli) |
| Codex | 5h window, Day, Credits | pi auth (openai-codex) |
| Kiro | Credits, Bonus credits | kiro-cli |
| z.ai | Token limits, Monthly | Z_AI_API_KEY env or pi auth |
Rainbow animated "ultrathink" text effect with Knight Rider shimmer.
| Command | Description |
|---|---|
/ultrathink | Trigger the rainbow animation |
| Shortcut | Action |
|---|---|
Ctrl+U | Trigger ultrathink |
Persistent provider status indicator in the footer.
| Command | Description |
|---|---|
/status | Toggle status widget on/off |
/status-refresh | Force refresh status now |
Analyze spending from pi session logs.
| Command | Description |
|---|---|
/cost | Show spending for last 30 days |
/cost <days> | Show spending for last N days |
RSVP (Rapid Serial Visual Presentation) speed reader using Spritz-style technique. Displays words one at a time with the ORP (Optimal Recognition Point) highlighted for faster reading.
| Command | Description |
|---|---|
/speedread | Speed read the last AI response (default) |
/speedread <text> | Speed read provided text |
/speedread -c | Speed read from clipboard |
/speedread -l | Speed read last AI response (explicit) |
/speedread -wpm 500 | Set words per minute (default: 400) |
| Shortcut | Action |
|---|---|
Ctrl+R | Speed read last AI response |
| Key | Action |
|---|---|
SPACE | Play/pause |
โ / โ | Seek ยฑ1 word |
[ / ] | Jump ยฑ10 words |
โ / โ | Adjust speed (ยฑ25 WPM) |
B | Toggle big ASCII art font |
R | Restart |
Q / ESC | Quit |
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ reading โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ400 wpm โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โถ 42/128
SPACE play/pause โโ ยฑ1 [] ยฑ10 โโ speed B big font R restart Q quit
The a in "reading" would be highlighted in red as the ORP.
Author: mitsuhiko (@mitsuhiko) | Origin: agent-stuff
Start a follow-up loop until a breakout condition is met.
| Command | Description |
|---|---|
/loop | Open loop mode selector |
/loop tests | Loop until tests pass |
/loop custom <condition> | Loop until custom condition met |
/loop self | Agent decides when to stop |
Authentic FULLSCREEN FLICKER experience.
Randomly glitches your screen with intense colors and noise to keep you on your toes. "Just be annoying!"
| Command | Description |
|---|---|
/flicker-corp | Toggle the flicker experience |
/signature-flicker | Alias for flicker-corp |
๐ก Mysterious resistance transmission in the footer.
A cryptic message types out character by character with a retro green terminal aesthetic. Features radio signal indicators, random glitch effects, and a blinking cursor.
| Command | Description |
|---|---|
/resistance | Toggle the resistance transmission |
[โโโ
โ] pulsing like a radio"If you're listening to this, you are the resistance. Listen carefully, if we attack tonight, our humanity is lost."
Skills are located in the skills/ directory. They provide domain-specific knowledge that agents automatically load when relevant tasks are detected.
๐ Austrian public transport (VOR AnachB) for all of Austria.
Query real-time departures, search stations/stops, plan routes between locations, and check service disruptions for Austrian trains, buses, trams, and metro (U-Bahn).
| Script | Description |
|---|---|
search.sh | Find stations/stops by name |
departures.sh | Get real-time departures |
route.sh | Plan a trip between locations |
disruptions.sh | List service disruptions |
See skills/a-nach-b/SKILL.md for full API documentation.
This package follows the pi package conventions:
shitty-extensions/
โโโ package.json # Declares extensions in "pi" field + "pi-package" keyword
โโโ extensions/ # Auto-discovered extensions (.ts files)
โ โโโ clipboard.ts
โ โโโ cost-tracker.ts
โ โโโ flicker-corp.ts
โ โโโ funny-working-message.ts
โ โโโ handoff.ts
โ โโโ loop.ts
โ โโโ memory-mode.ts
โ โโโ oracle.ts
โ โโโ plan-mode.ts
โ โโโ resistance.ts
โ โโโ speedreading.ts
โ โโโ status-widget.ts
โ โโโ ultrathink.ts
โ โโโ usage-bar.ts
โโโ skills/ # Auto-discovered skills (SKILL.md folders)
โ โโโ a-nach-b/
โ โโโ SKILL.md # Skill definition & API docs
โ โโโ search.sh
โ โโโ departures.sh
โ โโโ route.sh
โ โโโ disruptions.sh
โโโ README.md
MIT
FAQs
Custom extensions and skills for pi coding agent
We found that shitty-extensions demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
/Research
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.

Security News
TeamPCP and BreachForums are promoting a Shai-Hulud supply chain attack contest with a $1,000 prize for the biggest package compromise.

Security News
Packagist urges PHP projects to update Composer after a GitHub token format change exposed some GitHub Actions tokens in CI logs.