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
-vflag 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
Option 1: Use without installation (Recommended)
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.