By rphilander
Visual dev iteration channel for Claude Code on Sprites — inline screenshots, clipboard paste, drag-and-drop images.
A two-way visual chat channel for Claude Code, built for iterating on web UIs from a Sprite (or any remote Linux dev environment).
You sit in your laptop browser. Claude Code runs in the Sprite terminal. The dialogue server bridges them: you paste screenshots in, Claude annotates and replies with screenshots out. No clipboard hacks, no SSH tunnels — just an HTTP/WebSocket page accessible at the Sprite's auto-forwarded port.
send_image toolBuilt on top of Claude Code's channels API.
~/.claude/projects/*/*.jsonl, parses new assistant turns, and broadcasts them to the UI WebSocket. Race-free by construction — we read after Claude Code has already flushed.send_image tool with absolute file pathuser-type entries (skipping channel-sourced messages and tool results) so the UI shows what was typed in the terminal tooInside Claude Code on the Sprite:
/plugin marketplace add rphilander/sprite-dialogue
/plugin install sprite-dialogue@sprite-dialogue
/reload-plugins
Then exit and relaunch Claude with the channel flag:
claude --dangerously-load-development-channels plugin:sprite-dialogue@sprite-dialogue
This repo is both the marketplace and the plugin. The plugin lives in the
plugin/ subdirectory; .claude-plugin/marketplace.json at the
root declares it. To run from a local clone (e.g. for development), point
--plugin-dir at the plugin/ subdirectory, not the repo root.
The server picks a port deterministically from the Sprite's hostname (range 30000–39999), so multiple Sprites running sprite-dialogue won't collide on localhost when forwarded to your laptop. After Claude Code starts, find the URL:
cat /tmp/sprite-dialogue-url
Open that URL in your laptop browser. (Sprites auto-forward bound ports; no sprite proxy needed when running sprite console.)
To override the port explicitly, set SPRITE_DIALOGUE_PORT before launching Claude.
Runtime state lives at ~/.claude/channels/sprite-dialogue/{inbox,outbox}/. The bun server is a single server.ts file with embedded HTML; it has self-heal logic that kills any stale predecessor and exits when its parent (Claude Code) goes away.
Working but rough around the edges — see TODO.md for known issues and planned enhancements.
MIT
Admin access level
Server config contains admin-level keywords
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.
npx claudepluginhub rphilander/sprite-dialogue --plugin sprite-dialoguePermanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.