Claude Code Logger

August 5, 2025 ยท View on GitHub

A specialized HTTP/HTTPS proxy logger designed for analyzing and debugging Claude Code traffic with enhanced chat mode visualization.

๐ŸŽฏ Primary Purpose

This tool was built specifically to help developers understand and debug the communication between Claude Code and the Anthropic API. It provides a clean, formatted view of the conversation flow, making it easier to:

  • Debug Claude Code behavior
  • Analyze API requests and responses
  • Monitor token usage and quotas
  • Understand the structure of system prompts and tool usage
  • Archive conversations for later analysis

๐Ÿš€ Quick Start (No Installation Required!)

Simply run these two commands in separate terminals:

Terminal 1 - Start the logger:

npx claude-code-logger start

Terminal 2 - Start Claude Code with proxy:

ANTHROPIC_BASE_URL=http://localhost:8000/ claude

That's it! You'll now see a beautifully formatted log of all Claude Code interactions in your terminal.

For help and options:

npx claude-code-logger start --help

โœจ Features

Claude Code Specific

  • ๐Ÿค– Chat Mode: Automatically enabled by default, shows only the conversation between you and Claude
  • ๐Ÿ“ Markdown Rendering: AI responses are rendered with proper formatting (lists, code blocks, emphasis)
  • ๐Ÿ” System Prompt Visibility: See system reminders, file contents, and context provided to Claude
  • ๐Ÿ”ง Tool Usage Tracking: Monitor when Claude uses tools like file reading, editing, or web searches
  • ๐Ÿ“Š Verbose Mode: Use -v flag to see full prompts without truncation

General Proxy Features

  • โœ… HTTP and HTTPS Support: Works with both protocols
  • โœ… Request/Response Logging: Detailed logging of all traffic
  • โœ… Body Content Logging: Optional logging of request/response bodies
  • โœ… Server-Sent Events (SSE): Proper handling and merging of streaming responses
  • โœ… Compression Support: Handles gzip, deflate, and brotli compressed responses
  • โœ… Parallel Request Handling: Efficiently handles multiple concurrent requests

๐Ÿ“‹ All CLI Options

claude-code-logger start [options]

Options:
  -p, --port <port>         Local port to listen on (default: 8000)
  -h, --host <host>         Remote host address (default: api.anthropic.com)
  -r, --remote-port <port>  Remote port (default: 443)
  --https                   Use HTTPS for remote connection (default: true)
  --local-https             Accept HTTPS connections locally (default: false)
  --log-body                Log request and response bodies (default: false)
  --merge-sse               Merge Server-Sent Events into readable messages (default: false)
  --debug                   Show debug messages for troubleshooting (default: false)
  --chat-mode               Show only chat conversation with live streaming (default: true)
  -v, --verbose             Show full prompts without truncation (default: false)

๐Ÿ” Usage Examples

Claude Code Logging (Primary Use Case)

# Basic usage - logs Claude Code conversations
npm run dev -- start
ANTHROPIC_BASE_URL=http://localhost:8000/ claude

# With full prompt visibility
npm run dev -- start --verbose
ANTHROPIC_BASE_URL=http://localhost:8000/ claude

# With debug information
npm run dev -- start --debug
ANTHROPIC_BASE_URL=http://localhost:8000/ claude

# Log to file for later analysis
npm run dev -- start 2>&1 | tee claude-session-$(date +%Y%m%d-%H%M%S).log

General Proxy Usage

# Proxy any HTTP service
npm run dev -- start -p 3000 -h example.com -r 80 --https=false --chat-mode=false

# Log all traffic with bodies
npm run dev -- start -h api.example.com --log-body --chat-mode=false

# Debug mode for troubleshooting
npm run dev -- start --debug --log-body --chat-mode=false

๐Ÿ“ธ What You'll See

In chat mode (default), the output is clean and focused:

๐Ÿš€ Proxy server started on http://localhost:8000
๐Ÿ“ก Forwarding to https://api.anthropic.com:443
๐Ÿ“ Logging all traffic to console...

๐Ÿ‘ค How do I read a file in Python?

๐Ÿค– To read a file in Python, you can use the built-in `open()` function. Here are the most common approaches:

### Basic File Reading

```python
# Read entire file content
with open('filename.txt', 'r') as file:
    content = file.read()
    print(content)

... (formatted markdown output) ...


## ๐Ÿ›  Development

```bash
# Install dependencies
npm install

# Run in development mode
npm run dev -- start

# Build for production
npm run build

# Type checking
npm run typecheck

# Linting
npm run lint

๐Ÿ“ฆ Installation Options

npx claude-code-logger start

Option 2: Install globally

npm install -g claude-code-logger
claude-code-logger start

๐Ÿค Contributing

Contributions are welcome! This tool is specifically designed for Claude Code, but can be extended for other use cases.

๐Ÿ“„ License

MIT


Note: This tool is not affiliated with Anthropic. It's an independent project designed to help developers work more effectively with Claude Code.