Skip to content

Commit d74c3cf

Browse files
committed
Polish repo for public release
- Add MIT LICENSE file - Add OG image and meta tags for social link previews - Add meta description for SEO - Fix package.json: set v1.0.0, add description/author/license/repository - Fix README: correct React version badge, add license badge, fix clone URL - Remove leftover public/vite.svg from Vite boilerplate - Fix TypeScript build errors (unused imports/variables, untyped property access)
1 parent 4c3cc78 commit d74c3cf

11 files changed

Lines changed: 53 additions & 15 deletions

File tree

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Jon Wiggins
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
An interactive educational webapp that visualizes how [Claude Code](https://github.com/anthropics/claude-code) works internally. Explore the agentic loop algorithm through interactive flowcharts and step-by-step scenario walkthroughs.
44

5-
![Claude Code Visualizer](https://img.shields.io/badge/React-18-blue) ![TypeScript](https://img.shields.io/badge/TypeScript-5-blue) ![Tailwind CSS](https://img.shields.io/badge/Tailwind-4-blue)
5+
![Claude Code Visualizer](https://img.shields.io/badge/React-19-blue) ![TypeScript](https://img.shields.io/badge/TypeScript-5-blue) ![Tailwind CSS](https://img.shields.io/badge/Tailwind-4-blue) ![License](https://img.shields.io/badge/License-MIT-green)
66

77
## Features
88

@@ -30,7 +30,7 @@ An interactive educational webapp that visualizes how [Claude Code](https://gith
3030

3131
## Tech Stack
3232

33-
- **React 18** with TypeScript
33+
- **React 19** with TypeScript
3434
- **Vite** for fast development and building
3535
- **React Flow** (@xyflow/react) for interactive flowcharts
3636
- **Dagre** for automatic graph layout
@@ -51,7 +51,7 @@ An interactive educational webapp that visualizes how [Claude Code](https://gith
5151

5252
```bash
5353
# Clone the repository
54-
git clone https://github.com/yourusername/claude-code-visualizer.git
54+
git clone https://github.com/jonwiggins/claude-code-visualizer.git
5555
cd claude-code-visualizer
5656

5757
# Install dependencies

index.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@
55
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<title>Claude Code Algorithm Visualizer</title>
8+
<meta name="description" content="Interactive visualization of how Claude Code's agentic loop works. Explore flowcharts, step through scenarios, and learn the algorithm behind Claude Code." />
9+
10+
<!-- Open Graph -->
11+
<meta property="og:type" content="website" />
12+
<meta property="og:title" content="Claude Code Algorithm Visualizer" />
13+
<meta property="og:description" content="Interactive visualization of how Claude Code's agentic loop works. Explore flowcharts, step through scenarios, and learn the algorithm behind Claude Code." />
14+
<meta property="og:url" content="https://github.com/jonwiggins/claude-code-visualizer" />
15+
<meta property="og:image" content="/og-image.png" />
16+
17+
<!-- Twitter Card -->
18+
<meta name="twitter:card" content="summary_large_image" />
19+
<meta name="twitter:title" content="Claude Code Algorithm Visualizer" />
20+
<meta name="twitter:description" content="Interactive visualization of how Claude Code's agentic loop works. Explore flowcharts, step through scenarios, and learn the algorithm behind Claude Code." />
21+
<meta name="twitter:image" content="/og-image.png" />
822
<link rel="preconnect" href="https://fonts.googleapis.com">
923
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
1024
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">

package-lock.json

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
{
22
"name": "claude-code-visualizer",
33
"private": true,
4-
"version": "0.0.0",
4+
"version": "1.0.0",
5+
"description": "Interactive visualization of Claude Code's agentic loop algorithm",
6+
"author": "Jon Wiggins",
7+
"license": "MIT",
8+
"repository": {
9+
"type": "git",
10+
"url": "https://github.com/jonwiggins/claude-code-visualizer.git"
11+
},
512
"type": "module",
613
"scripts": {
714
"dev": "vite",

public/og-image.png

296 KB
Loading

public/vite.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/components/FlowCanvas.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import Dagre from '@dagrejs/dagre';
1212
import '@xyflow/react/dist/style.css';
1313
import { useVisualizerStore } from '../store';
1414
import FlowNode from './FlowNode';
15-
import { overviewEdges, categoryColors } from '../algorithmOverview';
15+
import { overviewEdges } from '../algorithmOverview';
1616

1717
const nodeTypes = {
1818
custom: FlowNode,
@@ -103,7 +103,7 @@ export function FlowCanvas() {
103103
: 'idle';
104104

105105
// For overview, get category from payload
106-
const category = step.payload?.category as string | undefined;
106+
const category = (step.payload as Record<string, unknown>)?.category as string | undefined;
107107

108108
// Only add node if not already present (handles duplicate node IDs)
109109
if (!nodeMap.has(step.nodeId)) {
@@ -116,7 +116,7 @@ export function FlowCanvas() {
116116
nodeType: category || step.nodeId,
117117
status,
118118
description: isOverview
119-
? step.payload?.summary
119+
? (step.payload as Record<string, unknown>)?.summary
120120
: (step.payload ? Object.keys(step.payload).join(', ') : undefined),
121121
},
122122
selected: step.nodeId === selectedNodeId,

src/components/SandboxPanel.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { useState } from 'react';
22
import {
33
Shield,
44
Zap,
5-
Plus,
65
Trash2,
76
ChevronDown,
87
ChevronRight,

src/pages/VisualizerPage.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@ import { SandboxPanel } from '../components/SandboxPanel';
55
import { PlaybackControls } from '../components/PlaybackControls';
66
import { ExecutionLog } from '../components/ExecutionLog';
77
import { DetailPanel } from '../components/DetailPanel';
8-
import { useVisualizerStore } from '../store';
98
import { GripVertical } from 'lucide-react';
109

1110
export function VisualizerPage() {
12-
const { currentScenario } = useVisualizerStore();
13-
1411
// Sidebar resizing state
1512
const [leftSidebarWidth, setLeftSidebarWidth] = useState(340);
1613
const [rightSidebarWidth, setRightSidebarWidth] = useState(320);

0 commit comments

Comments
 (0)