By TeamBaconn
Visualize live Claude Code sessions as desktop NPCs. Each running session spawns an on-screen character that animates to reflect what the session is doing.
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code plugin that visualizes live Claude Code sessions as desktop NPCs. Each running session spawns an on-screen character that animates to reflect what the session is doing — reading, writing, running commands, browsing, or waiting for your attention.
Requires the PocketClaudes game (Unity 6, built separately). Works on Windows, macOS, and Linux.
claude plugin marketplace add TeamBaconn/PocketClaudes
claude plugin install pocket-claudes@pocket-claudes
For local development:
claude --plugin-dir <path-to-this-repo>
Launch the PocketClaudes game yourself before (or any time during) a Claude Code session. The plugin does not start the game — it only forwards events to a game that is already running. Events sent while the game is closed are dropped silently.
The plugin registers hooks for these Claude Code events:
SessionStart, SessionEndUserPromptSubmitPreToolUse, PostToolUse, PostToolUseFailurePermissionRequest, PermissionDeniedElicitation, ElicitationResultSubagentStart, SubagentStopNotification (only the idle_prompt matcher)Stop, StopFailureEach hook normalizes the event JSON into a flat IpcCommand and POSTs it to the game over loopback HTTP (port 1604). The hook command tries bash first (macOS/Linux), falling back to PowerShell (Windows).
Your prompts, code, and tool output never leave Claude Code. The hook forwards only a fixed set of metadata fields to the game — nothing more.
Sent to the game:
eventName, sessionId, agentId, agentType — event type + opaque IDstoolName, toolUseId — which tool fired (e.g. Read, Bash), not its argumentsmodel — model namecwd — current working directory (used as on-NPC label only)hostPid — PID of your terminal/IDE window, so clicking the NPC brings that window to the front (the only reason the game needs it)Never sent: your prompt text, tool inputs (Bash commands, file paths, edit contents), tool results (file contents, command output), Claude's responses, error messages, MCP elicitation values, or the transcript path.
The game listens only on 127.0.0.1:1604 (loopback) and makes no outbound network connections. You can verify with netstat / lsof or any network monitor.
Audit the exact fields extracted in scripts/hook-event.sh and scripts/hook-event.ps1 — both are under 100 lines.
pocket-claudes-plugin/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── hooks/
│ └── hooks.json # Hook registrations
└── scripts/
├── hook-event.sh # macOS/Linux: normalizes hook JSON → IpcCommand
└── hook-event.ps1 # Windows: normalizes hook JSON → IpcCommand
MIT
npx claudepluginhub teambaconn/pocketclaudes --plugin pocket-claudesUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses