Skip to content

terryso/cc-live

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CC Live

Node GitHub Repo stars GitHub Issues BMAD GitHub License

中文文档

Real-time viewer for Claude Code sessions. Watch your AI coding process live, share with anyone via a URL.

Zero dependencies — single file Node.js server, no install needed.

Live Demo: Watch this project being built in real-time

Built-in sensitive data filtering — API keys, tokens, passwords, and other secrets are automatically redacted from displayed content. However, please review your session content before sharing as automated filtering may not catch everything.

Features

  • Auto-discovers all Claude Code projects from ~/.claude/projects/
  • Live streaming via SSE — messages appear as they happen
  • Project-based view with pagination and scroll navigation
  • Share individual projects via token-protected URLs
  • Displays user messages, assistant responses, thinking, tool calls and results
  • Dark theme, monospace, mobile-friendly
  • Automatic sensitive data redaction (API keys, tokens, passwords, private keys)

Quick Start

# Start the server
node server.js

# Open in browser
open http://localhost:3456

That's it — all your Claude Code sessions appear in the sidebar, grouped by project.

Sharing

Option 1: ngrok

# Install ngrok if you haven't
# brew install ngrok

# Create a public URL
ngrok http 3456

Set the public URL in .env so share links use the correct domain:

CC_LIVE_PUBLIC_URL=https://your-subdomain.ngrok-free.dev

Option 2: Cloudflare Tunnel

# Install cloudflared if you haven't
# brew install cloudflared

# Create a public URL
cloudflared tunnel --url http://localhost:3456

Set the public URL in .env:

CC_LIVE_PUBLIC_URL=https://your-subdomain.trycloudflare.com

Creating a share link

  1. Click the Share button next to any project in the sidebar
  2. Copy the generated URL — it contains a random token, no project name exposed
  3. Revoke anytime from the Active Shares panel at the bottom of the sidebar

Share tokens persist across server restarts — they only expire when explicitly revoked.

Configuration

Environment variables (set in .env or shell):

Variable Default Description
CC_LIVE_PORT 3456 Server port
CLAUDE_DIR ~/.claude Claude config directory
CC_LIVE_PUBLIC_URL Public tunnel URL for share links
CC_LIVE_REDACT_<N> Custom redaction rules (see below)

Custom Redaction Rules

Add custom patterns beyond the built-in ones via CC_LIVE_REDACT_1, CC_LIVE_REDACT_2, etc.:

# Plain string — exact match replaced with ***REDACTED***
CC_LIVE_REDACT_1="my-company-internal-domain.com"

# Regex — /pattern/→replacement
CC_LIVE_REDACT_2="/\bmy-app-[a-z0-9]{12}\b/→***APP-ID***"

How It Works

  1. Scans ~/.claude/projects/ for JSONL session files (up to 50 projects, 7-day recency)
  2. Loads last 200 messages per session as history, then tails for new content
  3. Parses messages and streams via SSE to connected browsers
  4. Every 10s rescans for new sessions

Limitations

  • Read-only — viewers cannot interact with the session
  • Session data is in-memory only (up to 500 messages per session, then trimmed to 300)
  • Share tokens persist across restarts (stored in data/share-tokens.json)

License

MIT

About

Live viewer for Claude Code sessions via SSE + tunnel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors