stemado/visualizer-plugin
stemado/visualizer-plugin · 0 stars · 1 plugin
Marketplace
Install
/plugin marketplace add stemado/visualizer-pluginRun inside Claude Code, then install plugins from it. Check the repo's README before you run it.
Plugins 1
After adding the marketplace, install one with /plugin install <name>@visualizer.
- 1visualizerInteractive HTML visualization companion — push diagrams, mockups, and explorers to a browser window
/plugin install visualizer@visualizer
Files
Visualizer
A Claude Code plugin that pushes interactive HTML visualizations to a browser window. Claude generates diagrams, mockups, comparisons, and dashboards — you see them live in your browser while continuing to work in the terminal.
How It Works
┌──────────────┐ stdio/JSON-RPC ┌──────────────┐ HTTP + WebSocket ┌──────────────┐
│ Claude Code │◄──────────────────►│ MCP Server │◄────────────────────►│ Browser │
│ (terminal) │ │ (Node.js) │ │ (localhost) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
You ask Claude Serves HTML, relays You see & interact
to visualize user events back with visualizations
Claude calls MCP tools to push HTML screens to the browser and read your interactions (clicks, selections) back. No filesystem intermediary — content flows directly through WebSocket.
Install
From the marketplace
claude plugin install visualizer@visualizer
Or add the marketplace first, then install
claude plugin marketplace add stemado/visualizer-plugin claude plugin install visualizer
Dependencies are installed automatically on first session start.
Quick Start
Just ask Claude to visualize something:
"Visualize the architecture of this project"
"Show me a side-by-side comparison of these two API designs"
"Mock up a dashboard for our deployment metrics"
Claude will:
- Launch a session and give you a URL (e.g.,
http://localhost:54321) - Open it in your browser
- Push interactive HTML content
- Read your clicks and selections
- Iterate based on your feedback
What You Can Do With It
Architecture & System Design
- "Visualize the architecture of this project" — SVG diagrams with clickable service nodes, showing data flow between layers
- "Show me how the auth middleware connects to the session store" — Trace a specific execution path visually
- "Diagram the database schema for the users module" — Entity-relationship diagrams with relationships
- "Map out the microservices and their communication patterns" — Service mesh visualization with protocol labels
Decision-Making & Comparisons
- "Compare Redux vs Zustand for our state management" — Side-by-side mockups with pros/cons cards you can click to vote on
- "Show me 3 approaches for the caching layer" — Interactive option cards where you click your preference, then Claude drills deeper
- "Help me choose between Postgres and DynamoDB for this use case" — Comparison dashboard with trade-off matrices
UI Mockups & Prototyping
- "Mock up what the settings page could look like" — HTML/CSS mockups with nav bars, sidebars, form elements
- "Show me 2-3 layout options for the dashboard" — Push multiple screens, iterate based on your clicks
- "Prototype the onboarding flow" — Multi-screen walkthrough where each click advances to the next step
Flowcharts & Process Diagrams
- "Diagram the CI/CD pipeline" — SVG flowcharts with decision nodes, color-coded stages
- "Map the user signup flow including error states" — State machines with branching paths
- "Show the deployment process step by step" — Sequential flow with decision diamonds
Concept Maps & Knowledge Graphs
- "Map out how the modules in this codebase relate to each other" — Canvas-based draggable node graphs with force-directed layout
- "Create a concept map of our API endpoints and their dependencies" — Interactive knowledge graph you can rearrange
- "Visualize the dependency tree for this package" — Hierarchical node layout
Dashboards & Data Visualization
- "Build a dashboard showing our test coverage by module" — KPI tiles with sparkline charts and status indicators
- "Visualize the performance metrics from these benchmark results" — Bar/line charts with change indicators
- "Show a health dashboard for the services" — Real-time-style tiles with green/yellow/red status
Data Exploration
- "Help me explore this JSON schema interactively" — Schema browsers with expandable nodes
- "Build a query builder UI for the API" — Interactive filter/query interfaces
- "Visualize the data pipeline stages" — Pipeline designers with syntax-highlighted previews
Code Review & Refactoring
- "Show me the before/after of this refactoring visually" — Split-view comparison of code structure
- "Visualize the call graph for this function" — Trace which functions call what
- "Diagram the class hierarchy" — Inheritance/composition trees
Project Planning
- "Visualize the feature roadmap" — Timeline/Gantt-style layouts
- "Map out the migration plan phases" — Sequential phase diagrams with dependencies
- "Show the sprint breakdown visually" — Kanban or phase-based layouts
Interactive Exploration & Learning
- "Walk me through how WebSockets work with a diagram" — Educational multi-screen sequences
- "Explain the event loop visually" — Animated or step-by-step concept breakdowns
- "Show me how this algorithm works step by step" — Interactive stepping through logic
The Key Differentiator: Interactivity
The killer feature is the feedback loop — you don't just look at static diagrams. You click choices in the browser (via data-choice attributes), and Claude reads those events to push refined screens. This makes it great for:
- Iterative design — "Show me 3 options" → click one → "Now show me variations of that"
- Decision trees — Each click branches into deeper detail
- Guided exploration — Click through a codebase visualization node by node
MCP Tools
The plugin exposes 6 tools via the Model Context Protocol:
| Tool | Parameters | Description |
|---|---|---|
launch_session |
(none) | Start an HTTP+WebSocket server, returns a browser URL |
push_screen |
session_id, html, title? |
Push HTML to the browser. Fragments auto-wrap in a themed frame |
get_events |
session_id, since?, clear? |
Read user interactions (clicks on [data-choice] elements) |
list_sessions |
(none) | List active sessions with URLs and status |
close_session |
session_id |
Stop the server, clean up, and generate a static gallery |
generate_gallery |
session_id |
Generate a static HTML gallery for an archived session |
Features
Auto-theming
HTML fragments are automatically wrapped in a themed frame with light/dark mode support (follows system preference), a header bar, and an indicator showing selection state.
Built-in CSS classes
The frame template includes ready-to-use classes for common UI patterns:
- Options — A/B/C choice cards with selection highlighting
- Cards — responsive grid with hover effects
- Mockups — browser-chrome-style containers
- Split view — side-by-side comparison (responsive)
- Pros/Cons — color-coded tradeoff lists
- Mock elements — nav bars, sidebars, buttons, inputs, placeholders
Click capture
Any element with data-choice="value" and onclick="toggleSelect(this)" becomes interactive. Clicks are captured and returned to Claude via get_events, enabling multi-turn visual conversations.
Full document support
Need complete page control for canvas or complex SVG? Push a full <!DOCTYPE html> document — the WebSocket helper is still auto-injected.
Screen archive & gallery
Every screen pushed during a session is saved to .visualizer/archive/<session_id>/. A timeline sidebar in the browser lets you navigate back to any previous screen. When the session closes, a static HTML gallery is generated with timeline and grid views plus a lightbox — works offline without the MCP server.
Session management
- Sessions auto-close after 30 minutes of inactivity
- Up to 5 concurrent sessions
- Automatic WebSocket reconnection in the browser
Architecture
src/
├── index.js # Entry point — wires MCP server to stdio transport
├── mcp-server.js # 6 MCP tool handlers (launch, push, get_events, list, close, gallery)
├── http-server.js # Express + WebSocket server factory
├── session-manager.js # Session state: events, screens, timeouts
├── archive-manager.js # Screen persistence, manifest tracking, static gallery generation
├── renderer.js # Fragment → full document wrapping
├── helper.js # Browser-side JS: WebSocket, click capture, window.visualizer API
├── sidebar.js # Browser-side timeline sidebar for navigating screen history
├── frame-template.html # Themed HTML frame with CSS variables and utility classes
└── gallery-template.html # Static gallery template with timeline/grid views and lightbox
Development
# Clone
git clone https://github.com/stemado/visualizer-plugin.git
cd visualizer-plugin
# Install dependencies
npm install
# Run tests (7 suites)
npm test
# Test MCP server startup
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"test","version":"1.0"},"protocolVersion":"2025-03-26"}}' | node src/index.js
Test coverage
| Suite | What it covers |
|---|---|
| renderer | Fragment detection, wrapping, helper injection |
| session-manager | CRUD, events, timeouts, max sessions |
| http-server | HTTP serving, WebSocket relay, broadcast reload |
| mcp-tools | Tool handlers, error cases, event clearing |
| integration | Full workflow: launch → push → interact → read → close |
| helper | Browser-side API surface verification |
| archive-manager | Archive save, manifest tracking, gallery generation |
Tech Stack
- Node.js — runtime (no build step, plain JS with JSDoc types)
- @modelcontextprotocol/sdk — MCP stdio server
- Express — HTTP server
- ws — WebSocket server
- Zod — parameter validation for MCP tools
License
MIT
{
"name": "visualizer",
"owner": {
"name": "stemado"
},
"plugins": [
{
"name": "visualizer",
"version": "0.2.1",
"source": "./",
"description": "Interactive HTML visualization companion — push diagrams, mockups, and explorers to a browser window",
"keywords": [
"visualization",
"html",
"diagrams",
"mockups",
"browser",
"mcp"
]
}
]
}Facts
- Kind
- Marketplace
- Repo
- stemado/visualizer-plugin
- Group
- Uncategorized
- Stars
- 0
- Marketplace name
- visualizer
- Owner
- stemado
- Language
- JavaScript
- Created
- 2026-03-12
- Last push
- 2026-03-20
- Plugins
- 1
- 1obra/superpowersobra/superpowersAn agentic skills framework & software development methodology that works.297.9k
- 2affaan-m/everything-claude-codeaffaan-m/ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.277.5k
- 3anthropics/skillsanthropics/skillsPublic repository for Agent Skills180.6k
- 4f/prompts.chatf/prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.172.7k
- 5anthropics/claude-codeanthropics/claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.150.3k
- 6nextlevelbuilder/ui-ux-pro-max-skillnextlevelbuilder/ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.135k