Skip to main content

ccviz

See inside every Claude Code session — tool calls, thinking, parallel execution, all in one interactive graph.

PyPI version Python License CI PyPI downloads

ccviz screenshot


Install

pip install ccviz
ccviz start
# → http://localhost:7842 opens automatically

Requires Python ≥ 3.10. No Node.js needed.


What You Get

Feature Details
Per-turn workflow graph Each user message gets its own DAG — no more one giant session
Parallel execution Parallel tool calls render side-by-side in the same column
Thinking & planning nodes Claude's reasoning steps appear inline between tool calls
Near-real-time updates New nodes appear within 2–5 seconds as Claude executes
Node detail panel Click any node to see full input/output with JSON formatting
Filter & search Filter by tool type or search across all nodes in the current turn
Keyboard navigation to jump between turns

Node Colors

Color Type Tools
🔵 Blue File ops Read, Edit, Write
🟠 Orange Shell Bash
🟢 Green Search WebSearch, WebFetch
🟣 Purple Agent Agent, sub-agents
🔴 Red Interaction AskUserQuestion, TodoWrite, plan mode
🔷 Indigo Thinking Extended thinking blocks
🟡 Yellow Planning Claude's reasoning text

Quick Start

# 1. Install and launch
pip install ccviz
ccviz start

# 2. Use Claude Code as normal in another terminal
claude

# 3. Open http://localhost:7842 — select a session and turn to see the graph

How It Works

You type a message
      │
      ▼  UserPromptSubmit hook → new Turn created
Claude thinks & calls tools
      │
      ├──  PreToolUse hook  → node inserted (status: running)
      │    [tool executes]
      └──  PostToolUse hook → node updated  (status: done, duration)
      │
      ▼  Stop hook → session marked ended
~/.ccviz/db.sqlite
      │
      ▼  SSE (2-5s)
http://localhost:7842  (React Flow DAG)

ccviz start injects four hooks into ~/.claude/settings.json (global, all projects). All data stays on your machine — nothing is sent off-device.


CLI

ccviz start [--port PORT] [--no-open]   # inject hooks, start server, open browser
ccviz stop                               # stop server (hooks stay active)
ccviz status                             # server · hooks · DB info
ccviz uninstall                          # remove hooks + stop server (data preserved)

Default port: 7842


Data

~/.ccviz/
├── db.sqlite      # sessions, turns, tool calls
└── server.log     # server stderr

To wipe everything:

ccviz uninstall && rm -rf ~/.ccviz

Roadmap

  • Token usage per turn
  • Session search and filter
  • Export turn as image / shareable link
  • VS Code sidebar integration
  • Multi-machine / remote session support

Contributions welcome — see CONTRIBUTING.md.


Development

git clone https://github.com/mshubian/ccviz
cd ccviz
pip install -e ".[dev]"
pytest tests/ -v

Frontend (pre-built assets ship with the package, rebuild only if you change UI):

cd frontend
npm install
npm run dev     # :5173, proxies /api → :7842
npm run build   # outputs to ccviz/frontend/

License

MIT © mshubian


If ccviz is useful to you, a ⭐ on GitHub goes a long way — thank you!

Release files for ccviz 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ccviz 0.2.0
File Size Uploaded
ccviz-0.2.0.tar.gz 131.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ccviz 0.2.0
File Interpreter ABI Platform
ccviz-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 262.6 kB

Release files / ccviz-0.2.0.tar.gz

Download URL ccviz-0.2.0.tar.gz
Size 131.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cb5a4446ab3a99bd5671d2f053f4754114bf3da3eecde93c0a8b3ba37916af41
BLAKE2b-256 checksum
How to use checksums
09d13168974a0da8cb89a515327c833f74588943da0ed5bd1c0f9c559effb701
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / ccviz-0.2.0-py3-none-any.whl

Download URL ccviz-0.2.0-py3-none-any.whl
Size 131.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b1762a8b600e8e1c525d120fc2c6a4d2fccc3c15b52eff2c994c961097c16ad
BLAKE2b-256 checksum
How to use checksums
524a6655855df9dadd56c1e640f4c828af3891165388737218cf9b8b0e0ca3f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page